Class AbstractEcmaObjectOperations


  • class AbstractEcmaObjectOperations
    extends java.lang.Object
    Abstract Object Operations as defined by EcmaScript
    See Also:
    Abstract Operations - Operations on Objects

    Notes

    • all methods are to deviate from the method signature defined in the EcmaScript specification, by taking an additional 1st parameter of type Context: (downstream) methods may need the Context object to read flags and we want to avoid having to look up the current context (for performance reasons)
    • all methods that implement an Abstract Operation as defined by EcmaScript are to be package-scopes methods, to prevent them from being used directly by 3rd party code, which would hamper evolving them over time to adept to newer EcmaScript specifications
    • a link to the method specification of the specific (EcmaScript) version implemented will be put in the JavaDoc of each method that implements an Abstract Operations
    • Constructor Detail

      • AbstractEcmaObjectOperations

        AbstractEcmaObjectOperations()
    • Method Detail

      • hasOwnProperty

        static boolean hasOwnProperty​(Context cx,
                                      java.lang.Object o,
                                      java.lang.Object property)
        Implementation of Abstract Object operation HasOwnProperty as defined by EcmaScript
        Parameters:
        cx -
        o -
        property -
        Returns:
        boolean
        See Also:
      • speciesConstructor

        static Constructable speciesConstructor​(Context cx,
                                                Scriptable s,
                                                Constructable defaultConstructor)
        Implement the ECMAScript abstract operation "SpeciesConstructor" defined in section 7.2.33 of ECMA262.
        Parameters:
        cx - context
        s - the object for which we will find the "species constructor" as per the spec
        defaultConstructor - as per the spec, the value that will be returned if there is no constructor on "s" or if the "species" symbol is not set.
        See Also:
      • put

        static void put​(Context cx,
                        Scriptable o,
                        java.lang.String p,
                        java.lang.Object v,
                        boolean isThrow)
        Set ( O, P, V, Throw)

        https://262.ecma-international.org/12.0/#sec-set-o-p-v-throw

      • put

        static void put​(Context cx,
                        Scriptable o,
                        int p,
                        java.lang.Object v,
                        boolean isThrow)
        Set ( O, P, V, Throw)

        https://262.ecma-international.org/12.0/#sec-set-o-p-v-throw

      • createListFromArrayLike

        static java.util.List<java.lang.Object> createListFromArrayLike​(Context cx,
                                                                        Scriptable o,
                                                                        java.util.function.Predicate<java.lang.Object> elementTypesPredicate,
                                                                        java.lang.String msg)
        CreateListFromArrayLike ( obj [ , elementTypes ] )

        https://262.ecma-international.org/12.0/#sec-createlistfromarraylike

      • lengthOfArrayLike

        static long lengthOfArrayLike​(Context cx,
                                      Scriptable o)
        LengthOfArrayLike ( obj )

        https://262.ecma-international.org/12.0/#sec-lengthofarraylike

      • isCompatiblePropertyDescriptor

        static boolean isCompatiblePropertyDescriptor​(boolean extensible,
                                                      ScriptableObject desc,
                                                      ScriptableObject current)
        IsCompatiblePropertyDescriptor ( Extensible, Desc, Current )

        https://262.ecma-international.org/12.0/#sec-iscompatiblepropertydescriptor

      • validateAndApplyPropertyDescriptor

        static boolean validateAndApplyPropertyDescriptor​(Scriptable o,
                                                          Scriptable p,
                                                          boolean extensible,
                                                          ScriptableObject desc,
                                                          ScriptableObject current)
        ValidateAndApplyPropertyDescriptor ( O, P, extensible, Desc, current )

        https://262.ecma-international.org/12.0/#sec-validateandapplypropertydescriptor