Class 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 inherited from interface java.util.Map

        Map.Entry<K,​V>
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      Object call​(Object thiz, Object... args)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Call this object as a JavaScript function.
      Object callMember​(String functionName, Object... args)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Call member function
      void clear()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Removes all of the mappings from this map (optional operation).
      boolean containsKey​(Object key)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns true if this map contains a mapping for the specified key.
      boolean containsValue​(Object value)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns true if this map maps one or more keys to the specified value.
      boolean delete​(Object key)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Delete a property from this object.
      Set<Map.Entry<String,​Object>> entrySet()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns a Set view of the mappings contained in this map.
      boolean equals​(Object other)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Indicates whether some other object is "equal to" this one.
      Object eval​(String s)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Evaluate a JavaScript expression.
      ScriptObjectMirror freeze()
      Deprecated, for removal: This API element is subject to removal in a future version.
      ECMA 15.2.39 - freeze implementation.
      Object get​(Object key)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns the value to which this map maps the specified key.
      String getClassName()
      Deprecated, for removal: This API element is subject to removal in a future version.
      ECMA [[Class]] property
      Object getDefaultValue​(Class<?> hint)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Implements this object's [[DefaultValue]] method as per ECMAScript 5.1 section 8.6.2.
      Object getMember​(String name)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Retrieves a named member of this JavaScript object.
      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.
      Object getSlot​(int index)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Retrieves an indexed member of this JavaScript object.
      int hashCode()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns a hash code value for the object.
      boolean hasMember​(String name)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Does this object have a named member?
      boolean hasSlot​(int slot)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Does this object have a indexed property?
      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 isArray()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Is this an array object?
      boolean isEmpty()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns true if this map contains no key-value mappings.
      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 isFunction()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Is this a function object?
      boolean isInstance​(Object instance)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Checking whether the given object is an instance of 'this' object.
      boolean isSealed()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Check whether this script object is sealed
      boolean isStrictFunction()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Is this a 'use strict' function object?
      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
      Set<String> keySet()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns the set of all property names of this object.
      Object newObject​(Object... args)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Call this 'constructor' JavaScript function to create a new object.
      ScriptObjectMirror preventExtensions()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Flag this script object as non extensible
      Object put​(String key, Object value)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Set a named value.
      void putAll​(Map<? extends String,​? extends Object> map)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Adds all the mappings in a given Map to this Bindings.
      Object remove​(Object key)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Removes the mapping for this key from this map if it is present (optional operation).
      void removeMember​(String name)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Remove a named member from this JavaScript object
      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 setMember​(String name, Object value)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Set a named member in this JavaScript object
      void setProto​(Object proto)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Set the __proto__ of this object.
      void setSlot​(int index, Object value)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Set an indexed member in this JavaScript object
      int size()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns the number of key-value mappings in this map.
      <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.
      String toString()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns a string representation of the object.
      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.
      Collection<Object> values()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns the set of all property values of this object.
      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.
    • Method Detail

      • equals

        public boolean equals​(Object other)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from class: Object
        Indicates whether some other object is "equal to" this one.

        The equals method implements an equivalence relation on non-null object references:

        • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
        • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
        • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
        • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
        • For any non-null reference value x, x.equals(null) should return false.

        The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any non-null reference values x and y, this method returns true if and only if x and y refer to the same object (x == y has the value true).

        Note that it is generally necessary to override the hashCode method whenever this method is overridden, so as to maintain the general contract for the hashCode method, which states that equal objects must have equal hash codes.

        Specified by:
        equals in interface Map<String,​Object>
        Overrides:
        equals in class Object
        Parameters:
        other - the reference object with which to compare.
        Returns:
        true if this object is the same as the obj argument; false otherwise.
        See Also:
        Object.hashCode(), HashMap
      • hashCode

        public int hashCode()
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from class: Object
        Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by HashMap.

        The general contract of hashCode is:

        • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
        • If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result.
        • It is not required that if two objects are unequal according to the Object.equals(java.lang.Object) method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.

        As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (The hashCode may or may not be implemented as some function of an object's memory address at some point in time.)

        Specified by:
        hashCode in interface Map<String,​Object>
        Overrides:
        hashCode in class Object
        Returns:
        a hash code value for this object.
        See Also:
        Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
      • toString

        public String toString()
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from class: Object
        Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

        The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

         getClass().getName() + '@' + Integer.toHexString(hashCode())
         
        Overrides:
        toString in class Object
        Returns:
        a string representation of the object.
      • call

        public Object call​(Object thiz,
                           Object... args)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        Call this object as a JavaScript function. This is equivalent to 'func.apply(thiz, args)' in JavaScript.
        Specified by:
        call in interface JSObject
        Overrides:
        call in class AbstractJSObject
        Parameters:
        thiz - 'this' object to be passed to the function. This may be null.
        args - arguments to method
        Returns:
        result of call
      • newObject

        public Object newObject​(Object... args)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        Call this 'constructor' JavaScript function to create a new object. This is equivalent to 'new func(arg1, arg2...)' in JavaScript.
        Specified by:
        newObject in interface JSObject
        Overrides:
        newObject in class AbstractJSObject
        Parameters:
        args - arguments to method
        Returns:
        result of constructor call
      • eval

        public Object eval​(String s)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        Evaluate a JavaScript expression.
        Specified by:
        eval in interface JSObject
        Overrides:
        eval in class AbstractJSObject
        Parameters:
        s - JavaScript expression to evaluate
        Returns:
        evaluation result
      • 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
      • getMember

        public Object getMember​(String name)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        Retrieves a named member of this JavaScript object.
        Specified by:
        getMember in interface JSObject
        Overrides:
        getMember in class AbstractJSObject
        Parameters:
        name - of member
        Returns:
        member
      • getSlot

        public Object getSlot​(int index)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        Retrieves an indexed member of this JavaScript object.
        Specified by:
        getSlot in interface JSObject
        Overrides:
        getSlot in class AbstractJSObject
        Parameters:
        index - index slot to retrieve
        Returns:
        member
      • hasMember

        public boolean hasMember​(String name)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        Does this object have a named member?
        Specified by:
        hasMember in interface JSObject
        Overrides:
        hasMember in class AbstractJSObject
        Parameters:
        name - name of member
        Returns:
        true if this object has a member of the given name
      • hasSlot

        public boolean hasSlot​(int slot)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        Does this object have a indexed property?
        Specified by:
        hasSlot in interface JSObject
        Overrides:
        hasSlot in class AbstractJSObject
        Parameters:
        slot - index to check
        Returns:
        true if this object has a slot
      • removeMember

        public void removeMember​(String name)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        Remove a named member from this JavaScript object
        Specified by:
        removeMember in interface JSObject
        Overrides:
        removeMember in class AbstractJSObject
        Parameters:
        name - name of the member
      • setMember

        public void setMember​(String name,
                              Object value)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        Set a named member in this JavaScript object
        Specified by:
        setMember in interface JSObject
        Overrides:
        setMember in class AbstractJSObject
        Parameters:
        name - name of the member
        value - value of the member
      • setSlot

        public void setSlot​(int index,
                            Object value)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        Set an indexed member in this JavaScript object
        Specified by:
        setSlot in interface JSObject
        Overrides:
        setSlot in class AbstractJSObject
        Parameters:
        index - index of the member slot
        value - value of the member
      • 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
      • isInstance

        public boolean isInstance​(Object instance)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        Checking whether the given object is an instance of 'this' object.
        Specified by:
        isInstance in interface JSObject
        Overrides:
        isInstance in class AbstractJSObject
        Parameters:
        instance - instance to check
        Returns:
        true if the given 'instance' is an instance of this 'function' object
      • getClassName

        public String getClassName()
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        ECMA [[Class]] property
        Specified by:
        getClassName in interface JSObject
        Overrides:
        getClassName in class AbstractJSObject
        Returns:
        ECMA [[Class]] property value of this object
      • isFunction

        public boolean isFunction()
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        Is this a function object?
        Specified by:
        isFunction in interface JSObject
        Overrides:
        isFunction in class AbstractJSObject
        Returns:
        if this mirror wraps a ECMAScript function instance
      • isStrictFunction

        public boolean isStrictFunction()
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        Is this a 'use strict' function object?
        Specified by:
        isStrictFunction in interface JSObject
        Overrides:
        isStrictFunction in class AbstractJSObject
        Returns:
        true if this mirror represents a ECMAScript 'use strict' function
      • isArray

        public boolean isArray()
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        Is this an array object?
        Specified by:
        isArray in interface JSObject
        Overrides:
        isArray in class AbstractJSObject
        Returns:
        if this mirror wraps a ECMAScript array object
      • clear

        public void clear()
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: Map
        Removes all of the mappings from this map (optional operation). The map will be empty after this call returns.
        Specified by:
        clear in interface Map<String,​Object>
      • containsKey

        public boolean containsKey​(Object key)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: Bindings
        Returns true if this map contains a mapping for the specified key. More formally, returns true if and only if this map contains a mapping for a key k such that (key==null ? k==null : key.equals(k)). (There can be at most one such mapping.)
        Specified by:
        containsKey in interface Bindings
        Specified by:
        containsKey in interface Map<String,​Object>
        Parameters:
        key - key whose presence in this map is to be tested.
        Returns:
        true if this map contains a mapping for the specified key.
      • containsValue

        public boolean containsValue​(Object value)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: Map
        Returns true if this map maps one or more keys to the specified value. More formally, returns true if and only if this map contains at least one mapping to a value v such that Objects.equals(value, v). This operation will probably require time linear in the map size for most implementations of the Map interface.
        Specified by:
        containsValue in interface Map<String,​Object>
        Parameters:
        value - value whose presence in this map is to be tested
        Returns:
        true if this map maps one or more keys to the specified value
      • entrySet

        public Set<Map.Entry<String,​Object>> entrySet()
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: Map
        Returns a Set view of the mappings contained in this map. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. If the map is modified while an iteration over the set is in progress (except through the iterator's own remove operation, or through the setValue operation on a map entry returned by the iterator) the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove, Set.remove, removeAll, retainAll and clear operations. It does not support the add or addAll operations.
        Specified by:
        entrySet in interface Map<String,​Object>
        Returns:
        a set view of the mappings contained in this map
      • get

        public Object get​(Object key)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: Bindings
        Returns the value to which this map maps the specified key. Returns null if the map contains no mapping for this key. A return value of null does not necessarily indicate that the map contains no mapping for the key; it's also possible that the map explicitly maps the key to null. The containsKey operation may be used to distinguish these two cases.

        More formally, if this map contains a mapping from a key k to a value v such that (key==null ? k==null : key.equals(k)), then this method returns v; otherwise it returns null. (There can be at most one such mapping.)

        Specified by:
        get in interface Bindings
        Specified by:
        get in interface Map<String,​Object>
        Parameters:
        key - key whose associated value is to be returned.
        Returns:
        the value to which this map maps the specified key, or null if the map contains no mapping for this key.
      • isEmpty

        public boolean isEmpty()
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: Map
        Returns true if this map contains no key-value mappings.
        Specified by:
        isEmpty in interface Map<String,​Object>
        Returns:
        true if this map contains no key-value mappings
      • keySet

        public Set<String> keySet()
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        Returns the set of all property names of this object.
        Specified by:
        keySet in interface JSObject
        Specified by:
        keySet in interface Map<String,​Object>
        Overrides:
        keySet in class AbstractJSObject
        Returns:
        set of property names
      • put

        public Object put​(String key,
                          Object value)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: Bindings
        Set a named value.
        Specified by:
        put in interface Bindings
        Specified by:
        put in interface Map<String,​Object>
        Parameters:
        key - The name associated with the value.
        value - The value associated with the name.
        Returns:
        The value previously associated with the given name. Returns null if no value was previously associated with the name.
      • putAll

        public void putAll​(Map<? extends String,​? extends Object> map)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: Bindings
        Adds all the mappings in a given Map to this Bindings.
        Specified by:
        putAll in interface Bindings
        Specified by:
        putAll in interface Map<String,​Object>
        Parameters:
        map - The Map to merge with this one.
      • remove

        public Object remove​(Object key)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: Bindings
        Removes the mapping for this key from this map if it is present (optional operation). More formally, if this map contains a mapping from key k to value v such that (key==null ? k==null : key.equals(k)), that mapping is removed. (The map can contain at most one such mapping.)

        Returns the value to which the map previously associated the key, or null if the map contained no mapping for this key. (A null return can also indicate that the map previously associated null with the specified key if the implementation supports null values.) The map will not contain a mapping for the specified key once the call returns.

        Specified by:
        remove in interface Bindings
        Specified by:
        remove in interface Map<String,​Object>
        Parameters:
        key - key whose mapping is to be removed from the map.
        Returns:
        previous value associated with specified key, or null if there was no mapping for key.
      • 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
      • size

        public int size()
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: Map
        Returns the number of key-value mappings in this map. If the map contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.
        Specified by:
        size in interface Map<String,​Object>
        Returns:
        the number of key-value mappings in this map
      • values

        public Collection<Object> values()
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        Returns the set of all property values of this object.
        Specified by:
        values in interface JSObject
        Specified by:
        values in interface Map<String,​Object>
        Overrides:
        values in class AbstractJSObject
        Returns:
        set of property values.
      • 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.
      • getDefaultValue

        public Object getDefaultValue​(Class<?> hint)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Description copied from interface: JSObject
        Implements this object's [[DefaultValue]] method as per ECMAScript 5.1 section 8.6.2.
        Specified by:
        getDefaultValue in interface JSObject
        Parameters:
        hint - the type hint. Should be either null, Number.class or String.class.
        Returns:
        this object's default value.