Module jdk.scripting.nashorn
Package jdk.nashorn.api.scripting

## Class ScriptObjectMirror

- java.lang.Object
- - jdk.nashorn.api.scripting.AbstractJSObject
  - - jdk.nashorn.api.scripting.ScriptObjectMirror

- All Implemented Interfaces:
    `Map<String,​Object>`, `Bindings`, `JSObject`

      @Deprecated(since="11",
                  forRemoval=true)
      public final class ScriptObjectMirror
      extends AbstractJSObject
      implements Bindings

  Deprecated, for removal: This API element is subject to removal in a future version.
  Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
  Mirror object that wraps a given Nashorn Script object.
  Since:
    1.8u40

- - ### Nested Class Summary

    - ### Nested classes/interfaces declared in interface java.util.Map

      `Map.Entry<K,​V>`

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `Object` | `callMember​(String functionName, Object... args)` | Deprecated, for removal: This API element is subject to removal in a future version. Call member function
    `boolean` | `delete​(Object key)` | Deprecated, for removal: This API element is subject to removal in a future version. Delete a property from this object.
    `ScriptObjectMirror` | `freeze()` | Deprecated, for removal: This API element is subject to removal in a future version. ECMA 15.2.39 - freeze implementation.
    `String[]` | `getOwnKeys​(boolean all)` | Deprecated, for removal: This API element is subject to removal in a future version. return an array of own property keys associated with the object.
    `Object` | `getOwnPropertyDescriptor​(String key)` | Deprecated, for removal: This API element is subject to removal in a future version. ECMA 8.12.1 [[GetOwnProperty]] (P)
    `Object` | `getProto()` | Deprecated, for removal: This API element is subject to removal in a future version. Return the __proto__ of this object.
    `static boolean` | `identical​(Object obj1, Object obj2)` | Deprecated, for removal: This API element is subject to removal in a future version. Are the given objects mirrors to same underlying object?
    `boolean` | `isExtensible()` | Deprecated, for removal: This API element is subject to removal in a future version. Check if this script object is extensible
    `boolean` | `isFrozen()` | Deprecated, for removal: This API element is subject to removal in a future version. Check whether this script object is frozen
    `boolean` | `isSealed()` | Deprecated, for removal: This API element is subject to removal in a future version. Check whether this script object is sealed
    `static boolean` | `isUndefined​(Object obj)` | Deprecated, for removal: This API element is subject to removal in a future version. Utility to check if given object is ECMAScript undefined value
    `ScriptObjectMirror` | `preventExtensions()` | Deprecated, for removal: This API element is subject to removal in a future version. Flag this script object as non extensible
    `ScriptObjectMirror` | `seal()` | Deprecated, for removal: This API element is subject to removal in a future version. ECMAScript 15.2.3.8 - seal implementation
    `void` | `setIndexedPropertiesToExternalArrayData​(ByteBuffer buf)` | Deprecated, for removal: This API element is subject to removal in a future version. Nashorn extension: setIndexedPropertiesToExternalArrayData.
    `void` | `setProto​(Object proto)` | Deprecated, for removal: This API element is subject to removal in a future version. Set the __proto__ of this object.
    `<T> T` | `to​(Class<T> type)` | Deprecated, for removal: This API element is subject to removal in a future version. Utility to convert this script object to the given type.
    `double` | `toNumber()` | Deprecated.
    `static Object` | `unwrap​(Object obj, Object homeGlobal)` | Deprecated, for removal: This API element is subject to removal in a future version. Unwrap a script object mirror if needed.
    `static Object[]` | `unwrapArray​(Object[] args, Object homeGlobal)` | Deprecated, for removal: This API element is subject to removal in a future version. Unwrap an array of script object mirrors if needed.
    `static Object` | `wrap​(Object obj, Object homeGlobal)` | Deprecated, for removal: This API element is subject to removal in a future version. Make a script object mirror on given object if needed.
    `static Object[]` | `wrapArray​(Object[] args, Object homeGlobal)` | Deprecated, for removal: This API element is subject to removal in a future version. Wrap an array of object to script object mirrors if needed.
    `static Object` | `wrapAsJSONCompatible​(Object obj, Object homeGlobal)` | Deprecated, for removal: This API element is subject to removal in a future version. Make a script object mirror on given object if needed.

    - ### Methods declared in class jdk.nashorn.api.scripting.AbstractJSObject

      `call, eval, getDefaultValue, getMember, getSlot, hasMember, hasSlot, isArray, isFunction, isInstance, isStrictFunction, keySet, newObject, removeMember, setMember, setSlot, values`

    - ### Methods declared in class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods declared in interface javax.script.Bindings

      `containsKey, get, put, putAll, remove`

    - ### Methods declared in interface jdk.nashorn.api.scripting.JSObject

      `getClassName, getDefaultValue, isInstanceOf`

    - ### Methods declared in interface java.util.Map

      `clear, compute, computeIfAbsent, computeIfPresent, containsValue, entrySet, equals, forEach, getOrDefault, hashCode, isEmpty, keySet, merge, putIfAbsent, remove, replace, replace, replaceAll, size, values`

- - ### Method Detail

    - #### callMember

          public Object callMember​(String functionName,
                                   Object... args)

      Deprecated, for removal: This API element is subject to removal in a future version.
      Call member function
      Parameters:
        `functionName` - function name
        `args` - arguments
      Returns:
        return value of function

    - #### setIndexedPropertiesToExternalArrayData

          public void setIndexedPropertiesToExternalArrayData​(ByteBuffer buf)

      Deprecated, for removal: This API element is subject to removal in a future version.
      Nashorn extension: setIndexedPropertiesToExternalArrayData. set indexed properties be exposed from a given nio ByteBuffer.
      Parameters:
        `buf` - external buffer - should be a nio ByteBuffer

    - #### delete

          public boolean delete​(Object key)

      Deprecated, for removal: This API element is subject to removal in a future version.
      Delete a property from this object.
      Parameters:
        `key` - the property to be deleted
      Returns:
        if the delete was successful or not

    - #### getProto

          public Object getProto()

      Deprecated, for removal: This API element is subject to removal in a future version.
      Return the __proto__ of this object.
      Returns:
        __proto__ object.

    - #### setProto

          public void setProto​(Object proto)

      Deprecated, for removal: This API element is subject to removal in a future version.
      Set the __proto__ of this object.
      Parameters:
        `proto` - new proto for this object

    - #### getOwnPropertyDescriptor

          public Object getOwnPropertyDescriptor​(String key)

      Deprecated, for removal: This API element is subject to removal in a future version.
      ECMA 8.12.1 [[GetOwnProperty]] (P)
      Parameters:
        `key` - property key
      Returns:
        Returns the Property Descriptor of the named own property of this object, or undefined if absent.

    - #### getOwnKeys

          public String[] getOwnKeys​(boolean all)

      Deprecated, for removal: This API element is subject to removal in a future version.
      return an array of own property keys associated with the object.
      Parameters:
        `all` - True if to include non-enumerable keys.
      Returns:
        Array of keys.

    - #### preventExtensions

          public ScriptObjectMirror preventExtensions()

      Deprecated, for removal: This API element is subject to removal in a future version.
      Flag this script object as non extensible
      Returns:
        the object after being made non extensible

    - #### isExtensible

          public boolean isExtensible()

      Deprecated, for removal: This API element is subject to removal in a future version.
      Check if this script object is extensible
      Returns:
        true if extensible

    - #### seal

          public ScriptObjectMirror seal()

      Deprecated, for removal: This API element is subject to removal in a future version.
      ECMAScript 15.2.3.8 - seal implementation
      Returns:
        the sealed script object

    - #### isSealed

          public boolean isSealed()

      Deprecated, for removal: This API element is subject to removal in a future version.
      Check whether this script object is sealed
      Returns:
        true if sealed

    - #### freeze

          public ScriptObjectMirror freeze()

      Deprecated, for removal: This API element is subject to removal in a future version.
      ECMA 15.2.39 - freeze implementation. Freeze this script object
      Returns:
        the frozen script object

    - #### isFrozen

          public boolean isFrozen()

      Deprecated, for removal: This API element is subject to removal in a future version.
      Check whether this script object is frozen
      Returns:
        true if frozen

    - #### isUndefined

          public static boolean isUndefined​(Object obj)

      Deprecated, for removal: This API element is subject to removal in a future version.
      Utility to check if given object is ECMAScript undefined value
      Parameters:
        `obj` - object to check
      Returns:
        true if 'obj' is ECMAScript undefined value

    - #### to

          public <T> T to​(Class<T> type)

      Deprecated, for removal: This API element is subject to removal in a future version.
      Utility to convert this script object to the given type.
      Type Parameters:
        `T` - destination type to convert to
      Parameters:
        `type` - destination type to convert to
      Returns:
        converted object

    - #### wrap

          public static Object wrap​(Object obj,
                                    Object homeGlobal)

      Deprecated, for removal: This API element is subject to removal in a future version.
      Make a script object mirror on given object if needed.
      Parameters:
        `obj` - object to be wrapped/converted
        `homeGlobal` - global to which this object belongs.
      Returns:
        wrapped/converted object

    - #### wrapAsJSONCompatible

          public static Object wrapAsJSONCompatible​(Object obj,
                                                    Object homeGlobal)

      Deprecated, for removal: This API element is subject to removal in a future version.
      Make a script object mirror on given object if needed. The created wrapper will implement the Java `List` interface if `obj` is a JavaScript `Array` object; this is compatible with Java JSON libraries expectations. Arrays retrieved through its properties (transitively) will also implement the list interface.
      Parameters:
        `obj` - object to be wrapped/converted
        `homeGlobal` - global to which this object belongs.
      Returns:
        wrapped/converted object

    - #### unwrap

          public static Object unwrap​(Object obj,
                                      Object homeGlobal)

      Deprecated, for removal: This API element is subject to removal in a future version.
      Unwrap a script object mirror if needed.
      Parameters:
        `obj` - object to be unwrapped
        `homeGlobal` - global to which this object belongs
      Returns:
        unwrapped object

    - #### wrapArray

          public static Object[] wrapArray​(Object[] args,
                                           Object homeGlobal)

      Deprecated, for removal: This API element is subject to removal in a future version.
      Wrap an array of object to script object mirrors if needed.
      Parameters:
        `args` - array to be unwrapped
        `homeGlobal` - global to which this object belongs
      Returns:
        wrapped array

    - #### unwrapArray

          public static Object[] unwrapArray​(Object[] args,
                                             Object homeGlobal)

      Deprecated, for removal: This API element is subject to removal in a future version.
      Unwrap an array of script object mirrors if needed.
      Parameters:
        `args` - array to be unwrapped
        `homeGlobal` - global to which this object belongs
      Returns:
        unwrapped array

    - #### identical

          public static boolean identical​(Object obj1,
                                          Object obj2)

      Deprecated, for removal: This API element is subject to removal in a future version.
      Are the given objects mirrors to same underlying object?
      Parameters:
        `obj1` - first object
        `obj2` - second object
      Returns:
        true if obj1 and obj2 are identical script objects or mirrors of it.

    - #### toNumber

          @Deprecated
          public double toNumber()

      Deprecated.
      Description copied from class: `AbstractJSObject`
      Returns this object's numeric value.
      Specified by:
        `toNumber` in interface `JSObject`
      Overrides:
        `toNumber` in class `AbstractJSObject`
      Returns:
        this object's numeric value.