☰
Pins
    Table of Contents
    1. Introduction
    2. 1 Scope
    3. 2 Conformance
    4. 3 Normative References
    5. ◢4 Overview
      1. 4.1 Web Scripting
      2. ◢4.2 ECMAScript Overview
        1. 4.2.1 Objects
        2. 4.2.2 The Strict Variant of ECMAScript
      3. ◢4.3 Terms and Definitions
        1. 4.3.1 type
        2. 4.3.2 primitive value
        3. 4.3.3 object
        4. 4.3.4 constructor
        5. 4.3.5 prototype
        6. 4.3.6 ordinary object
        7. 4.3.7 exotic object
        8. 4.3.8 standard object
        9. 4.3.9 built-in object
        10. 4.3.10 undefined value
        11. 4.3.11 Undefined type
        12. 4.3.12 null value
        13. 4.3.13 Null type
        14. 4.3.14 Boolean value
        15. 4.3.15 Boolean type
        16. 4.3.16 Boolean object
        17. 4.3.17 String value
        18. 4.3.18 String type
        19. 4.3.19 String object
        20. 4.3.20 Number value
        21. 4.3.21 Number type
        22. 4.3.22 Number object
        23. 4.3.23 Infinity
        24. 4.3.24 NaN
        25. 4.3.25 Symbol value
        26. 4.3.26 Symbol type
        27. 4.3.27 Symbol object
        28. 4.3.28 function
        29. 4.3.29 built-in function
        30. 4.3.30 property
        31. 4.3.31 method
        32. 4.3.32 built-in method
        33. 4.3.33 attribute
        34. 4.3.34 own property
        35. 4.3.35 inherited property
      4. 4.4 Organization of This Specification
    6. ◢5 Notational Conventions
      1. ◢5.1 Syntactic and Lexical Grammars
        1. 5.1.1 Context-Free Grammars
        2. 5.1.2 The Lexical and RegExp Grammars
        3. 5.1.3 The Numeric String Grammar
        4. 5.1.4 The Syntactic Grammar
        5. 5.1.5 Grammar Notation
      2. 5.2 Algorithm Conventions
      3. 5.3 Static Semantic Rules
    7. ◢6 ECMAScript Data Types and Values
      1. ◢6.1 ECMAScript Language Types
        1. 6.1.1 The Undefined Type
        2. 6.1.2 The Null Type
        3. 6.1.3 The Boolean Type
        4. 6.1.4 The String Type
        5. ◢6.1.5 The Symbol Type
          1. 6.1.5.1 Well-Known Symbols
        6. 6.1.6 The Number Type
        7. ◢6.1.7 The Object Type
          1. 6.1.7.1 Property Attributes
          2. 6.1.7.2 Object Internal Methods and Internal Slots
          3. 6.1.7.3 Invariants of the Essential Internal Methods
          4. 6.1.7.4 Well-Known Intrinsic Objects
      2. ◢6.2 ECMAScript Specification Types
        1. 6.2.1 The List and Record Specification Types
        2. ◢6.2.2 The Completion Record Specification Type
          1. 6.2.2.1 NormalCompletion
          2. 6.2.2.2 Implicit Completion Values
          3. 6.2.2.3 Throw an Exception
          4. 6.2.2.4 ReturnIfAbrupt
          5. 6.2.2.5 UpdateEmpty ( completionRecord, value)
        3. ◢6.2.3 The Reference Specification Type
          1. 6.2.3.1 GetValue (V)
          2. 6.2.3.2 PutValue (V, W)
          3. 6.2.3.3 GetThisValue (V)
          4. 6.2.3.4 InitializeReferencedBinding (V, W)
        4. ◢6.2.4 The Property Descriptor Specification Type
          1. 6.2.4.1 IsAccessorDescriptor ( Desc )
          2. 6.2.4.2 IsDataDescriptor ( Desc )
          3. 6.2.4.3 IsGenericDescriptor ( Desc )
          4. 6.2.4.4 FromPropertyDescriptor ( Desc )
          5. 6.2.4.5 ToPropertyDescriptor ( Obj )
          6. 6.2.4.6 CompletePropertyDescriptor ( Desc )
        5. 6.2.5 The Lexical Environment and Environment Record Specification Types
        6. ◢6.2.6 Data Blocks
          1. 6.2.6.1 CreateByteDataBlock (size)
          2. 6.2.6.2 CopyDataBlockBytes (toBlock, toIndex, fromBlock, fromIndex, count)
    8. ◢7 Abstract Operations
      1. ◢7.1 Type Conversion
        1. 7.1.1 ToPrimitive ( input [ , PreferredType ] )
        2. 7.1.2 ToBoolean ( argument )
        3. ◢7.1.3 ToNumber ( argument )
          1. ◢7.1.3.1 ToNumber Applied to the String Type
            1. 7.1.3.1.1 RS: MV's
        4. 7.1.4 ToInteger ( argument )
        5. 7.1.5 ToInt32 ( argument )
        6. 7.1.6 ToUint32 ( argument )
        7. 7.1.7 ToInt16 ( argument )
        8. 7.1.8 ToUint16 ( argument )
        9. 7.1.9 ToInt8 ( argument )
        10. 7.1.10 ToUint8 ( argument )
        11. 7.1.11 ToUint8Clamp ( argument )
        12. ◢7.1.12 ToString ( argument )
          1. 7.1.12.1 ToString Applied to the Number Type
        13. 7.1.13 ToObject ( argument )
        14. 7.1.14 ToPropertyKey ( argument )
        15. 7.1.15 ToLength ( argument )
        16. 7.1.16 CanonicalNumericIndexString ( argument )
      2. ◢7.2 Testing and Comparison Operations
        1. 7.2.1 RequireObjectCoercible ( argument )
        2. 7.2.2 IsArray ( argument )
        3. 7.2.3 IsCallable ( argument )
        4. 7.2.4 IsConstructor ( argument )
        5. 7.2.5 IsExtensible (O)
        6. 7.2.6 IsInteger ( argument )
        7. 7.2.7 IsPropertyKey ( argument )
        8. 7.2.8 IsRegExp ( argument )
        9. 7.2.9 SameValue (x, y)
        10. 7.2.10 SameValueZero (x, y)
        11. 7.2.11 SameValueNonNumber (x, y)
        12. 7.2.12 Abstract Relational Comparison
        13. 7.2.13 Abstract Equality Comparison
        14. 7.2.14 Strict Equality Comparison
      3. ◢7.3 Operations on Objects
        1. 7.3.1 Get (O, P)
        2. 7.3.2 GetV (V, P)
        3. 7.3.3 Set (O, P, V, Throw)
        4. 7.3.4 CreateDataProperty (O, P, V)
        5. 7.3.5 CreateMethodProperty (O, P, V)
        6. 7.3.6 CreateDataPropertyOrThrow (O, P, V)
        7. 7.3.7 DefinePropertyOrThrow (O, P, desc)
        8. 7.3.8 DeletePropertyOrThrow (O, P)
        9. 7.3.9 GetMethod (V, P)
        10. 7.3.10 HasProperty (O, P)
        11. 7.3.11 HasOwnProperty (O, P)
        12. 7.3.12 Call (F, V [ , argumentsList ])
        13. 7.3.13 Construct (F [ , argumentsList [ , newTarget ]])
        14. 7.3.14 SetIntegrityLevel (O, level)
        15. 7.3.15 TestIntegrityLevel (O, level)
        16. 7.3.16 CreateArrayFromList (elements)
        17. 7.3.17 CreateListFromArrayLike (obj [ , elementTypes ] )
        18. 7.3.18 Invoke (V, P [ , argumentsList ])
        19. 7.3.19 OrdinaryHasInstance (C, O)
        20. 7.3.20 SpeciesConstructor ( O, defaultConstructor )
        21. 7.3.21 EnumerableOwnNames (O)
        22. 7.3.22 GetFunctionRealm ( obj )
      4. ◢7.4 Operations on Iterator Objects
        1. 7.4.1 GetIterator ( obj [ , method ] )
        2. 7.4.2 IteratorNext ( iterator [ , value ] )
        3. 7.4.3 IteratorComplete ( iterResult )
        4. 7.4.4 IteratorValue ( iterResult )
        5. 7.4.5 IteratorStep ( iterator )
        6. 7.4.6 IteratorClose ( iterator, completion )
        7. 7.4.7 CreateIterResultObject ( value, done )
        8. ◢7.4.8 CreateListIterator ( list )
          1. 7.4.8.1 ListIterator next( )
    9. ◢8 Executable Code and Execution Contexts
      1. ◢8.1 Lexical Environments
        1. ◢8.1.1 Environment Records
          1. ◢8.1.1.1 Declarative Environment Records
            1. 8.1.1.1.1 HasBinding (N)
            2. 8.1.1.1.2 CreateMutableBinding (N, D)
            3. 8.1.1.1.3 CreateImmutableBinding (N, S)
            4. 8.1.1.1.4 InitializeBinding (N, V)
            5. 8.1.1.1.5 SetMutableBinding (N, V, S)
            6. 8.1.1.1.6 GetBindingValue (N, S)
            7. 8.1.1.1.7 DeleteBinding (N)
            8. 8.1.1.1.8 HasThisBinding ()
            9. 8.1.1.1.9 HasSuperBinding ()
            10. 8.1.1.1.10 WithBaseObject ()
          2. ◢8.1.1.2 Object Environment Records
            1. 8.1.1.2.1 HasBinding (N)
            2. 8.1.1.2.2 CreateMutableBinding (N, D)
            3. 8.1.1.2.3 CreateImmutableBinding (N, S)
            4. 8.1.1.2.4 InitializeBinding (N, V)
            5. 8.1.1.2.5 SetMutableBinding (N, V, S)
            6. 8.1.1.2.6 GetBindingValue (N, S)
            7. 8.1.1.2.7 DeleteBinding (N)
            8. 8.1.1.2.8 HasThisBinding ()
            9. 8.1.1.2.9 HasSuperBinding ()
            10. 8.1.1.2.10 WithBaseObject ()
          3. ◢8.1.1.3 Function Environment Records
            1. 8.1.1.3.1 BindThisValue (V)
            2. 8.1.1.3.2 HasThisBinding ()
            3. 8.1.1.3.3 HasSuperBinding ()
            4. 8.1.1.3.4 GetThisBinding ()
            5. 8.1.1.3.5 GetSuperBase ()
          4. ◢8.1.1.4 Global Environment Records
            1. 8.1.1.4.1 HasBinding (N)
            2. 8.1.1.4.2 CreateMutableBinding (N, D)
            3. 8.1.1.4.3 CreateImmutableBinding (N, S)
            4. 8.1.1.4.4 InitializeBinding (N, V)
            5. 8.1.1.4.5 SetMutableBinding (N, V, S)
            6. 8.1.1.4.6 GetBindingValue (N, S)
            7. 8.1.1.4.7 DeleteBinding (N)
            8. 8.1.1.4.8 HasThisBinding ()
            9. 8.1.1.4.9 HasSuperBinding ()
            10. 8.1.1.4.10 WithBaseObject ()
            11. 8.1.1.4.11 GetThisBinding ()
            12. 8.1.1.4.12 HasVarDeclaration (N)
            13. 8.1.1.4.13 HasLexicalDeclaration (N)
            14. 8.1.1.4.14 HasRestrictedGlobalProperty (N)
            15. 8.1.1.4.15 CanDeclareGlobalVar (N)
            16. 8.1.1.4.16 CanDeclareGlobalFunction (N)
            17. 8.1.1.4.17 CreateGlobalVarBinding (N, D)
            18. 8.1.1.4.18 CreateGlobalFunctionBinding (N, V, D)
          5. ◢8.1.1.5 Module Environment Records
            1. 8.1.1.5.1 GetBindingValue (N, S)
            2. 8.1.1.5.2 DeleteBinding (N)
            3. 8.1.1.5.3 HasThisBinding ()
            4. 8.1.1.5.4 GetThisBinding ()
            5. 8.1.1.5.5 CreateImportBinding (N, M, N2)
        2. ◢8.1.2 Lexical Environment Operations
          1. 8.1.2.1 GetIdentifierReference (lex, name, strict)
          2. 8.1.2.2 NewDeclarativeEnvironment (E)
          3. 8.1.2.3 NewObjectEnvironment (O, E)
          4. 8.1.2.4 NewFunctionEnvironment ( F, newTarget )
          5. 8.1.2.5 NewGlobalEnvironment ( G, thisValue )
          6. 8.1.2.6 NewModuleEnvironment (E)
      2. ◢8.2 Realms
        1. 8.2.1 CreateRealm ( )
        2. 8.2.2 CreateIntrinsics ( realmRec )
        3. 8.2.3 SetRealmGlobalObject ( realmRec, globalObj, thisValue )
        4. 8.2.4 SetDefaultGlobalBindings ( realmRec )
      3. ◢8.3 Execution Contexts
        1. 8.3.1 GetActiveScriptOrModule ()
        2. 8.3.2 ResolveBinding ( name [ , env ] )
        3. 8.3.3 GetThisEnvironment ( )
        4. 8.3.4 ResolveThisBinding ( )
        5. 8.3.5 GetNewTarget ( )
        6. 8.3.6 GetGlobalObject ( )
      4. ◢8.4 Jobs and Job Queues
        1. 8.4.1 EnqueueJob (queueName, job, arguments)
        2. 8.4.2 NextJob
      5. 8.5 InitializeHostDefinedRealm ( )
    10. ◢9 Ordinary and Exotic Objects Behaviours
      1. ◢9.1 Ordinary Object Internal Methods and Internal Slots
        1. ◢9.1.1 [[GetPrototypeOf]] ( )
          1. 9.1.1.1 OrdinaryGetPrototypeOf (O)
        2. ◢9.1.2 [[SetPrototypeOf]] (V)
          1. 9.1.2.1 OrdinarySetPrototypeOf (O, V)
        3. ◢9.1.3 [[IsExtensible]] ( )
          1. 9.1.3.1 OrdinaryIsExtensible (O)
        4. ◢9.1.4 [[PreventExtensions]] ( )
          1. 9.1.4.1 OrdinaryPreventExtensions (O)
        5. ◢9.1.5 [[GetOwnProperty]] (P)
          1. 9.1.5.1 OrdinaryGetOwnProperty (O, P)
        6. ◢9.1.6 [[DefineOwnProperty]] (P, Desc)
          1. 9.1.6.1 OrdinaryDefineOwnProperty (O, P, Desc)
          2. 9.1.6.2 IsCompatiblePropertyDescriptor (Extensible, Desc, Current)
          3. 9.1.6.3 ValidateAndApplyPropertyDescriptor (O, P, extensible, Desc, current)
        7. ◢9.1.7 [[HasProperty]](P)
          1. 9.1.7.1 OrdinaryHasProperty (O, P)
        8. ◢9.1.8 [[Get]] (P, Receiver)
          1. 9.1.8.1 OrdinaryGet (O, P, Receiver)
        9. ◢9.1.9 [[Set]] ( P, V, Receiver)
          1. 9.1.9.1 OrdinarySet (O, P, V, Receiver)
        10. ◢9.1.10 [[Delete]] (P)
          1. 9.1.10.1 OrdinaryDelete (O, P)
        11. ◢9.1.11 [[OwnPropertyKeys]] ( )
          1. 9.1.11.1 OrdinaryOwnPropertyKeys (O)
        12. 9.1.12 ObjectCreate (proto [ , internalSlotsList ])
        13. 9.1.13 OrdinaryCreateFromConstructor ( constructor, intrinsicDefaultProto [ , internalSlotsList ] )
        14. 9.1.14 GetPrototypeFromConstructor ( constructor, intrinsicDefaultProto )
      2. ◢9.2 ECMAScript Function Objects
        1. ◢9.2.1 [[Call]] ( thisArgument, argumentsList)
          1. 9.2.1.1 PrepareForOrdinaryCall ( F, newTarget )
          2. 9.2.1.2 OrdinaryCallBindThis ( F, calleeContext, thisArgument )
          3. 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
        2. 9.2.2 [[Construct]] ( argumentsList, newTarget)
        3. 9.2.3 FunctionAllocate (functionPrototype, strict, functionKind)
        4. 9.2.4 FunctionInitialize (F, kind, ParameterList, Body, Scope)
        5. 9.2.5 FunctionCreate (kind, ParameterList, Body, Scope, Strict [ , prototype ])
        6. 9.2.6 GeneratorFunctionCreate (kind, ParameterList, Body, Scope, Strict)
        7. ◢9.2.7 AddRestrictedFunctionProperties ( F, realm )
          1. 9.2.7.1 %ThrowTypeError% ( )
        8. 9.2.8 MakeConstructor (F [ , writablePrototype, prototype ])
        9. 9.2.9 MakeClassConstructor ( F)
        10. 9.2.10 MakeMethod ( F, homeObject)
        11. 9.2.11 SetFunctionName (F, name [ , prefix ])
        12. 9.2.12 FunctionDeclarationInstantiation (func, argumentsList)
      3. ◢9.3 Built-in Function Objects
        1. 9.3.1 [[Call]] ( thisArgument, argumentsList)
        2. 9.3.2 [[Construct]] (argumentsList, newTarget)
        3. 9.3.3 CreateBuiltinFunction (realm, steps, prototype [ , internalSlotsList ])
      4. ◢9.4 Built-in Exotic Object Internal Methods and Slots
        1. ◢9.4.1 Bound Function Exotic Objects
          1. 9.4.1.1 [[Call]] ( thisArgument, argumentsList)
          2. 9.4.1.2 [[Construct]] (argumentsList, newTarget)
          3. 9.4.1.3 BoundFunctionCreate (targetFunction, boundThis, boundArgs)
        2. ◢9.4.2 Array Exotic Objects
          1. 9.4.2.1 [[DefineOwnProperty]] ( P, Desc)
          2. 9.4.2.2 ArrayCreate (length [ , proto ])
          3. 9.4.2.3 ArraySpeciesCreate (originalArray, length)
          4. 9.4.2.4 ArraySetLength (A, Desc)
        3. ◢9.4.3 String Exotic Objects
          1. 9.4.3.1 [[GetOwnProperty]] ( P )
          2. 9.4.3.2 [[OwnPropertyKeys]] ( )
          3. 9.4.3.3 StringCreate ( value, prototype)
        4. ◢9.4.4 Arguments Exotic Objects
          1. 9.4.4.1 [[GetOwnProperty]] (P)
          2. 9.4.4.2 [[DefineOwnProperty]] (P, Desc)
          3. 9.4.4.3 [[Get]] (P, Receiver)
          4. 9.4.4.4 [[Set]] ( P, V, Receiver)
          5. 9.4.4.5 [[HasProperty]] ( P )
          6. 9.4.4.6 [[Delete]] (P)
          7. 9.4.4.7 CreateUnmappedArgumentsObject (argumentsList)
          8. ◢9.4.4.8 CreateMappedArgumentsObject ( func, formals, argumentsList, env )
            1. 9.4.4.8.1 MakeArgGetter ( name, env)
            2. 9.4.4.8.2 MakeArgSetter ( name, env)
        5. ◢9.4.5 Integer Indexed Exotic Objects
          1. 9.4.5.1 [[GetOwnProperty]] ( P )
          2. 9.4.5.2 [[HasProperty]](P)
          3. 9.4.5.3 [[DefineOwnProperty]] ( P, Desc)
          4. 9.4.5.4 [[Get]] (P, Receiver)
          5. 9.4.5.5 [[Set]] ( P, V, Receiver)
          6. 9.4.5.6 [[OwnPropertyKeys]] ()
          7. 9.4.5.7 IntegerIndexedObjectCreate (prototype, internalSlotsList)
          8. 9.4.5.8 IntegerIndexedElementGet ( O, index )
          9. 9.4.5.9 IntegerIndexedElementSet ( O, index, value )
        6. ◢9.4.6 Module Namespace Exotic Objects
          1. 9.4.6.1 [[GetPrototypeOf]] ( )
          2. 9.4.6.2 [[SetPrototypeOf]] (V)
          3. 9.4.6.3 [[IsExtensible]] ( )
          4. 9.4.6.4 [[PreventExtensions]] ( )
          5. 9.4.6.5 [[GetOwnProperty]] (P)
          6. 9.4.6.6 [[DefineOwnProperty]] (P, Desc)
          7. 9.4.6.7 [[HasProperty]] (P)
          8. 9.4.6.8 [[Get]] (P, Receiver)
          9. 9.4.6.9 [[Set]] ( P, V, Receiver)
          10. 9.4.6.10 [[Delete]] (P)
          11. 9.4.6.11 [[OwnPropertyKeys]] ( )
          12. 9.4.6.12 ModuleNamespaceCreate (module, exports)
        7. ◢9.4.7 Immutable Prototype Exotic Objects
          1. 9.4.7.1 [[SetPrototypeOf]] (V)
      5. ◢9.5 Proxy Object Internal Methods and Internal Slots
        1. 9.5.1 [[GetPrototypeOf]] ( )
        2. 9.5.2 [[SetPrototypeOf]] (V)
        3. 9.5.3 [[IsExtensible]] ( )
        4. 9.5.4 [[PreventExtensions]] ( )
        5. 9.5.5 [[GetOwnProperty]] (P)
        6. 9.5.6 [[DefineOwnProperty]] (P, Desc)
        7. 9.5.7 [[HasProperty]] (P)
        8. 9.5.8 [[Get]] (P, Receiver)
        9. 9.5.9 [[Set]] ( P, V, Receiver)
        10. 9.5.10 [[Delete]] (P)
        11. 9.5.11 [[OwnPropertyKeys]] ( )
        12. 9.5.12 [[Call]] (thisArgument, argumentsList)
        13. 9.5.13 [[Construct]] ( argumentsList, newTarget)
        14. 9.5.14 ProxyCreate (target, handler)
    11. ◢10 ECMAScript Language: Source Code
      1. ◢10.1 Source Text
        1. 10.1.1 SS: UTF16Encoding ( cp )
        2. 10.1.2 SS: UTF16Decode( lead, trail )
      2. ◢10.2 Types of Source Code
        1. 10.2.1 Strict Mode Code
        2. 10.2.2 Non-ECMAScript Functions
    12. ◢11 ECMAScript Language: Lexical Grammar
      1. 11.1 Unicode Format-Control Characters
      2. 11.2 White Space
      3. 11.3 Line Terminators
      4. 11.4 Comments
      5. 11.5 Tokens
      6. ◢11.6 Names and Keywords
        1. ◢11.6.1 Identifier Names
          1. 11.6.1.1 SS: Early Errors
          2. 11.6.1.2 SS: StringValue
        2. ◢11.6.2 Reserved Words
          1. 11.6.2.1 Keywords
          2. 11.6.2.2 Future Reserved Words
      7. 11.7 Punctuators
      8. ◢11.8 Literals
        1. 11.8.1 Null Literals
        2. 11.8.2 Boolean Literals
        3. ◢11.8.3 Numeric Literals
          1. 11.8.3.1 SS: MV
        4. ◢11.8.4 String Literals
          1. 11.8.4.1 SS: Early Errors
          2. 11.8.4.2 SS: StringValue
          3. 11.8.4.3 SS: SV
        5. ◢11.8.5 Regular Expression Literals
          1. 11.8.5.1 SS: Early Errors
          2. 11.8.5.2 SS: BodyText
          3. 11.8.5.3 SS: FlagText
        6. ◢11.8.6 Template Literal Lexical Components
          1. 11.8.6.1 SS: TV and TRV
      9. ◢11.9 Automatic Semicolon Insertion
        1. 11.9.1 Rules of Automatic Semicolon Insertion
        2. 11.9.2 Examples of Automatic Semicolon Insertion
    13. ◢12 ECMAScript Language: Expressions
      1. ◢12.1 Identifiers
        1. 12.1.1 SS: Early Errors
        2. 12.1.2 SS: BoundNames
        3. 12.1.3 SS: IsValidSimpleAssignmentTarget
        4. 12.1.4 SS: StringValue
        5. ◢12.1.5 RS: BindingInitialization
          1. 12.1.5.1 RS: InitializeBoundName(name, value, environment)
        6. 12.1.6 RS: Evaluation
      2. ◢12.2 Primary Expression
        1. ◢12.2.1 Semantics
          1. 12.2.1.1 SS: CoveredParenthesizedExpression
          2. 12.2.1.2 SS: HasName
          3. 12.2.1.3 SS: IsFunctionDefinition
          4. 12.2.1.4 SS: IsIdentifierRef
          5. 12.2.1.5 SS: IsValidSimpleAssignmentTarget
        2. ◢12.2.2 The this Keyword
          1. 12.2.2.1 RS: Evaluation
        3. 12.2.3 Identifier Reference
        4. ◢12.2.4 Literals
          1. 12.2.4.1 RS: Evaluation
        5. ◢12.2.5 Array Initializer
          1. 12.2.5.1 SS: ElisionWidth
          2. 12.2.5.2 RS: ArrayAccumulation
          3. 12.2.5.3 RS: Evaluation
        6. ◢12.2.6 Object Initializer
          1. 12.2.6.1 SS: Early Errors
          2. 12.2.6.2 SS: ComputedPropertyContains
          3. 12.2.6.3 SS: Contains
          4. 12.2.6.4 SS: HasComputedPropertyKey
          5. 12.2.6.5 SS: IsComputedPropertyKey
          6. 12.2.6.6 SS: PropName
          7. 12.2.6.7 SS: PropertyNameList
          8. 12.2.6.8 RS: Evaluation
          9. 12.2.6.9 RS: PropertyDefinitionEvaluation
        7. 12.2.7 Function Defining Expressions
        8. ◢12.2.8 Regular Expression Literals
          1. 12.2.8.1 SS: Early Errors
          2. 12.2.8.2 RS: Evaluation
        9. ◢12.2.9 Template Literals
          1. 12.2.9.1 SS: TemplateStrings
          2. 12.2.9.2 RS: ArgumentListEvaluation
          3. 12.2.9.3 RS: GetTemplateObject ( templateLiteral )
          4. 12.2.9.4 RS: SubstitutionEvaluation
          5. 12.2.9.5 RS: Evaluation
        10. ◢12.2.10 The Grouping Operator
          1. 12.2.10.1 SS: Early Errors
          2. 12.2.10.2 SS: IsFunctionDefinition
          3. 12.2.10.3 SS: IsValidSimpleAssignmentTarget
          4. 12.2.10.4 RS: Evaluation
      3. ◢12.3 Left-Hand-Side Expressions
        1. ◢12.3.1 Static Semantics
          1. 12.3.1.1 SS: Contains
          2. 12.3.1.2 SS: IsFunctionDefinition
          3. 12.3.1.3 SS: IsDestructuring
          4. 12.3.1.4 SS: IsIdentifierRef
          5. 12.3.1.5 SS: IsValidSimpleAssignmentTarget
        2. ◢12.3.2 Property Accessors
          1. 12.3.2.1 RS: Evaluation
        3. ◢12.3.3 The new Operator
          1. ◢12.3.3.1 RS: Evaluation
            1. 12.3.3.1.1 RS: EvaluateNew(constructProduction, arguments)
        4. ◢12.3.4 Function Calls
          1. 12.3.4.1 RS: Evaluation
          2. 12.3.4.2 RS: EvaluateCall( ref, arguments, tailPosition )
          3. 12.3.4.3 RS: EvaluateDirectCall( func, thisValue, arguments, tailPosition )
        5. ◢12.3.5 The super Keyword
          1. 12.3.5.1 RS: Evaluation
          2. 12.3.5.2 RS: GetSuperConstructor ( )
          3. 12.3.5.3 RS: MakeSuperPropertyReference(propertyKey, strict)
        6. ◢12.3.6 Argument Lists
          1. 12.3.6.1 RS: ArgumentListEvaluation
        7. ◢12.3.7 Tagged Templates
          1. 12.3.7.1 RS: Evaluation
        8. ◢12.3.8 Meta Properties
          1. 12.3.8.1 RS: Evaluation
      4. ◢12.4 Update Expressions
        1. 12.4.1 SS: Early Errors
        2. 12.4.2 SS: IsFunctionDefinition
        3. 12.4.3 SS: IsValidSimpleAssignmentTarget
        4. ◢12.4.4 Postfix Increment Operator
          1. 12.4.4.1 RS: Evaluation
        5. ◢12.4.5 Postfix Decrement Operator
          1. 12.4.5.1 RS: Evaluation
        6. ◢12.4.6 Prefix Increment Operator
          1. 12.4.6.1 RS: Evaluation
        7. ◢12.4.7 Prefix Decrement Operator
          1. 12.4.7.1 RS: Evaluation
      5. ◢12.5 Unary Operators
        1. 12.5.1 SS: IsFunctionDefinition
        2. 12.5.2 SS: IsValidSimpleAssignmentTarget
        3. ◢12.5.3 The delete Operator
          1. 12.5.3.1 SS: Early Errors
          2. 12.5.3.2 RS: Evaluation
        4. ◢12.5.4 The void Operator
          1. 12.5.4.1 RS: Evaluation
        5. ◢12.5.5 The typeof Operator
          1. 12.5.5.1 RS: Evaluation
        6. ◢12.5.6 Unary + Operator
          1. 12.5.6.1 RS: Evaluation
        7. ◢12.5.7 Unary - Operator
          1. 12.5.7.1 RS: Evaluation
        8. ◢12.5.8 Bitwise NOT Operator ( ~ )
          1. 12.5.8.1 RS: Evaluation
        9. ◢12.5.9 Logical NOT Operator ( ! )
          1. 12.5.9.1 RS: Evaluation
      6. ◢12.6 Exponentiation Operator
        1. 12.6.1 SS: IsFunctionDefinition
        2. 12.6.2 SS: IsValidSimpleAssignmentTarget
        3. 12.6.3 RS: Evaluation
      7. ◢12.7 Multiplicative Operators
        1. 12.7.1 SS: IsFunctionDefinition
        2. 12.7.2 SS: IsValidSimpleAssignmentTarget
        3. ◢12.7.3 RS: Evaluation
          1. 12.7.3.1 Applying the * Operator
          2. 12.7.3.2 Applying the / Operator
          3. 12.7.3.3 Applying the % Operator
          4. 12.7.3.4 Applying the ** Operator
      8. ◢12.8 Additive Operators
        1. 12.8.1 SS: IsFunctionDefinition
        2. 12.8.2 SS: IsValidSimpleAssignmentTarget
        3. ◢12.8.3 The Addition Operator ( + )
          1. 12.8.3.1 RS: Evaluation
        4. ◢12.8.4 The Subtraction Operator ( - )
          1. 12.8.4.1 RS: Evaluation
        5. 12.8.5 Applying the Additive Operators to Numbers
      9. ◢12.9 Bitwise Shift Operators
        1. 12.9.1 SS: IsFunctionDefinition
        2. 12.9.2 SS: IsValidSimpleAssignmentTarget
        3. ◢12.9.3 The Left Shift Operator ( << )
          1. 12.9.3.1 RS: Evaluation
        4. ◢12.9.4 The Signed Right Shift Operator ( >> )
          1. 12.9.4.1 RS: Evaluation
        5. ◢12.9.5 The Unsigned Right Shift Operator ( >>> )
          1. 12.9.5.1 RS: Evaluation
      10. ◢12.10 Relational Operators
        1. 12.10.1 SS: IsFunctionDefinition
        2. 12.10.2 SS: IsValidSimpleAssignmentTarget
        3. 12.10.3 RS: Evaluation
        4. 12.10.4 RS: InstanceofOperator(O, C)
      11. ◢12.11 Equality Operators
        1. 12.11.1 SS: IsFunctionDefinition
        2. 12.11.2 SS: IsValidSimpleAssignmentTarget
        3. 12.11.3 RS: Evaluation
      12. ◢12.12 Binary Bitwise Operators
        1. 12.12.1 SS: IsFunctionDefinition
        2. 12.12.2 SS: IsValidSimpleAssignmentTarget
        3. 12.12.3 RS: Evaluation
      13. ◢12.13 Binary Logical Operators
        1. 12.13.1 SS: IsFunctionDefinition
        2. 12.13.2 SS: IsValidSimpleAssignmentTarget
        3. 12.13.3 RS: Evaluation
      14. ◢12.14 Conditional Operator ( ? : )
        1. 12.14.1 SS: IsFunctionDefinition
        2. 12.14.2 SS: IsValidSimpleAssignmentTarget
        3. 12.14.3 RS: Evaluation
      15. ◢12.15 Assignment Operators
        1. 12.15.1 SS: Early Errors
        2. 12.15.2 SS: IsFunctionDefinition
        3. 12.15.3 SS: IsValidSimpleAssignmentTarget
        4. 12.15.4 RS: Evaluation
        5. ◢12.15.5 Destructuring Assignment
          1. 12.15.5.1 SS: Early Errors
          2. 12.15.5.2 RS: DestructuringAssignmentEvaluation
          3. 12.15.5.3 RS: IteratorDestructuringAssignmentEvaluation
          4. 12.15.5.4 RS: KeyedDestructuringAssignmentEvaluation
      16. ◢12.16 Comma Operator ( , )
        1. 12.16.1 SS: IsFunctionDefinition
        2. 12.16.2 SS: IsValidSimpleAssignmentTarget
        3. 12.16.3 RS: Evaluation
    14. ◢13 ECMAScript Language: Statements and Declarations
      1. ◢13.1 Statement Semantics
        1. 13.1.1 SS: ContainsDuplicateLabels
        2. 13.1.2 SS: ContainsUndefinedBreakTarget
        3. 13.1.3 SS: ContainsUndefinedContinueTarget
        4. 13.1.4 SS: DeclarationPart
        5. 13.1.5 SS: VarDeclaredNames
        6. 13.1.6 SS: VarScopedDeclarations
        7. 13.1.7 RS: LabelledEvaluation
        8. 13.1.8 RS: Evaluation
      2. ◢13.2 Block
        1. 13.2.1 SS: Early Errors
        2. 13.2.2 SS: ContainsDuplicateLabels
        3. 13.2.3 SS: ContainsUndefinedBreakTarget
        4. 13.2.4 SS: ContainsUndefinedContinueTarget
        5. 13.2.5 SS: LexicallyDeclaredNames
        6. 13.2.6 SS: LexicallyScopedDeclarations
        7. 13.2.7 SS: TopLevelLexicallyDeclaredNames
        8. 13.2.8 SS: TopLevelLexicallyScopedDeclarations
        9. 13.2.9 SS: TopLevelVarDeclaredNames
        10. 13.2.10 SS: TopLevelVarScopedDeclarations
        11. 13.2.11 SS: VarDeclaredNames
        12. 13.2.12 SS: VarScopedDeclarations
        13. 13.2.13 RS: Evaluation
        14. 13.2.14 RS: BlockDeclarationInstantiation( code, env )
      3. ◢13.3 Declarations and the Variable Statement
        1. ◢13.3.1 Let and Const Declarations
          1. 13.3.1.1 SS: Early Errors
          2. 13.3.1.2 SS: BoundNames
          3. 13.3.1.3 SS: IsConstantDeclaration
          4. 13.3.1.4 RS: Evaluation
        2. ◢13.3.2 Variable Statement
          1. 13.3.2.1 SS: BoundNames
          2. 13.3.2.2 SS: VarDeclaredNames
          3. 13.3.2.3 SS: VarScopedDeclarations
          4. 13.3.2.4 RS: Evaluation
        3. ◢13.3.3 Destructuring Binding Patterns
          1. 13.3.3.1 SS: BoundNames
          2. 13.3.3.2 SS: ContainsExpression
          3. 13.3.3.3 SS: HasInitializer
          4. 13.3.3.4 SS: IsSimpleParameterList
          5. 13.3.3.5 RS: BindingInitialization
          6. 13.3.3.6 RS: IteratorBindingInitialization
          7. 13.3.3.7 RS: KeyedBindingInitialization
      4. ◢13.4 Empty Statement
        1. 13.4.1 RS: Evaluation
      5. ◢13.5 Expression Statement
        1. 13.5.1 RS: Evaluation
      6. ◢13.6 The if Statement
        1. 13.6.1 SS: Early Errors
        2. 13.6.2 SS: ContainsDuplicateLabels
        3. 13.6.3 SS: ContainsUndefinedBreakTarget
        4. 13.6.4 SS: ContainsUndefinedContinueTarget
        5. 13.6.5 SS: VarDeclaredNames
        6. 13.6.6 SS: VarScopedDeclarations
        7. 13.6.7 RS: Evaluation
      7. ◢13.7 Iteration Statements
        1. ◢13.7.1 Semantics
          1. 13.7.1.1 SS: Early Errors
          2. 13.7.1.2 RS: LoopContinues(completion, labelSet)
        2. ◢13.7.2 The do-while Statement
          1. 13.7.2.1 SS: ContainsDuplicateLabels
          2. 13.7.2.2 SS: ContainsUndefinedBreakTarget
          3. 13.7.2.3 SS: ContainsUndefinedContinueTarget
          4. 13.7.2.4 SS: VarDeclaredNames
          5. 13.7.2.5 SS: VarScopedDeclarations
          6. 13.7.2.6 RS: LabelledEvaluation
        3. ◢13.7.3 The while Statement
          1. 13.7.3.1 SS: ContainsDuplicateLabels
          2. 13.7.3.2 SS: ContainsUndefinedBreakTarget
          3. 13.7.3.3 SS: ContainsUndefinedContinueTarget
          4. 13.7.3.4 SS: VarDeclaredNames
          5. 13.7.3.5 SS: VarScopedDeclarations
          6. 13.7.3.6 RS: LabelledEvaluation
        4. ◢13.7.4 The for Statement
          1. 13.7.4.1 SS: Early Errors
          2. 13.7.4.2 SS: ContainsDuplicateLabels
          3. 13.7.4.3 SS: ContainsUndefinedBreakTarget
          4. 13.7.4.4 SS: ContainsUndefinedContinueTarget
          5. 13.7.4.5 SS: VarDeclaredNames
          6. 13.7.4.6 SS: VarScopedDeclarations
          7. 13.7.4.7 RS: LabelledEvaluation
          8. 13.7.4.8 RS: ForBodyEvaluation( test, increment, stmt, perIterationBindings, labelSet )
          9. 13.7.4.9 RS: CreatePerIterationEnvironment( perIterationBindings )
        5. ◢13.7.5 The for-in and for-of Statements
          1. 13.7.5.1 SS: Early Errors
          2. 13.7.5.2 SS: BoundNames
          3. 13.7.5.3 SS: ContainsDuplicateLabels
          4. 13.7.5.4 SS: ContainsUndefinedBreakTarget
          5. 13.7.5.5 SS: ContainsUndefinedContinueTarget
          6. 13.7.5.6 SS: IsDestructuring
          7. 13.7.5.7 SS: VarDeclaredNames
          8. 13.7.5.8 SS: VarScopedDeclarations
          9. 13.7.5.9 RS: BindingInitialization
          10. 13.7.5.10 RS: BindingInstantiation
          11. 13.7.5.11 RS: LabelledEvaluation
          12. 13.7.5.12 RS: ForIn/OfHeadEvaluation ( TDZnames, expr, iterationKind)
          13. 13.7.5.13 RS: ForIn/OfBodyEvaluation ( lhs, stmt, iterator, lhsKind, labelSet )
          14. 13.7.5.14 RS: Evaluation
          15. 13.7.5.15 EnumerateObjectProperties (O)
      8. ◢13.8 The continue Statement
        1. 13.8.1 SS: Early Errors
        2. 13.8.2 SS: ContainsUndefinedContinueTarget
        3. 13.8.3 RS: Evaluation
      9. ◢13.9 The break Statement
        1. 13.9.1 SS: Early Errors
        2. 13.9.2 SS: ContainsUndefinedBreakTarget
        3. 13.9.3 RS: Evaluation
      10. ◢13.10 The return Statement
        1. 13.10.1 RS: Evaluation
      11. ◢13.11 The with Statement
        1. 13.11.1 SS: Early Errors
        2. 13.11.2 SS: ContainsDuplicateLabels
        3. 13.11.3 SS: ContainsUndefinedBreakTarget
        4. 13.11.4 SS: ContainsUndefinedContinueTarget
        5. 13.11.5 SS: VarDeclaredNames
        6. 13.11.6 SS: VarScopedDeclarations
        7. 13.11.7 RS: Evaluation
      12. ◢13.12 The switch Statement
        1. 13.12.1 SS: Early Errors
        2. 13.12.2 SS: ContainsDuplicateLabels
        3. 13.12.3 SS: ContainsUndefinedBreakTarget
        4. 13.12.4 SS: ContainsUndefinedContinueTarget
        5. 13.12.5 SS: LexicallyDeclaredNames
        6. 13.12.6 SS: LexicallyScopedDeclarations
        7. 13.12.7 SS: VarDeclaredNames
        8. 13.12.8 SS: VarScopedDeclarations
        9. 13.12.9 RS: CaseBlockEvaluation
        10. 13.12.10 RS: CaseSelectorEvaluation
        11. 13.12.11 RS: Evaluation
      13. ◢13.13 Labelled Statements
        1. 13.13.1 SS: Early Errors
        2. 13.13.2 SS: ContainsDuplicateLabels
        3. 13.13.3 SS: ContainsUndefinedBreakTarget
        4. 13.13.4 SS: ContainsUndefinedContinueTarget
        5. 13.13.5 SS: IsLabelledFunction ( stmt )
        6. 13.13.6 SS: LexicallyDeclaredNames
        7. 13.13.7 SS: LexicallyScopedDeclarations
        8. 13.13.8 SS: TopLevelLexicallyDeclaredNames
        9. 13.13.9 SS: TopLevelLexicallyScopedDeclarations
        10. 13.13.10 SS: TopLevelVarDeclaredNames
        11. 13.13.11 SS: TopLevelVarScopedDeclarations
        12. 13.13.12 SS: VarDeclaredNames
        13. 13.13.13 SS: VarScopedDeclarations
        14. 13.13.14 RS: LabelledEvaluation
        15. 13.13.15 RS: Evaluation
      14. ◢13.14 The throw Statement
        1. 13.14.1 RS: Evaluation
      15. ◢13.15 The try Statement
        1. 13.15.1 SS: Early Errors
        2. 13.15.2 SS: ContainsDuplicateLabels
        3. 13.15.3 SS: ContainsUndefinedBreakTarget
        4. 13.15.4 SS: ContainsUndefinedContinueTarget
        5. 13.15.5 SS: VarDeclaredNames
        6. 13.15.6 SS: VarScopedDeclarations
        7. 13.15.7 RS: CatchClauseEvaluation
        8. 13.15.8 RS: Evaluation
      16. ◢13.16 The debugger Statement
        1. 13.16.1 RS: Evaluation
    15. ◢14 ECMAScript Language: Functions and Classes
      1. ◢14.1 Function Definitions
        1. 14.1.1 Directive Prologues and the Use Strict Directive
        2. 14.1.2 SS: Early Errors
        3. 14.1.3 SS: BoundNames
        4. 14.1.4 SS: Contains
        5. 14.1.5 SS: ContainsExpression
        6. 14.1.6 SS: ContainsUseStrict
        7. 14.1.7 SS: ExpectedArgumentCount
        8. 14.1.8 SS: HasInitializer
        9. 14.1.9 SS: HasName
        10. 14.1.10 SS: IsAnonymousFunctionDefinition ( production )
        11. 14.1.11 SS: IsConstantDeclaration
        12. 14.1.12 SS: IsFunctionDefinition
        13. 14.1.13 SS: IsSimpleParameterList
        14. 14.1.14 SS: LexicallyDeclaredNames
        15. 14.1.15 SS: LexicallyScopedDeclarations
        16. 14.1.16 SS: VarDeclaredNames
        17. 14.1.17 SS: VarScopedDeclarations
        18. 14.1.18 RS: EvaluateBody
        19. 14.1.19 RS: IteratorBindingInitialization
        20. 14.1.20 RS: InstantiateFunctionObject
        21. 14.1.21 RS: Evaluation
      2. ◢14.2 Arrow Function Definitions
        1. 14.2.1 SS: Early Errors
        2. 14.2.2 SS: BoundNames
        3. 14.2.3 SS: Contains
        4. 14.2.4 SS: ContainsExpression
        5. 14.2.5 SS: ContainsUseStrict
        6. 14.2.6 SS: ExpectedArgumentCount
        7. 14.2.7 SS: HasName
        8. 14.2.8 SS: IsSimpleParameterList
        9. 14.2.9 SS: CoveredFormalsList
        10. 14.2.10 SS: LexicallyDeclaredNames
        11. 14.2.11 SS: LexicallyScopedDeclarations
        12. 14.2.12 SS: VarDeclaredNames
        13. 14.2.13 SS: VarScopedDeclarations
        14. 14.2.14 RS: IteratorBindingInitialization
        15. 14.2.15 RS: EvaluateBody
        16. 14.2.16 RS: Evaluation
      3. ◢14.3 Method Definitions
        1. 14.3.1 SS: Early Errors
        2. 14.3.2 SS: ComputedPropertyContains
        3. 14.3.3 SS: ExpectedArgumentCount
        4. 14.3.4 SS: HasComputedPropertyKey
        5. 14.3.5 SS: HasDirectSuper
        6. 14.3.6 SS: PropName
        7. 14.3.7 SS: SpecialMethod
        8. 14.3.8 RS: DefineMethod
        9. 14.3.9 RS: PropertyDefinitionEvaluation
      4. ◢14.4 Generator Function Definitions
        1. 14.4.1 SS: Early Errors
        2. 14.4.2 SS: BoundNames
        3. 14.4.3 SS: ComputedPropertyContains
        4. 14.4.4 SS: Contains
        5. 14.4.5 SS: HasComputedPropertyKey
        6. 14.4.6 SS: HasDirectSuper
        7. 14.4.7 SS: HasName
        8. 14.4.8 SS: IsConstantDeclaration
        9. 14.4.9 SS: IsFunctionDefinition
        10. 14.4.10 SS: PropName
        11. 14.4.11 RS: EvaluateBody
        12. 14.4.12 RS: InstantiateFunctionObject
        13. 14.4.13 RS: PropertyDefinitionEvaluation
        14. 14.4.14 RS: Evaluation
      5. ◢14.5 Class Definitions
        1. 14.5.1 SS: Early Errors
        2. 14.5.2 SS: BoundNames
        3. 14.5.3 SS: ConstructorMethod
        4. 14.5.4 SS: Contains
        5. 14.5.5 SS: ComputedPropertyContains
        6. 14.5.6 SS: HasName
        7. 14.5.7 SS: IsConstantDeclaration
        8. 14.5.8 SS: IsFunctionDefinition
        9. 14.5.9 SS: IsStatic
        10. 14.5.10 SS: NonConstructorMethodDefinitions
        11. 14.5.11 SS: PrototypePropertyNameList
        12. 14.5.12 SS: PropName
        13. 14.5.13 SS: StaticPropertyNameList
        14. 14.5.14 RS: ClassDefinitionEvaluation
        15. 14.5.15 RS: BindingClassDeclarationEvaluation
        16. 14.5.16 RS: Evaluation
      6. ◢14.6 Tail Position Calls
        1. 14.6.1 SS: IsInTailPosition(nonterminal)
        2. ◢14.6.2 SS: HasProductionInTailPosition
          1. 14.6.2.1 Statement Rules
          2. 14.6.2.2 Expression Rules
        3. 14.6.3 RS: PrepareForTailCall ( )
    16. ◢15 ECMAScript Language: Scripts and Modules
      1. ◢15.1 Scripts
        1. 15.1.1 SS: Early Errors
        2. 15.1.2 SS: IsStrict
        3. 15.1.3 SS: LexicallyDeclaredNames
        4. 15.1.4 SS: LexicallyScopedDeclarations
        5. 15.1.5 SS: VarDeclaredNames
        6. 15.1.6 SS: VarScopedDeclarations
        7. 15.1.7 RS: Evaluation
        8. 15.1.8 Script Records
        9. 15.1.9 ParseScript ( sourceText, realm, hostDefined )
        10. 15.1.10 ScriptEvaluation ( scriptRecord )
        11. 15.1.11 RS: GlobalDeclarationInstantiation (script, env)
        12. 15.1.12 RS: ScriptEvaluationJob ( sourceText, hostDefined )
      2. ◢15.2 Modules
        1. ◢15.2.1 Module Semantics
          1. 15.2.1.1 SS: Early Errors
          2. 15.2.1.2 SS: ContainsDuplicateLabels
          3. 15.2.1.3 SS: ContainsUndefinedBreakTarget
          4. 15.2.1.4 SS: ContainsUndefinedContinueTarget
          5. 15.2.1.5 SS: ExportedBindings
          6. 15.2.1.6 SS: ExportedNames
          7. 15.2.1.7 SS: ExportEntries
          8. 15.2.1.8 SS: ImportEntries
          9. 15.2.1.9 SS: ImportedLocalNames ( importEntries )
          10. 15.2.1.10 SS: ModuleRequests
          11. 15.2.1.11 SS: LexicallyDeclaredNames
          12. 15.2.1.12 SS: LexicallyScopedDeclarations
          13. 15.2.1.13 SS: VarDeclaredNames
          14. 15.2.1.14 SS: VarScopedDeclarations
          15. 15.2.1.15 Abstract Module Records
          16. ◢15.2.1.16 Source Text Module Records
            1. 15.2.1.16.1 ParseModule ( sourceText, realm, hostDefined )
            2. 15.2.1.16.2 GetExportedNames( exportStarSet ) Concrete Method
            3. 15.2.1.16.3 ResolveExport( exportName, resolveSet, exportStarSet ) Concrete Method
            4. 15.2.1.16.4 ModuleDeclarationInstantiation( ) Concrete Method
            5. 15.2.1.16.5 ModuleEvaluation() Concrete Method
          17. 15.2.1.17 RS: HostResolveImportedModule (referencingModule, specifier )
          18. 15.2.1.18 RS: GetModuleNamespace( module )
          19. 15.2.1.19 RS: TopLevelModuleEvaluationJob ( sourceText, hostDefined )
          20. 15.2.1.20 RS: Evaluation
        2. ◢15.2.2 Imports
          1. 15.2.2.1 SS: Early Errors
          2. 15.2.2.2 SS: BoundNames
          3. 15.2.2.3 SS: ImportEntries
          4. 15.2.2.4 SS: ImportEntriesForModule
          5. 15.2.2.5 SS: ModuleRequests
        3. ◢15.2.3 Exports
          1. 15.2.3.1 SS: Early Errors
          2. 15.2.3.2 SS: BoundNames
          3. 15.2.3.3 SS: ExportedBindings
          4. 15.2.3.4 SS: ExportedNames
          5. 15.2.3.5 SS: ExportEntries
          6. 15.2.3.6 SS: ExportEntriesForModule
          7. 15.2.3.7 SS: IsConstantDeclaration
          8. 15.2.3.8 SS: LexicallyScopedDeclarations
          9. 15.2.3.9 SS: ModuleRequests
          10. 15.2.3.10 SS: ReferencedBindings
          11. 15.2.3.11 RS: Evaluation
    17. ◢16 Error Handling and Language Extensions
      1. 16.1 HostReportErrors ( errorList )
      2. 16.2 Forbidden Extensions
    18. 17 ECMAScript Standard Built-in Objects
    19. ◢18 The Global Object
      1. ◢18.1 Value Properties of the Global Object
        1. 18.1.1 Infinity
        2. 18.1.2 NaN
        3. 18.1.3 undefined
      2. ◢18.2 Function Properties of the Global Object
        1. ◢18.2.1 eval (x)
          1. 18.2.1.1 RS: PerformEval( x, evalRealm, strictCaller, direct)
          2. 18.2.1.2 RS: EvalDeclarationInstantiation( body, varEnv, lexEnv, strict)
        2. 18.2.2 isFinite (number)
        3. 18.2.3 isNaN (number)
        4. 18.2.4 parseFloat (string)
        5. 18.2.5 parseInt (string, radix)
        6. ◢18.2.6 URI Handling Functions
          1. ◢18.2.6.1 URI Syntax and Semantics
            1. 18.2.6.1.1 RS: Encode ( string, unescapedSet )
            2. 18.2.6.1.2 RS: Decode ( string, reservedSet )
          2. 18.2.6.2 decodeURI (encodedURI)
          3. 18.2.6.3 decodeURIComponent (encodedURIComponent)
          4. 18.2.6.4 encodeURI (uri)
          5. 18.2.6.5 encodeURIComponent (uriComponent)
      3. ◢18.3 Constructor Properties of the Global Object
        1. 18.3.1 Array ( . . . )
        2. 18.3.2 ArrayBuffer ( . . . )
        3. 18.3.3 Boolean ( . . . )
        4. 18.3.4 DataView ( . . . )
        5. 18.3.5 Date ( . . . )
        6. 18.3.6 Error ( . . . )
        7. 18.3.7 EvalError ( . . . )
        8. 18.3.8 Float32Array ( . . . )
        9. 18.3.9 Float64Array ( . . . )
        10. 18.3.10 Function ( . . . )
        11. 18.3.11 Int8Array ( . . . )
        12. 18.3.12 Int16Array ( . . . )
        13. 18.3.13 Int32Array ( . . . )
        14. 18.3.14 Map ( . . . )
        15. 18.3.15 Number ( . . . )
        16. 18.3.16 Object ( . . . )
        17. 18.3.17 Proxy ( . . . )
        18. 18.3.18 Promise ( . . . )
        19. 18.3.19 RangeError ( . . . )
        20. 18.3.20 ReferenceError ( . . . )
        21. 18.3.21 RegExp ( . . . )
        22. 18.3.22 Set ( . . . )
        23. 18.3.23 String ( . . . )
        24. 18.3.24 Symbol ( . . . )
        25. 18.3.25 SyntaxError ( . . . )
        26. 18.3.26 TypeError ( . . . )
        27. 18.3.27 Uint8Array ( . . . )
        28. 18.3.28 Uint8ClampedArray ( . . . )
        29. 18.3.29 Uint16Array ( . . . )
        30. 18.3.30 Uint32Array ( . . . )
        31. 18.3.31 URIError ( . . . )
        32. 18.3.32 WeakMap ( . . . )
        33. 18.3.33 WeakSet ( . . . )
      4. ◢18.4 Other Properties of the Global Object
        1. 18.4.1 JSON
        2. 18.4.2 Math
        3. 18.4.3 Reflect
    20. ◢19 Fundamental Objects
      1. ◢19.1 Object Objects
        1. ◢19.1.1 The Object Constructor
          1. 19.1.1.1 Object ( [ value ] )
        2. ◢19.1.2 Properties of the Object Constructor
          1. 19.1.2.1 Object.assign ( target, ...sources )
          2. 19.1.2.2 Object.create ( O, Properties )
          3. ◢19.1.2.3 Object.defineProperties ( O, Properties )
            1. 19.1.2.3.1 RS: ObjectDefineProperties ( O, Properties )
          4. 19.1.2.4 Object.defineProperty ( O, P, Attributes )
          5. 19.1.2.5 Object.freeze ( O )
          6. 19.1.2.6 Object.getOwnPropertyDescriptor ( O, P )
          7. 19.1.2.7 Object.getOwnPropertyNames ( O )
          8. ◢19.1.2.8 Object.getOwnPropertySymbols ( O )
            1. 19.1.2.8.1 RS: GetOwnPropertyKeys ( O, Type )
          9. 19.1.2.9 Object.getPrototypeOf ( O )
          10. 19.1.2.10 Object.is ( value1, value2 )
          11. 19.1.2.11 Object.isExtensible ( O )
          12. 19.1.2.12 Object.isFrozen ( O )
          13. 19.1.2.13 Object.isSealed ( O )
          14. 19.1.2.14 Object.keys ( O )
          15. 19.1.2.15 Object.preventExtensions ( O )
          16. 19.1.2.16 Object.prototype
          17. 19.1.2.17 Object.seal ( O )
          18. 19.1.2.18 Object.setPrototypeOf ( O, proto )
        3. ◢19.1.3 Properties of the Object Prototype Object
          1. 19.1.3.1 Object.prototype.constructor
          2. 19.1.3.2 Object.prototype.hasOwnProperty ( V )
          3. 19.1.3.3 Object.prototype.isPrototypeOf ( V )
          4. 19.1.3.4 Object.prototype.propertyIsEnumerable ( V )
          5. 19.1.3.5 Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
          6. 19.1.3.6 Object.prototype.toString ( )
          7. 19.1.3.7 Object.prototype.valueOf ( )
        4. 19.1.4 Properties of Object Instances
      2. ◢19.2 Function Objects
        1. ◢19.2.1 The Function Constructor
          1. ◢19.2.1.1 Function ( p1, p2, … , pn, body )
            1. 19.2.1.1.1 RS: CreateDynamicFunction(constructor, newTarget, kind, args)
        2. ◢19.2.2 Properties of the Function Constructor
          1. 19.2.2.1 Function.length
          2. 19.2.2.2 Function.prototype
        3. ◢19.2.3 Properties of the Function Prototype Object
          1. 19.2.3.1 Function.prototype.apply ( thisArg, argArray )
          2. 19.2.3.2 Function.prototype.bind ( thisArg, ...args)
          3. 19.2.3.3 Function.prototype.call (thisArg, ...args)
          4. 19.2.3.4 Function.prototype.constructor
          5. 19.2.3.5 Function.prototype.toString ( )
          6. 19.2.3.6 Function.prototype [ @@hasInstance ] ( V )
        4. ◢19.2.4 Function Instances
          1. 19.2.4.1 length
          2. 19.2.4.2 name
          3. 19.2.4.3 prototype
      3. ◢19.3 Boolean Objects
        1. ◢19.3.1 The Boolean Constructor
          1. 19.3.1.1 Boolean ( value )
        2. ◢19.3.2 Properties of the Boolean Constructor
          1. 19.3.2.1 Boolean.prototype
        3. ◢19.3.3 Properties of the Boolean Prototype Object
          1. 19.3.3.1 thisBooleanValue ( value )
          2. 19.3.3.2 Boolean.prototype.constructor
          3. 19.3.3.3 Boolean.prototype.toString ( )
          4. 19.3.3.4 Boolean.prototype.valueOf ( )
        4. 19.3.4 Properties of Boolean Instances
      4. ◢19.4 Symbol Objects
        1. ◢19.4.1 The Symbol Constructor
          1. 19.4.1.1 Symbol ( [ description ] )
        2. ◢19.4.2 Properties of the Symbol Constructor
          1. 19.4.2.1 Symbol.for ( key )
          2. 19.4.2.2 Symbol.hasInstance
          3. 19.4.2.3 Symbol.isConcatSpreadable
          4. 19.4.2.4 Symbol.iterator
          5. 19.4.2.5 Symbol.keyFor ( sym )
          6. 19.4.2.6 Symbol.match
          7. 19.4.2.7 Symbol.prototype
          8. 19.4.2.8 Symbol.replace
          9. 19.4.2.9 Symbol.search
          10. 19.4.2.10 Symbol.species
          11. 19.4.2.11 Symbol.split
          12. 19.4.2.12 Symbol.toPrimitive
          13. 19.4.2.13 Symbol.toStringTag
          14. 19.4.2.14 Symbol.unscopables
        3. ◢19.4.3 Properties of the Symbol Prototype Object
          1. 19.4.3.1 Symbol.prototype.constructor
          2. ◢19.4.3.2 Symbol.prototype.toString ( )
            1. 19.4.3.2.1 RS: SymbolDescriptiveString ( sym )
          3. 19.4.3.3 Symbol.prototype.valueOf ( )
          4. 19.4.3.4 Symbol.prototype [ @@toPrimitive ] ( hint )
          5. 19.4.3.5 Symbol.prototype [ @@toStringTag ]
        4. 19.4.4 Properties of Symbol Instances
      5. ◢19.5 Error Objects
        1. ◢19.5.1 The Error Constructor
          1. 19.5.1.1 Error ( message )
        2. ◢19.5.2 Properties of the Error Constructor
          1. 19.5.2.1 Error.prototype
        3. ◢19.5.3 Properties of the Error Prototype Object
          1. 19.5.3.1 Error.prototype.constructor
          2. 19.5.3.2 Error.prototype.message
          3. 19.5.3.3 Error.prototype.name
          4. 19.5.3.4 Error.prototype.toString ( )
        4. 19.5.4 Properties of Error Instances
        5. ◢19.5.5 Native Error Types Used in This Standard
          1. 19.5.5.1 EvalError
          2. 19.5.5.2 RangeError
          3. 19.5.5.3 ReferenceError
          4. 19.5.5.4 SyntaxError
          5. 19.5.5.5 TypeError
          6. 19.5.5.6 URIError
        6. ◢19.5.6 NativeError Object Structure
          1. ◢19.5.6.1 NativeError Constructors
            1. 19.5.6.1.1 NativeError ( message )
          2. ◢19.5.6.2 Properties of the NativeError Constructors
            1. 19.5.6.2.1 NativeError.prototype
          3. ◢19.5.6.3 Properties of the NativeError Prototype Objects
            1. 19.5.6.3.1 NativeError.prototype.constructor
            2. 19.5.6.3.2 NativeError.prototype.message
            3. 19.5.6.3.3 NativeError.prototype.name
          4. 19.5.6.4 Properties of NativeError Instances
    21. ◢20 Numbers and Dates
      1. ◢20.1 Number Objects
        1. ◢20.1.1 The Number Constructor
          1. 20.1.1.1 Number ( value )
        2. ◢20.1.2 Properties of the Number Constructor
          1. 20.1.2.1 Number.EPSILON
          2. 20.1.2.2 Number.isFinite ( number )
          3. 20.1.2.3 Number.isInteger ( number )
          4. 20.1.2.4 Number.isNaN ( number )
          5. 20.1.2.5 Number.isSafeInteger ( number )
          6. 20.1.2.6 Number.MAX_SAFE_INTEGER
          7. 20.1.2.7 Number.MAX_VALUE
          8. 20.1.2.8 Number.MIN_SAFE_INTEGER
          9. 20.1.2.9 Number.MIN_VALUE
          10. 20.1.2.10 Number.NaN
          11. 20.1.2.11 Number.NEGATIVE_INFINITY
          12. 20.1.2.12 Number.parseFloat ( string )
          13. 20.1.2.13 Number.parseInt ( string, radix )
          14. 20.1.2.14 Number.POSITIVE_INFINITY
          15. 20.1.2.15 Number.prototype
        3. ◢20.1.3 Properties of the Number Prototype Object
          1. 20.1.3.1 Number.prototype.constructor
          2. 20.1.3.2 Number.prototype.toExponential ( fractionDigits )
          3. 20.1.3.3 Number.prototype.toFixed ( fractionDigits )
          4. 20.1.3.4 Number.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ])
          5. 20.1.3.5 Number.prototype.toPrecision ( precision )
          6. 20.1.3.6 Number.prototype.toString ( [ radix ] )
          7. 20.1.3.7 Number.prototype.valueOf ( )
        4. 20.1.4 Properties of Number Instances
      2. ◢20.2 The Math Object
        1. ◢20.2.1 Value Properties of the Math Object
          1. 20.2.1.1 Math.E
          2. 20.2.1.2 Math.LN10
          3. 20.2.1.3 Math.LN2
          4. 20.2.1.4 Math.LOG10E
          5. 20.2.1.5 Math.LOG2E
          6. 20.2.1.6 Math.PI
          7. 20.2.1.7 Math.SQRT1_2
          8. 20.2.1.8 Math.SQRT2
          9. 20.2.1.9 Math [ @@toStringTag ]
        2. ◢20.2.2 Function Properties of the Math Object
          1. 20.2.2.1 Math.abs ( x )
          2. 20.2.2.2 Math.acos ( x )
          3. 20.2.2.3 Math.acosh ( x )
          4. 20.2.2.4 Math.asin ( x )
          5. 20.2.2.5 Math.asinh ( x )
          6. 20.2.2.6 Math.atan ( x )
          7. 20.2.2.7 Math.atanh ( x )
          8. 20.2.2.8 Math.atan2 ( y, x )
          9. 20.2.2.9 Math.cbrt ( x )
          10. 20.2.2.10 Math.ceil ( x )
          11. 20.2.2.11 Math.clz32 ( x )
          12. 20.2.2.12 Math.cos ( x )
          13. 20.2.2.13 Math.cosh ( x )
          14. 20.2.2.14 Math.exp ( x )
          15. 20.2.2.15 Math.expm1 ( x )
          16. 20.2.2.16 Math.floor ( x )
          17. 20.2.2.17 Math.fround ( x )
          18. 20.2.2.18 Math.hypot ( value1, value2, ...values )
          19. 20.2.2.19 Math.imul ( x, y )
          20. 20.2.2.20 Math.log ( x )
          21. 20.2.2.21 Math.log1p ( x )
          22. 20.2.2.22 Math.log10 ( x )
          23. 20.2.2.23 Math.log2 ( x )
          24. 20.2.2.24 Math.max ( value1, value2, ...values )
          25. 20.2.2.25 Math.min ( value1, value2, ...values )
          26. 20.2.2.26 Math.pow ( base, exponent )
          27. 20.2.2.27 Math.random ( )
          28. 20.2.2.28 Math.round ( x )
          29. 20.2.2.29 Math.sign (x)
          30. 20.2.2.30 Math.sin ( x )
          31. 20.2.2.31 Math.sinh ( x )
          32. 20.2.2.32 Math.sqrt ( x )
          33. 20.2.2.33 Math.tan ( x )
          34. 20.2.2.34 Math.tanh ( x )
          35. 20.2.2.35 Math.trunc ( x )
      3. ◢20.3 Date Objects
        1. ◢20.3.1 Overview of Date Objects and Definitions of Abstract Operations
          1. 20.3.1.1 Time Values and Time Range
          2. 20.3.1.2 Day Number and Time within Day
          3. 20.3.1.3 Year Number
          4. 20.3.1.4 Month Number
          5. 20.3.1.5 Date Number
          6. 20.3.1.6 Week Day
          7. 20.3.1.7 Local Time Zone Adjustment
          8. 20.3.1.8 Daylight Saving Time Adjustment
          9. 20.3.1.9 LocalTime ( t )
          10. 20.3.1.10 UTC ( t )
          11. 20.3.1.11 Hours, Minutes, Second, and Milliseconds
          12. 20.3.1.12 MakeTime (hour, min, sec, ms)
          13. 20.3.1.13 MakeDay (year, month, date)
          14. 20.3.1.14 MakeDate (day, time)
          15. 20.3.1.15 TimeClip (time)
          16. ◢20.3.1.16 Date Time String Format
            1. 20.3.1.16.1 Extended Years
        2. ◢20.3.2 The Date Constructor
          1. 20.3.2.1 Date ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
          2. 20.3.2.2 Date ( value )
          3. 20.3.2.3 Date ( )
        3. ◢20.3.3 Properties of the Date Constructor
          1. 20.3.3.1 Date.now ( )
          2. 20.3.3.2 Date.parse ( string )
          3. 20.3.3.3 Date.prototype
          4. 20.3.3.4 Date.UTC ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
        4. ◢20.3.4 Properties of the Date Prototype Object
          1. 20.3.4.1 Date.prototype.constructor
          2. 20.3.4.2 Date.prototype.getDate ( )
          3. 20.3.4.3 Date.prototype.getDay ( )
          4. 20.3.4.4 Date.prototype.getFullYear ( )
          5. 20.3.4.5 Date.prototype.getHours ( )
          6. 20.3.4.6 Date.prototype.getMilliseconds ( )
          7. 20.3.4.7 Date.prototype.getMinutes ( )
          8. 20.3.4.8 Date.prototype.getMonth ( )
          9. 20.3.4.9 Date.prototype.getSeconds ( )
          10. 20.3.4.10 Date.prototype.getTime ( )
          11. 20.3.4.11 Date.prototype.getTimezoneOffset ( )
          12. 20.3.4.12 Date.prototype.getUTCDate ( )
          13. 20.3.4.13 Date.prototype.getUTCDay ( )
          14. 20.3.4.14 Date.prototype.getUTCFullYear ( )
          15. 20.3.4.15 Date.prototype.getUTCHours ( )
          16. 20.3.4.16 Date.prototype.getUTCMilliseconds ( )
          17. 20.3.4.17 Date.prototype.getUTCMinutes ( )
          18. 20.3.4.18 Date.prototype.getUTCMonth ( )