diff --git a/package-lock.json b/package-lock.json index e73fc285ac..da023042e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,9 +13,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" }, "@babel/highlight": { "version": "7.14.5", @@ -505,9 +505,9 @@ } }, "ecmarkup": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/ecmarkup/-/ecmarkup-9.1.0.tgz", - "integrity": "sha512-tR/4rI3jiGij0/qOau+5om6LYDBRgbyQzEM9Y3ksO5+sAS2idWhniIYguE2WUWuilxpD4e+cQesVZuOg6014QQ==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/ecmarkup/-/ecmarkup-9.2.0.tgz", + "integrity": "sha512-bWAJJsKlXmenaG8B2TJtDodIXVoANg3pq7a4ZG14/CyxTx4f6c/0ZiFlI/M0rp9/goD6y0Y/G0CRB3tWggJ17w==", "requires": { "chalk": "^1.1.3", "ecmarkdown": "^6.0.0", @@ -654,9 +654,9 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "4.3.0", @@ -1690,9 +1690,9 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "strip-ansi": { "version": "6.0.0", @@ -1750,9 +1750,9 @@ }, "dependencies": { "ajv": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", - "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", + "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -1761,9 +1761,9 @@ } }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "json-schema-traverse": { "version": "1.0.0", diff --git a/package.json b/package.json index 6e8572c73f..bb89ee7855 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "license": "SEE LICENSE IN https://tc39.es/ecma262/#sec-copyright-and-software-license", "homepage": "https://tc39.es/ecma262/", "dependencies": { - "ecmarkup": "^9.1.0" + "ecmarkup": "9.2.0" }, "devDependencies": { "glob": "^7.1.6", diff --git a/spec.html b/spec.html index ed0572a3fe..3ce68c812a 100644 --- a/spec.html +++ b/spec.html @@ -4957,9 +4957,13 @@

- +

Runtime Semantics: StringNumericValue

-

The conversion of a |StringNumericLiteral| to a Number value is similar overall to the determination of the NumericValue of a |NumericLiteral| (see ), but some of the details are different.

+
+
+ +

The conversion of a |StringNumericLiteral| to a Number value is similar overall to the determination of the NumericValue of a |NumericLiteral| (see ), but some of the details are different.

+
StringNumericLiteral ::: StrWhiteSpace? 1. Return *+0*𝔽. @@ -6980,8 +6984,10 @@

Syntax-Directed Operations

Scope Analysis

- +

Static Semantics: BoundNames

+
+

*"\*default\*"* is used within this specification as a synthetic name for hoistable anonymous functions that are defined using export declarations.

@@ -7229,8 +7235,10 @@

Static Semantics: BoundNames

- +

Static Semantics: DeclarationPart

+
+
HoistableDeclaration : FunctionDeclaration 1. Return |FunctionDeclaration|. @@ -7257,8 +7265,10 @@

Static Semantics: DeclarationPart

- +

Static Semantics: IsConstantDeclaration

+
+
LexicalDeclaration : LetOrConst BindingList `;` 1. Return IsConstantDeclaration of |LetOrConst|. @@ -7313,8 +7323,10 @@

Static Semantics: IsConstantDeclaration

- +

Static Semantics: LexicallyDeclaredNames

+
+
Block : `{` `}` 1. Return a new empty List. @@ -7439,8 +7451,10 @@

Static Semantics: LexicallyDeclaredNames

- +

Static Semantics: LexicallyScopedDeclarations

+
+
StatementList : StatementList StatementListItem 1. Let _declarations1_ be LexicallyScopedDeclarations of |StatementList|. @@ -7572,8 +7586,10 @@

Static Semantics: LexicallyScopedDeclarations

- +

Static Semantics: VarDeclaredNames

+
+
Statement : EmptyStatement @@ -7782,8 +7798,10 @@

Static Semantics: VarDeclaredNames

- +

Static Semantics: VarScopedDeclarations

+
+
Statement : EmptyStatement @@ -8001,8 +8019,10 @@

Static Semantics: VarScopedDeclarations

- +

Static Semantics: TopLevelLexicallyDeclaredNames

+
+
StatementList : StatementList StatementListItem 1. Let _names1_ be TopLevelLexicallyDeclaredNames of |StatementList|. @@ -8024,8 +8044,10 @@

Static Semantics: TopLevelLexicallyDeclaredNames

- +

Static Semantics: TopLevelLexicallyScopedDeclarations

+
+
StatementList : StatementList StatementListItem 1. Let _declarations1_ be TopLevelLexicallyScopedDeclarations of |StatementList|. @@ -8044,8 +8066,10 @@

Static Semantics: TopLevelLexicallyScopedDeclarations

- +

Static Semantics: TopLevelVarDeclaredNames

+
+
StatementList : StatementList StatementListItem 1. Let _names1_ be TopLevelVarDeclaredNames of |StatementList|. @@ -8081,8 +8105,10 @@

Static Semantics: TopLevelVarDeclaredNames

- +

Static Semantics: TopLevelVarScopedDeclarations

+
+
StatementList : StatementList StatementListItem 1. Let _declarations1_ be TopLevelVarScopedDeclarations of |StatementList|. @@ -8120,9 +8146,14 @@

Static Semantics: TopLevelVarScopedDeclarations

Labels

- -

Static Semantics: ContainsDuplicateLabels

-

With parameter _labelSet_.

+ +

+ Static Semantics: ContainsDuplicateLabels ( + _labelSet_: unknown, + ) +

+
+
Statement : VariableStatement @@ -8285,9 +8316,14 @@

Static Semantics: ContainsDuplicateLabels

- -

Static Semantics: ContainsUndefinedBreakTarget

-

With parameter _labelSet_.

+ +

+ Static Semantics: ContainsUndefinedBreakTarget ( + _labelSet_: unknown, + ) +

+
+
Statement : VariableStatement @@ -8457,9 +8493,15 @@

Static Semantics: ContainsUndefinedBreakTarget

- -

Static Semantics: ContainsUndefinedContinueTarget

-

With parameters _iterationSet_ and _labelSet_.

+ +

+ Static Semantics: ContainsUndefinedContinueTarget ( + _iterationSet_: unknown, + _labelSet_: unknown, + ) +

+
+
Statement : VariableStatement @@ -8641,8 +8683,10 @@

Static Semantics: ContainsUndefinedContinueTarget

Function Name Inference

- +

Static Semantics: HasName

+
+
PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList 1. Let _expr_ be the |ParenthesizedExpression| that is covered by |CoverParenthesizedExpressionAndArrowParameterList|. @@ -8694,8 +8738,10 @@

Static Semantics: HasName

- +

Static Semantics: IsFunctionDefinition

+
+
PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList 1. Let _expr_ be the |ParenthesizedExpression| that is covered by |CoverParenthesizedExpressionAndArrowParameterList|. @@ -8850,8 +8896,10 @@

- +

Static Semantics: IsIdentifierRef

+
+
PrimaryExpression : IdentifierReference 1. Return *true*. @@ -8892,9 +8940,14 @@

Static Semantics: IsIdentifierRef

- -

Runtime Semantics: NamedEvaluation

-

With parameter _name_.

+ +

+ Runtime Semantics: NamedEvaluation ( + _name_: unknown, + ) +

+
+
PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList 1. Let _expr_ be the |ParenthesizedExpression| that is covered by |CoverParenthesizedExpressionAndArrowParameterList|. @@ -8950,9 +9003,14 @@

Runtime Semantics: NamedEvaluation

Contains

- -

Static Semantics: Contains

-

With parameter _symbol_.

+ +

+ Static Semantics: Contains ( + _symbol_: unknown, + ) +

+
+

Every grammar production alternative in this specification which is not listed below implicitly has the following default definition of Contains:

1. For each child node _child_ of this Parse Node, do @@ -9081,9 +9139,14 @@

Static Semantics: Contains

- -

Static Semantics: ComputedPropertyContains

-

With parameter _symbol_.

+ +

+ Static Semantics: ComputedPropertyContains ( + _symbol_: unknown, + ) +

+
+
ClassElementName : PrivateIdentifier @@ -9146,9 +9209,15 @@

Static Semantics: ComputedPropertyContains

Miscellaneous

These operations are used in multiple places throughout the specification.

- -

Runtime Semantics: InstantiateFunctionObject

-

With parameters _scope_ and _privateScope_.

+ +

+ Runtime Semantics: InstantiateFunctionObject ( + _scope_: unknown, + _privateScope_: unknown, + ) +

+
+
FunctionDeclaration : `function` BindingIdentifier `(` FormalParameters `)` `{` FunctionBody `}` @@ -9183,9 +9252,15 @@

Runtime Semantics: InstantiateFunctionObject

- -

Runtime Semantics: BindingInitialization

-

With parameters _value_ and _environment_.

+ +

+ Runtime Semantics: BindingInitialization ( + _value_: unknown, + _environment_: unknown, + ) +

+
+

*undefined* is passed for _environment_ to indicate that a PutValue operation should be used to assign the initialization value. This is the case for `var` statements and formal parameter lists of some non-strict functions (See ). In those cases a lexical binding is hoisted and preinitialized prior to evaluation of its initializer.

@@ -9258,9 +9333,15 @@

- -

Runtime Semantics: IteratorBindingInitialization

-

With parameters _iteratorRecord_ and _environment_.

+ +

+ Runtime Semantics: IteratorBindingInitialization ( + _iteratorRecord_: unknown, + _environment_: unknown, + ) +

+
+

When *undefined* is passed for _environment_ it indicates that a PutValue operation should be used to assign the initialization value. This is the case for formal parameter lists of non-strict functions. In that case the formal parameter bindings are preinitialized in order to deal with the possibility of multiple parameters with the same name.

@@ -9429,8 +9510,10 @@

Runtime Semantics: IteratorBindingInitialization

- +

Static Semantics: AssignmentTargetType

+
+
IdentifierReference : Identifier 1. If this |IdentifierReference| is contained in strict mode code and StringValue of |Identifier| is *"eval"* or *"arguments"*, return ~invalid~. @@ -9585,8 +9668,10 @@

Static Semantics: AssignmentTargetType

- +

Static Semantics: PropName

+
+
PropertyDefinition : IdentifierReference 1. Return StringValue of |IdentifierReference|. @@ -13009,9 +13094,15 @@

- -

Runtime Semantics: EvaluateBody

-

With parameters _functionObject_ and _argumentsList_ (a List).

+ +

+ Runtime Semantics: EvaluateBody ( + _functionObject_: unknown, + _argumentsList_: a List, + ) +

+
+
FunctionBody : FunctionStatementList 1. Return ? EvaluateFunctionBody of |FunctionBody| with arguments _functionObject_ and _argumentsList_. @@ -16499,8 +16590,10 @@

Static Semantics: MV

- +

Static Semantics: NumericValue

+
+
NumericLiteral :: DecimalLiteral 1. Return RoundMVResult(MV of |DecimalLiteral|). @@ -16649,9 +16742,14 @@

Static Semantics: Early Errors

- +

Static Semantics: SV

-

A string literal stands for a value of the String type. SV produces String values for string literals through recursive application on the various parts of the string literal. As part of this process, some Unicode code points within the string literal are interpreted as having a mathematical value, as described below or in .

+
+
description
+
+

A string literal stands for a value of the String type. SV produces String values for string literals through recursive application on the various parts of the string literal. As part of this process, some Unicode code points within the string literal are interpreted as having a mathematical value, as described below or in .

+
+
  • The SV of StringLiteral :: `"` `"` is the empty String. @@ -16980,16 +17078,20 @@

    Static Semantics: Early Errors

- +

Static Semantics: BodyText

+
+
RegularExpressionLiteral :: `/` RegularExpressionBody `/` RegularExpressionFlags 1. Return the source text that was recognized as |RegularExpressionBody|.
- +

Static Semantics: FlagText

+
+
RegularExpressionLiteral :: `/` RegularExpressionBody `/` RegularExpressionFlags 1. Return the source text that was recognized as |RegularExpressionFlags|. @@ -17061,9 +17163,12 @@

Syntax

|TemplateSubstitutionTail| is used by the |InputElementTemplateTail| alternative lexical goal.

- +

Static Semantics: TV

-

A template literal component is interpreted by TV as a value of the String type. TV is used to construct the indexed components of a template object (colloquially, the template values). In TV, escape sequences are replaced by the UTF-16 code unit(s) of the Unicode code point represented by the escape sequence.

+
+
description
+
A template literal component is interpreted by TV as a value of the String type. TV is used to construct the indexed components of a template object (colloquially, the template values). In TV, escape sequences are replaced by the UTF-16 code unit(s) of the Unicode code point represented by the escape sequence.
+
  • The TV of NoSubstitutionTemplate :: ``` ``` is the empty String. @@ -17101,9 +17206,12 @@

    Static Semantics: TV

- +

Static Semantics: TRV

-

A template literal component is interpreted by TRV as a value of the String type. TRV is used to construct the raw components of a template object (colloquially, the template raw values). TRV is similar to TV with the difference being that in TRV, escape sequences are interpreted as they appear in the literal.

+
+
description
+
A template literal component is interpreted by TRV as a value of the String type. TRV is used to construct the raw components of a template object (colloquially, the template raw values). TRV is similar to TV with the difference being that in TRV, escape sequences are interpreted as they appear in the literal.
+
  • The TRV of NoSubstitutionTemplate :: ``` ``` is the empty String. @@ -17563,8 +17671,10 @@

    Static Semantics: Early Errors

    - +

    Static Semantics: StringValue

    +
    +
    IdentifierName :: IdentifierStart @@ -17747,9 +17857,15 @@

    Syntax

    `...` AssignmentExpression[+In, ?Yield, ?Await]
    - -

    Runtime Semantics: ArrayAccumulation

    -

    With parameters _array_ and _nextIndex_.

    + +

    + Runtime Semantics: ArrayAccumulation ( + _array_: unknown, + _nextIndex_: unknown, + ) +

    +
    +
    Elision : `,` 1. Let _len_ be _nextIndex_ + 1. @@ -17930,8 +18046,10 @@

    Static Semantics: Early Errors

    - +

    Static Semantics: IsComputedPropertyKey

    +
    +
    PropertyName : LiteralPropertyName 1. Return *false*. @@ -17942,8 +18060,10 @@

    Static Semantics: IsComputedPropertyKey

    - +

    Static Semantics: PropertyNameList

    +
    +
    PropertyDefinitionList : PropertyDefinition 1. Let _propName_ be PropName of |PropertyDefinition|. @@ -17995,9 +18115,14 @@

    Runtime Semantics: Evaluation

    1. Return ? ToPropertyKey(_propName_).
    - -

    Runtime Semantics: PropertyDefinitionEvaluation

    -

    With parameter _object_.

    + +

    + Runtime Semantics: PropertyDefinitionEvaluation ( + _object_: unknown, + ) +

    +
    +
    PropertyDefinitionList : PropertyDefinitionList `,` PropertyDefinition 1. Perform ? PropertyDefinitionEvaluation of |PropertyDefinitionList| with argument _object_. @@ -18174,9 +18299,14 @@

    Static Semantics: Early Errors

- -

Static Semantics: TemplateStrings

-

With parameter _raw_.

+ +

+ Static Semantics: TemplateStrings ( + _raw_: unknown, + ) +

+
+
TemplateLiteral : NoSubstitutionTemplate 1. If _raw_ is *false*, then @@ -18275,8 +18405,10 @@

- +

Runtime Semantics: SubstitutionEvaluation

+
+
TemplateSpans : TemplateTail 1. Return a new empty List. @@ -18821,8 +18953,10 @@

Argument Lists

The evaluation of an argument list produces a List of values.

- +

Runtime Semantics: ArgumentListEvaluation

+
+
Arguments : `(` `)` 1. Return a new empty List. @@ -18926,9 +19060,15 @@

Runtime Semantics: Evaluation

1. Return the result of performing ChainEvaluation of |OptionalChain| with arguments _baseValue_ and _baseReference_.
- -

Runtime Semantics: ChainEvaluation

-

With parameters _baseValue_ and _baseReference_.

+ +

+ Runtime Semantics: ChainEvaluation ( + _baseValue_: unknown, + _baseReference_: unknown, + ) +

+
+
OptionalChain : `?.` Arguments 1. Let _thisChain_ be this |OptionalChain|. @@ -20249,9 +20389,14 @@

Static Semantics: Early Errors

- -

Runtime Semantics: DestructuringAssignmentEvaluation

-

With parameter _value_.

+ +

+ Runtime Semantics: DestructuringAssignmentEvaluation ( + _value_: unknown, + ) +

+
+
ObjectAssignmentPattern : `{` `}` 1. Perform ? RequireObjectCoercible(_value_). @@ -20330,12 +20475,16 @@

Runtime Semantics: DestructuringAssignmentEvaluation

- -

Runtime Semantics: PropertyDestructuringAssignmentEvaluation

-

With parameter _value_.

- - The following operations collect a list of all destructured property names. - + +

+ Runtime Semantics: PropertyDestructuringAssignmentEvaluation ( + _value_: unknown, + ) +

+
+
description
+
It collects a list of all destructured property names.
+
AssignmentPropertyList : AssignmentPropertyList `,` AssignmentProperty 1. Let _propertyNames_ be ? PropertyDestructuringAssignmentEvaluation of |AssignmentPropertyList| with argument _value_. @@ -20367,10 +20516,15 @@

Runtime Semantics: PropertyDestructuringAssignmentEvaluation

- -

Runtime Semantics: RestDestructuringAssignmentEvaluation

-

With parameters _value_ and _excludedNames_.

- + +

+ Runtime Semantics: RestDestructuringAssignmentEvaluation ( + _value_: unknown, + _excludedNames_: unknown, + ) +

+
+
AssignmentRestProperty : `...` DestructuringAssignmentTarget 1. Let _lref_ be the result of evaluating |DestructuringAssignmentTarget|. @@ -20381,9 +20535,14 @@

Runtime Semantics: RestDestructuringAssignmentEvaluation

- -

Runtime Semantics: IteratorDestructuringAssignmentEvaluation

-

With parameter _iteratorRecord_.

+ +

+ Runtime Semantics: IteratorDestructuringAssignmentEvaluation ( + _iteratorRecord_: unknown, + ) +

+
+
AssignmentElementList : AssignmentElisionElement 1. Return the result of performing IteratorDestructuringAssignmentEvaluation of |AssignmentElisionElement| using _iteratorRecord_ as the argument. @@ -20476,9 +20635,15 @@

Runtime Semantics: IteratorDestructuringAssignmentEvaluation

- -

Runtime Semantics: KeyedDestructuringAssignmentEvaluation

-

With parameters _value_ and _propertyName_.

+ +

+ Runtime Semantics: KeyedDestructuringAssignmentEvaluation ( + _value_: unknown, + _propertyName_: unknown, + ) +

+
+
AssignmentElement : DestructuringAssignmentTarget Initializer? 1. If |DestructuringAssignmentTarget| is neither an |ObjectLiteral| nor an |ArrayLiteral|, then @@ -20896,12 +21061,17 @@

Syntax

`...` BindingPattern[?Yield, ?Await] - -

Runtime Semantics: PropertyBindingInitialization

-

With parameters _value_ and _environment_.

- - These collect a list of all bound property names rather than just empty completion. - + +

+ Runtime Semantics: PropertyBindingInitialization ( + _value_: unknown, + _environment_: unknown, + ) +

+
+
description
+
It collects a list of all bound property names rather than just empty completion.
+
BindingPropertyList : BindingPropertyList `,` BindingProperty 1. Let _boundNames_ be ? PropertyBindingInitialization of |BindingPropertyList| with arguments _value_ and _environment_. @@ -20925,10 +21095,16 @@

Runtime Semantics: PropertyBindingInitialization

- -

Runtime Semantics: RestBindingInitialization

-

With parameters _value_, _environment_, and _excludedNames_.

- + +

+ Runtime Semantics: RestBindingInitialization ( + _value_: unknown, + _environment_: unknown, + _excludedNames_: unknown, + ) +

+
+
BindingRestProperty : `...` BindingIdentifier 1. Let _lhs_ be ? ResolveBinding(StringValue of |BindingIdentifier|, _environment_). @@ -20939,9 +21115,16 @@

Runtime Semantics: RestBindingInitialization

- -

Runtime Semantics: KeyedBindingInitialization

-

With parameters _value_, _environment_, and _propertyName_.

+ +

+ Runtime Semantics: KeyedBindingInitialization ( + _value_: unknown, + _environment_: unknown, + _propertyName_: unknown, + ) +

+
+

When *undefined* is passed for _environment_ it indicates that a PutValue operation should be used to assign the initialization value. This is the case for formal parameter lists of non-strict functions. In that case the formal parameter bindings are preinitialized in order to deal with the possibility of multiple parameters with the same name.

@@ -21101,9 +21284,14 @@

- -

Runtime Semantics: LoopEvaluation

-

With parameter _labelSet_.

+ +

+ Runtime Semantics: LoopEvaluation ( + _labelSet_: unknown, + ) +

+
+
IterationStatement : DoWhileStatement 1. Return ? DoWhileLoopEvaluation of |DoWhileStatement| with argument _labelSet_. @@ -21144,9 +21332,14 @@

Static Semantics: Early Errors

- -

Runtime Semantics: DoWhileLoopEvaluation

-

With parameter _labelSet_.

+ +

+ Runtime Semantics: DoWhileLoopEvaluation ( + _labelSet_: unknown, + ) +

+
+
DoWhileStatement : `do` Statement `while` `(` Expression `)` `;` 1. Let _V_ be *undefined*. @@ -21182,9 +21375,14 @@

Static Semantics: Early Errors

- -

Runtime Semantics: WhileLoopEvaluation

-

With parameter _labelSet_.

+ +

+ Runtime Semantics: WhileLoopEvaluation ( + _labelSet_: unknown, + ) +

+
+
WhileStatement : `while` `(` Expression `)` Statement 1. Let _V_ be *undefined*. @@ -21233,9 +21431,14 @@

Static Semantics: Early Errors

- -

Runtime Semantics: ForLoopEvaluation

-

With parameter _labelSet_.

+ +

+ Runtime Semantics: ForLoopEvaluation ( + _labelSet_: unknown, + ) +

+
+
ForStatement : `for` `(` Expression? `;` Expression? `;` Expression? `)` Statement 1. If the first |Expression| is present, then @@ -21414,8 +21617,10 @@

Static Semantics: Early Errors

- +

Static Semantics: IsDestructuring

+
+
MemberExpression : PrimaryExpression 1. If |PrimaryExpression| is either an |ObjectLiteral| or an |ArrayLiteral|, return *true*. @@ -21458,9 +21663,15 @@

Static Semantics: IsDestructuring

- -

Runtime Semantics: ForDeclarationBindingInitialization

-

With parameters _value_ and _environment_.

+ +

+ Runtime Semantics: ForDeclarationBindingInitialization ( + _value_: unknown, + _environment_: unknown, + ) +

+
+

*undefined* is passed for _environment_ to indicate that a PutValue operation should be used to assign the initialization value. This is the case for `var` statements and the formal parameter lists of some non-strict functions (see ). In those cases a lexical binding is hoisted and preinitialized prior to evaluation of its initializer.

@@ -21470,9 +21681,14 @@

Runtime Semantics: ForDeclarationBindingInitialization

- -

Runtime Semantics: ForDeclarationBindingInstantiation

-

With parameter _environment_.

+ +

+ Runtime Semantics: ForDeclarationBindingInstantiation ( + _environment_: unknown, + ) +

+
+
ForDeclaration : LetOrConst ForBinding 1. Assert: _environment_ is a declarative Environment Record. @@ -21484,9 +21700,14 @@

Runtime Semantics: ForDeclarationBindingInstantiation

- -

Runtime Semantics: ForInOfLoopEvaluation

-

With parameter _labelSet_.

+ +

+ Runtime Semantics: ForInOfLoopEvaluation ( + _labelSet_: unknown, + ) +

+
+
ForInOfStatement : `for` `(` LeftHandSideExpression `in` Expression `)` Statement 1. Let _keyResult_ be ? ForIn/OfHeadEvaluation(« », |Expression|, ~enumerate~). @@ -22026,9 +22247,14 @@

Static Semantics: Early Errors

- -

Runtime Semantics: CaseBlockEvaluation

-

With parameter _input_.

+ +

+ Runtime Semantics: CaseBlockEvaluation ( + _input_: unknown, + ) +

+
+
CaseBlock : `{` `}` 1. Return NormalCompletion(*undefined*). @@ -22200,9 +22426,14 @@

Runtime Semantics: Evaluation

- -

Runtime Semantics: LabelledEvaluation

-

With parameter _labelSet_.

+ +

+ Runtime Semantics: LabelledEvaluation ( + _labelSet_: unknown, + ) +

+
+
BreakableStatement : IterationStatement 1. Let _stmtResult_ be LoopEvaluation of |IterationStatement| with argument _labelSet_. @@ -22323,9 +22554,14 @@

Static Semantics: Early Errors

- -

Runtime Semantics: CatchClauseEvaluation

-

With parameter _thrownValue_.

+ +

+ Runtime Semantics: CatchClauseEvaluation ( + _thrownValue_: unknown, + ) +

+
+
Catch : `catch` `(` CatchParameter `)` Block 1. Let _oldEnv_ be the running execution context's LexicalEnvironment. @@ -22453,8 +22689,10 @@

Static Semantics: Early Errors

- +

Static Semantics: ContainsExpression

+
+
ObjectBindingPattern : `{` `}` @@ -22558,8 +22796,10 @@

Static Semantics: ContainsExpression

- +

Static Semantics: IsSimpleParameterList

+
+
BindingElement : BindingPattern 1. Return *false*. @@ -22621,8 +22861,10 @@

Static Semantics: IsSimpleParameterList

- +

Static Semantics: HasInitializer

+
+
BindingElement : BindingPattern 1. Return *false*. @@ -22646,8 +22888,10 @@

Static Semantics: HasInitializer

- +

Static Semantics: ExpectedArgumentCount

+
+
FormalParameters : [empty] @@ -22774,17 +23018,25 @@

Static Semantics: Early Errors

- +

Static Semantics: FunctionBodyContainsUseStrict

+
+
FunctionBody : FunctionStatementList 1. If the Directive Prologue of |FunctionBody| contains a Use Strict Directive, return *true*; otherwise, return *false*.
- -

Runtime Semantics: EvaluateFunctionBody

-

With parameters _functionObject_ and _argumentsList_ (a List).

+ +

+ Runtime Semantics: EvaluateFunctionBody ( + _functionObject_: unknown, + _argumentsList_: a List, + ) +

+
+
FunctionBody : FunctionStatementList 1. Perform ? FunctionDeclarationInstantiation(_functionObject_, _argumentsList_). @@ -22792,9 +23044,15 @@

Runtime Semantics: EvaluateFunctionBody

- -

Runtime Semantics: InstantiateOrdinaryFunctionObject

-

With parameters _scope_ and _privateScope_.

+ +

+ Runtime Semantics: InstantiateOrdinaryFunctionObject ( + _scope_: unknown, + _privateScope_: unknown, + ) +

+
+
FunctionDeclaration : `function` BindingIdentifier `(` FormalParameters `)` `{` FunctionBody `}` 1. Let _name_ be StringValue of |BindingIdentifier|. @@ -22817,9 +23075,14 @@

Runtime Semantics: InstantiateOrdinaryFunctionObject

- -

Runtime Semantics: InstantiateOrdinaryFunctionExpression

-

With optional parameter _name_.

+ +

+ Runtime Semantics: InstantiateOrdinaryFunctionExpression ( + optional _name_: unknown, + ) +

+
+
FunctionExpression : `function` `(` FormalParameters `)` `{` FunctionBody `}` 1. If _name_ is not present, set _name_ to *""*. @@ -22937,8 +23200,10 @@

Static Semantics: Early Errors

- +

Static Semantics: ConciseBodyContainsUseStrict

+
+
ConciseBody : ExpressionBody 1. Return *false*. @@ -22949,9 +23214,15 @@

Static Semantics: ConciseBodyContainsUseStrict

- -

Runtime Semantics: EvaluateConciseBody

-

With parameters _functionObject_ and _argumentsList_ (a List).

+ +

+ Runtime Semantics: EvaluateConciseBody ( + _functionObject_: unknown, + _argumentsList_: a List, + ) +

+
+
ConciseBody : ExpressionBody 1. Perform ? FunctionDeclarationInstantiation(_functionObject_, _argumentsList_). @@ -22959,9 +23230,14 @@

Runtime Semantics: EvaluateConciseBody

- -

Runtime Semantics: InstantiateArrowFunctionExpression

-

With optional parameter _name_.

+ +

+ Runtime Semantics: InstantiateArrowFunctionExpression ( + optional _name_: unknown, + ) +

+
+
ArrowFunction : ArrowParameters `=>` ConciseBody 1. If _name_ is not present, set _name_ to *""*. @@ -23033,8 +23309,10 @@

Static Semantics: Early Errors

- +

Static Semantics: HasDirectSuper

+
+
MethodDefinition : ClassElementName `(` UniqueFormalParameters `)` `{` FunctionBody `}` 1. If |UniqueFormalParameters| Contains |SuperCall| is *true*, return *true*. @@ -23068,8 +23346,10 @@

Static Semantics: HasDirectSuper

- +

Static Semantics: SpecialMethod

+
+
MethodDefinition : ClassElementName `(` UniqueFormalParameters `)` `{` FunctionBody `}` 1. Return *false*. @@ -23087,9 +23367,15 @@

Static Semantics: SpecialMethod

- -

Runtime Semantics: DefineMethod

-

With parameter _object_ and optional parameter _functionPrototype_.

+ +

+ Runtime Semantics: DefineMethod ( + _object_: unknown, + optional _functionPrototype_: unknown, + ) +

+
+
MethodDefinition : ClassElementName `(` UniqueFormalParameters `)` `{` FunctionBody `}` 1. Let _propKey_ be the result of evaluating |ClassElementName|. @@ -23107,9 +23393,15 @@

Runtime Semantics: DefineMethod

- -

Runtime Semantics: MethodDefinitionEvaluation

-

With parameters _object_ and _enumerable_.

+ +

+ Runtime Semantics: MethodDefinitionEvaluation ( + _object_: unknown, + _enumerable_: unknown, + ) +

+
+
MethodDefinition : ClassElementName `(` UniqueFormalParameters `)` `{` FunctionBody `}` 1. Let _methodDef_ be ? DefineMethod of |MethodDefinition| with argument _object_. @@ -23286,9 +23578,15 @@

Static Semantics: Early Errors

- -

Runtime Semantics: EvaluateGeneratorBody

-

With parameters _functionObject_ and _argumentsList_ (a List).

+ +

+ Runtime Semantics: EvaluateGeneratorBody ( + _functionObject_: unknown, + _argumentsList_: a List, + ) +

+
+
GeneratorBody : FunctionBody 1. Perform ? FunctionDeclarationInstantiation(_functionObject_, _argumentsList_). @@ -23299,9 +23597,15 @@

Runtime Semantics: EvaluateGeneratorBody

- -

Runtime Semantics: InstantiateGeneratorFunctionObject

-

With parameters _scope_ and _privateScope_.

+ +

+ Runtime Semantics: InstantiateGeneratorFunctionObject ( + _scope_: unknown, + _privateScope_: unknown, + ) +

+
+
GeneratorDeclaration : `function` `*` BindingIdentifier `(` FormalParameters `)` `{` GeneratorBody `}` 1. Let _name_ be StringValue of |BindingIdentifier|. @@ -23326,9 +23630,14 @@

Runtime Semantics: InstantiateGeneratorFunctionObject

- -

Runtime Semantics: InstantiateGeneratorFunctionExpression

-

With optional parameter _name_.

+ +

+ Runtime Semantics: InstantiateGeneratorFunctionExpression ( + optional _name_: unknown, + ) +

+
+
GeneratorExpression : `function` `*` `(` FormalParameters `)` `{` GeneratorBody `}` 1. If _name_ is not present, set _name_ to *""*. @@ -23492,9 +23801,15 @@

Static Semantics: Early Errors

- -

Runtime Semantics: EvaluateAsyncGeneratorBody

-

With parameters _functionObject_ and _argumentsList_ (a List).

+ +

+ Runtime Semantics: EvaluateAsyncGeneratorBody ( + _functionObject_: unknown, + _argumentsList_: a List, + ) +

+
+
AsyncGeneratorBody : FunctionBody @@ -23507,9 +23822,15 @@

Runtime Semantics: EvaluateAsyncGeneratorBody

- -

Runtime Semantics: InstantiateAsyncGeneratorFunctionObject

-

With parameters _scope_ and _privateScope_.

+ +

+ Runtime Semantics: InstantiateAsyncGeneratorFunctionObject ( + _scope_: unknown, + _privateScope_: unknown, + ) +

+
+
AsyncGeneratorDeclaration : `async` `function` `*` BindingIdentifier `(` FormalParameters `)` `{` AsyncGeneratorBody `}` @@ -23538,9 +23859,14 @@

Runtime Semantics: InstantiateAsyncGeneratorFunctionObject

- -

Runtime Semantics: InstantiateAsyncGeneratorFunctionExpression

-

With optional parameter _name_.

+ +

+ Runtime Semantics: InstantiateAsyncGeneratorFunctionExpression ( + optional _name_: unknown, + ) +

+
+
AsyncGeneratorExpression : `async` `function` `*` `(` FormalParameters `)` `{` AsyncGeneratorBody `}` @@ -23737,8 +24063,10 @@

Static Semantics: Early Errors

- +

Static Semantics: ClassElementKind

+
+
ClassElement : MethodDefinition 1. If PropName of |MethodDefinition| is *"constructor"*, return ~ConstructorMethod~. @@ -23763,8 +24091,10 @@

Static Semantics: ClassElementKind

- +

Static Semantics: ConstructorMethod

+
+
ClassElementList : ClassElement 1. If ClassElementKind of |ClassElement| is ~ConstructorMethod~, return |ClassElement|. @@ -23782,8 +24112,10 @@

Static Semantics: ConstructorMethod

- +

Static Semantics: IsStatic

+
+
ClassElement : MethodDefinition 1. Return *false*. @@ -23810,8 +24142,10 @@

Static Semantics: IsStatic

- +

Static Semantics: NonConstructorElements

+
+
ClassElementList : ClassElement 1. If ClassElementKind of |ClassElement| is ~NonConstructorMethod~, then @@ -23827,8 +24161,10 @@

Static Semantics: NonConstructorElements

- +

Static Semantics: PrototypePropertyNameList

+
+
ClassElementList : ClassElement 1. Let _propName_ be PropName of |ClassElement|. @@ -23846,10 +24182,14 @@

Static Semantics: PrototypePropertyNameList

- -

Static Semantics: AllPrivateIdentifiersValid

-

With parameter _names_.

- + +

+ Static Semantics: AllPrivateIdentifiersValid ( + _names_: unknown, + ) +

+
+

Every grammar production alternative in this specification which is not listed below implicitly has the following default definition of AllPrivateIdentifiersValid:

1. For each child node _child_ of this Parse Node, do @@ -23899,8 +24239,10 @@

Static Semantics: AllPrivateIdentifiersValid

- +

Static Semantics: PrivateBoundIdentifiers

+
+
FieldDefinition : ClassElementName Initializer? @@ -23955,8 +24297,10 @@

Static Semantics: PrivateBoundIdentifiers

- +

Static Semantics: ContainsArguments

+
+

Every grammar production alternative in this specification which is not listed below implicitly has the following default definition of ContainsArguments:

@@ -24027,11 +24371,14 @@

Static Semantics: ContainsArguments

- -

Runtime Semantics: ClassFieldDefinitionEvaluation

- -

With parameter _homeObject_.

- + +

+ Runtime Semantics: ClassFieldDefinitionEvaluation ( + _homeObject_: unknown, + ) +

+
+
FieldDefinition : ClassElementName Initializer? @@ -24055,9 +24402,14 @@

Runtime Semantics: ClassFieldDefinitionEvaluation

- -

Runtime Semantics: ClassStaticBlockDefinitionEvaluation

-

With parameter _homeObject_.

+ +

+ Runtime Semantics: ClassStaticBlockDefinitionEvaluation ( + _homeObject_: unknown, + ) +

+
+
ClassStaticBlock : `static` `{` ClassStaticBlockBody `}` 1. Let _lex_ be the running execution context's LexicalEnvironment. @@ -24071,9 +24423,14 @@

Runtime Semantics: ClassStaticBlockDefinitionEvaluation

The function _bodyFunction_ is never directly accessible to ECMAScript code.
- -

Runtime Semantics: EvaluateClassStaticBlockBody

-

With parameter _functionObject_.

+ +

+ Runtime Semantics: EvaluateClassStaticBlockBody ( + _functionObject_: unknown, + ) +

+
+
ClassStaticBlockBody : ClassStaticBlockStatementList 1. Perform ? FunctionDeclarationInstantiation(_functionObject_, « »). @@ -24081,9 +24438,14 @@

Runtime Semantics: EvaluateClassStaticBlockBody

- -

Runtime Semantics: ClassElementEvaluation

-

With parameter _object_.

+ +

+ Runtime Semantics: ClassElementEvaluation ( + _object_: unknown, + ) +

+
+
ClassElement : FieldDefinition `;` @@ -24116,9 +24478,15 @@

Runtime Semantics: ClassElementEvaluation

- -

Runtime Semantics: ClassDefinitionEvaluation

-

With parameters _classBinding_ and _className_.

+ +

+ Runtime Semantics: ClassDefinitionEvaluation ( + _classBinding_: unknown, + _className_: unknown, + ) +

+
+

For ease of specification, private methods and accessors are included alongside private fields in the [[PrivateElements]] slot of class instances. However, any given object has either all or none of the private methods and accessors defined by a given class. This feature has been designed so that implementations may choose to implement private methods and accessors using a strategy which does not require tracking each method or accessor individually.

For example, an implementation could directly associate instance private methods with their corresponding Private Name and track, for each object, which class constructors have run with that object as their `this` value. Looking up an instance private method on an object then consists of checking that the class constructor which defines the method has been used to initialize the object, then returning the method associated with the Private Name.

@@ -24239,8 +24607,10 @@

Runtime Semantics: ClassDefinitionEvaluation

- +

Runtime Semantics: BindingClassDeclarationEvaluation

+
+
ClassDeclaration : `class` BindingIdentifier ClassTail 1. Let _className_ be StringValue of |BindingIdentifier|. @@ -24371,9 +24741,15 @@

Static Semantics: Early Errors

- -

Runtime Semantics: InstantiateAsyncFunctionObject

-

With parameters _scope_ and _privateScope_.

+ +

+ Runtime Semantics: InstantiateAsyncFunctionObject ( + _scope_: unknown, + _privateScope_: unknown, + ) +

+
+
AsyncFunctionDeclaration : `async` `function` BindingIdentifier `(` FormalParameters `)` `{` AsyncFunctionBody `}` @@ -24395,9 +24771,14 @@

Runtime Semantics: InstantiateAsyncFunctionObject

- -

Runtime Semantics: InstantiateAsyncFunctionExpression

-

With optional parameter _name_.

+ +

+ Runtime Semantics: InstantiateAsyncFunctionExpression ( + optional _name_: unknown, + ) +

+
+
AsyncFunctionExpression : `async` `function` `(` FormalParameters `)` `{` AsyncFunctionBody `}` @@ -24431,9 +24812,15 @@

Runtime Semantics: InstantiateAsyncFunctionExpression

- -

Runtime Semantics: EvaluateAsyncFunctionBody

-

With parameters _functionObject_ and _argumentsList_ (a List).

+ +

+ Runtime Semantics: EvaluateAsyncFunctionBody ( + _functionObject_: unknown, + _argumentsList_: a List, + ) +

+
+
AsyncFunctionBody : FunctionBody @@ -24519,8 +24906,10 @@

Static Semantics: Early Errors

- +

Static Semantics: AsyncConciseBodyContainsUseStrict

+
+
AsyncConciseBody : ExpressionBody 1. Return *false*. @@ -24531,9 +24920,15 @@

Static Semantics: AsyncConciseBodyContainsUseStrict

- -

Runtime Semantics: EvaluateAsyncConciseBody

-

With parameters _functionObject_ and _argumentsList_ (a List).

+ +

+ Runtime Semantics: EvaluateAsyncConciseBody ( + _functionObject_: unknown, + _argumentsList_: a List, + ) +

+
+
AsyncConciseBody : ExpressionBody @@ -24548,9 +24943,14 @@

Runtime Semantics: EvaluateAsyncConciseBody

- -

Runtime Semantics: InstantiateAsyncArrowFunctionExpression

-

With optional parameter _name_.

+ +

+ Runtime Semantics: InstantiateAsyncArrowFunctionExpression ( + optional _name_: unknown, + ) +

+
+
AsyncArrowFunction : `async` AsyncArrowBindingIdentifier `=>` AsyncConciseBody @@ -24619,9 +25019,14 @@

- -

Static Semantics: HasCallInTailPosition

-

With parameter _call_.

+ +

+ Static Semantics: HasCallInTailPosition ( + _call_: unknown, + ) +

+
+

_call_ is a Parse Node that represents a specific range of source text. When the following algorithms compare _call_ to another Parse Node, it is a test of whether they represent the same source text.

@@ -25007,8 +25412,10 @@

Static Semantics: Early Errors

- +

Static Semantics: IsStrict

+
+
Script : ScriptBody? 1. If |ScriptBody| is present and the Directive Prologue of |ScriptBody| contains a Use Strict Directive, return *true*; otherwise, return *false*. @@ -25297,8 +25704,10 @@

- +

Static Semantics: ModuleRequests

+
+
Module : [empty] 1. Return a new empty List. @@ -27337,8 +27746,10 @@

Static Semantics: Early Errors

- +

Static Semantics: ImportEntries

+
+
Module : [empty] 1. Return a new empty List. @@ -27368,9 +27779,14 @@

Static Semantics: ImportEntries

- -

Static Semantics: ImportEntriesForModule

-

With parameter _module_.

+ +

+ Static Semantics: ImportEntriesForModule ( + _module_: unknown, + ) +

+
+
ImportClause : ImportedDefaultBinding `,` NameSpaceImport 1. Let _entries1_ be ImportEntriesForModule of |ImportedDefaultBinding| with argument _module_. @@ -27466,8 +27882,10 @@

Static Semantics: Early Errors

- +

Static Semantics: ExportedBindings

+
+

ExportedBindings are the locally bound names that are explicitly associated with a |Module|'s ExportedNames.

@@ -27533,8 +27951,10 @@

Static Semantics: ExportedBindings

- +

Static Semantics: ExportedNames

+
+

ExportedNames are the externally visible names that a |Module| explicitly maps to one of its local name bindings.

@@ -27609,8 +28029,10 @@

Static Semantics: ExportedNames

- +

Static Semantics: ExportEntries

+
+
Module : [empty] 1. Return a new empty List. @@ -27676,9 +28098,14 @@

Static Semantics: ExportEntries

- -

Static Semantics: ExportEntriesForModule

-

With parameter _module_.

+ +

+ Static Semantics: ExportEntriesForModule ( + _module_: unknown, + ) +

+
+
ExportFromClause : `*` 1. Let _entry_ be the ExportEntry Record { [[ModuleRequest]]: _module_, [[ImportName]]: *"\*"*, [[LocalName]]: *null*, [[ExportName]]: *null* }. @@ -27725,8 +28152,10 @@

Static Semantics: ExportEntriesForModule

- +

Static Semantics: ReferencedBindings

+
+
NamedExports : `{` `}` 1. Return a new empty List. @@ -34202,8 +34631,10 @@

Static Semantics: Early Errors

- +

Static Semantics: CapturingGroupNumber

+
+

This section is amended in .

@@ -34219,8 +34650,10 @@

Static Semantics: CapturingGroupNumber

The definitions of “the MV of |NonZeroDigit|” and “the MV of |DecimalDigits|” are in .

- +

Static Semantics: IsCharacterClass

+
+

This section is amended in .

@@ -34244,8 +34677,10 @@

Static Semantics: IsCharacterClass

- +

Static Semantics: CharacterValue

+
+

This section is amended in .

@@ -34435,8 +34870,10 @@

Static Semantics: CharacterValue

- +

Static Semantics: SourceText

+
+
UnicodePropertyNameCharacters :: UnicodePropertyNameCharacter UnicodePropertyNameCharacters? @@ -34447,8 +34884,10 @@

Static Semantics: SourceText

- +

Static Semantics: CapturingGroupName

+
+
RegExpIdentifierName :: RegExpIdentifierStart