Class ScriptObjectMirror

    • Method Detail

      • callMember

        public Object callMember​(String functionName,
                                 Object... args)
        Call member function
        Parameters:
        functionName - function name
        args - arguments
        Returns:
        return value of function
      • setIndexedPropertiesToExternalArrayData

        public void setIndexedPropertiesToExternalArrayData​(ByteBuffer buf)
        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)
        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()
        Return the __proto__ of this object.
        Returns:
        __proto__ object.
      • setProto

        public void setProto​(Object proto)
        Set the __proto__ of this object.
        Parameters:
        proto - new proto for this object
      • getOwnPropertyDescriptor

        public Object getOwnPropertyDescriptor​(String key)
        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)
        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()
        Flag this script object as non extensible
        Returns:
        the object after being made non extensible
      • isExtensible

        public boolean isExtensible()
        Check if this script object is extensible
        Returns:
        true if extensible
      • seal

        public ScriptObjectMirror seal()
        ECMAScript 15.2.3.8 - seal implementation
        Returns:
        the sealed script object
      • isSealed

        public boolean isSealed()
        Check whether this script object is sealed
        Returns:
        true if sealed
      • freeze

        public ScriptObjectMirror freeze()
        ECMA 15.2.39 - freeze implementation. Freeze this script object
        Returns:
        the frozen script object
      • isFrozen

        public boolean isFrozen()
        Check whether this script object is frozen
        Returns:
        true if frozen
      • isUndefined

        public static boolean isUndefined​(Object obj)
        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)
        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)
        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)
        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)
        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)
        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)
        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)
        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.