☰
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
        1. 5.2.1 Abstract Operations
        2. 5.2.2 Syntax-Directed Operations
        3. ◢5.2.3 Runtime Semantics
          1. 5.2.3.1 Implicit Completion Values
          2. 5.2.3.2 Throw an Exception
          3. 5.2.3.3 ReturnIfAbrupt
          4. 5.2.3.4 ReturnIfAbrupt Shorthands
        4. 5.2.4 Static Semantics
        5. 5.2.5 Mathematical Operations
    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 Set and Relation Specification Types
        3. ◢6.2.3 The Completion Record Specification Type
          1. ◢6.2.3.1 Await
            1. 6.2.3.1.1 Await Fulfilled Functions
            2. 6.2.3.1.2 Await Rejected Functions
          2. 6.2.3.2 NormalCompletion
          3. 6.2.3.3 ThrowCompletion
          4. 6.2.3.4 UpdateEmpty ( completionRecord, value )
        4. ◢6.2.4 The Reference Specification Type
          1. 6.2.4.1 GetBase ( V )
          2. 6.2.4.2 GetReferencedName ( V )
          3. 6.2.4.3 IsStrictReference ( V )
          4. 6.2.4.4 HasPrimitiveBase ( V )
          5. 6.2.4.5 IsPropertyReference ( V )
          6. 6.2.4.6 IsUnresolvableReference ( V )
          7. 6.2.4.7 IsSuperReference ( V )
          8. 6.2.4.8 GetValue ( V )
          9. 6.2.4.9 PutValue ( V, W )
          10. 6.2.4.10 GetThisValue ( V )
          11. 6.2.4.11 InitializeReferencedBinding ( V, W )
        5. ◢6.2.5 The Property Descriptor Specification Type
          1. 6.2.5.1 IsAccessorDescriptor ( Desc )
          2. 6.2.5.2 IsDataDescriptor ( Desc )
          3. 6.2.5.3 IsGenericDescriptor ( Desc )
          4. 6.2.5.4 FromPropertyDescriptor ( Desc )
          5. 6.2.5.5 ToPropertyDescriptor ( Obj )
          6. 6.2.5.6 CompletePropertyDescriptor ( Desc )
        6. 6.2.6 The Lexical Environment and Environment Record Specification Types
        7. ◢6.2.7 Data Blocks
          1. 6.2.7.1 CreateByteDataBlock ( size )
          2. 6.2.7.2 CreateSharedByteDataBlock ( size )
          3. 6.2.7.3 CopyDataBlockBytes ( toBlock, toIndex, fromBlock, fromIndex, count )
    8. ◢7 Abstract Operations
      1. ◢7.1 Type Conversion
        1. ◢7.1.1 ToPrimitive ( input [ , PreferredType ] )
          1. 7.1.1.1 OrdinaryToPrimitive ( O, hint )
        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
        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 NumberToString ( m )
        13. 7.1.13 ToObject ( argument )
        14. 7.1.14 ToPropertyKey ( argument )
        15. 7.1.15 ToLength ( argument )
        16. 7.1.16 CanonicalNumericIndexString ( argument )
        17. 7.1.17 ToIndex ( value )
      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 IsStringPrefix ( p, q )
        10. 7.2.10 SameValue ( x, y )
        11. 7.2.11 SameValueZero ( x, y )
        12. 7.2.12 SameValueNonNumber ( x, y )
        13. 7.2.13 Abstract Relational Comparison
        14. 7.2.14 Abstract Equality Comparison
        15. 7.2.15 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 EnumerableOwnPropertyNames ( O, kind )
        22. 7.3.22 GetFunctionRealm ( obj )
        23. 7.3.23 CopyDataProperties ( target, source, excludedItems )
      4. ◢7.4 Operations on Iterator Objects
        1. 7.4.1 GetIterator ( obj [ , hint [ , method ] ] )
        2. 7.4.2 IteratorNext ( iteratorRecord [ , value ] )
        3. 7.4.3 IteratorComplete ( iterResult )
        4. 7.4.4 IteratorValue ( iterResult )
        5. 7.4.5 IteratorStep ( iteratorRecord )
        6. 7.4.6 IteratorClose ( iteratorRecord, completion )
        7. 7.4.7 AsyncIteratorClose ( iteratorRecord, completion )
        8. 7.4.8 CreateIterResultObject ( value, done )
        9. ◢7.4.9 CreateListIteratorRecord ( list )
          1. 7.4.9.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 )
      5. 8.5 InitializeHostDefinedRealm ( )
      6. 8.6 RunJobs ( )
      7. ◢8.7 Agents
        1. 8.7.1 AgentSignifier ( )
        2. 8.7.2 AgentCanSuspend ( )
      8. 8.8 Agent Clusters
      9. 8.9 Forward Progress
    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 )