From 3a335f7e61aa5c50d650d3eeb6a124188e1bf9f2 Mon Sep 17 00:00:00 2001 From: Ron Buckton Date: Tue, 24 Aug 2021 17:38:32 -0700 Subject: [PATCH] Editor PR Feedback --- spec.html | 168 +----------------------------------------------------- 1 file changed, 3 insertions(+), 165 deletions(-) diff --git a/spec.html b/spec.html index b48043dbe8a..ea91258e1a0 100644 --- a/spec.html +++ b/spec.html @@ -4588,7 +4588,7 @@

Private Names

The ClassStaticBlockDefinition Record Specification Type

-

A ClassStaticBlockDefinition Record is a Record value used to encapsulate the executable code for a class static initialization block.

+

A ClassStaticBlockDefinition Record is a Record value used to encapsulate the executable code for a class static initialization block.

ClassStaticBlockDefinition Records have the fields listed in .

@@ -6791,20 +6791,6 @@

1. Perform ? DefineField(_O_, _fieldRecord_). - - -

- EvaluateStaticBlock ( - _receiver_: an Object, - _blockRecord_: a ClassStaticBlockDefinition Record, - ) -

-
-
- - 1. Perform ? Call(_blockRecord_.[[BodyFunction]], _receiver_). - -
@@ -23870,7 +23856,7 @@

Static Semantics: Early Errors

It is a Syntax Error if |ClassStaticBlockStatementList| Contains |SuperCall| is *true*.
  • - It is a Syntax Error if ContainsAwait of |ClassStaticBlockStatementList| is *true*. + It is a Syntax Error if |ClassStaticBlockStatementList| Contains `await` is *true*.
  • @@ -24172,154 +24158,6 @@

    Static Semantics: ContainsArguments

    - -

    Static Semantics: ContainsAwait

    - -

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

    - - 1. For each child node _child_ of this Parse Node, do - 1. If _child_ is an instance of a nonterminal, then - 1. If ContainsAwait for _child_ is *true*, return *true*. - 1. Return *false*. - - - - FunctionDeclaration : - `function` BindingIdentifier `(` FormalParameters `)` `{` FunctionBody `}` - `function` `(` FormalParameters `)` `{` FunctionBody `}` - - FunctionExpression : - `function` BindingIdentifier? `(` FormalParameters `)` `{` FunctionBody `}` - - GeneratorDeclaration : - `function` `*` BindingIdentifier `(` FormalParameters `)` `{` GeneratorBody `}` - `function` `*` `(` FormalParameters `)` `{` GeneratorBody `}` - - GeneratorExpression : - `function` `*` BindingIdentifier? `(` FormalParameters `)` `{` GeneratorBody `}` - - AsyncGeneratorDeclaration : - `async` `function` `*` BindingIdentifier `(` FormalParameters `)` `{` AsyncGeneratorBody `}` - `async` `function` `*` `(` FormalParameters `)` `{` AsyncGeneratorBody `}` - - AsyncGeneratorExpression : - `async` `function` `*` BindingIdentifier? `(` FormalParameters `)` `{` AsyncGeneratorBody `}` - - AsyncFunctionDeclaration : - `async` `function` BindingIdentifier `(` FormalParameters `)` `{` AsyncFunctionBody `}` - `async` `function` `(` FormalParameters `)` `{` AsyncFunctionBody `}` - - AsyncFunctionExpression : - `async` `function` BindingIdentifier? `(` FormalParameters `)` `{` AsyncFunctionBody `}` - - - 1. Return *false*. - - -

    Static semantic rules that depend upon substructure generally do not look into function definitions.

    -
    - - ClassTail : ClassHeritage? `{` ClassBody `}` - - 1. If |ClassHeritage| is present, then - 1. If ContainsAwait for |ClassHeritage| is *true*, return *true*. - 1. Return the result of ComputedPropertyContainsAwait for |ClassBody|. - - -

    Static semantic rules that depend upon substructure generally do not look into class bodies except for |PropertyName|s.

    -
    - - - ArrowFunction : ArrowParameters `=>` ConciseBody - - AsyncArrowFunction : - `async` AsyncArrowBindingIdentifier `=>` AsyncConciseBody - CoverCallExpressionAndAsyncArrowHead `=>` AsyncConciseBody - - - 1. Return *false*. - - -

    Static semantic rules that depend upon substructure containing `await` do not need to look into arrow functions.

    -
    - - - UnaryExpression : AwaitExpression - - - 1. Return *true*. - - - - ForInOfStatement : `for` `await` `(` LeftHandSideExpression `of` AssignmentExpression `)` Statement - - ForInOfStatement : `for` `await` `(` `var` ForBinding `of` AssignmentExpression `)` Statement - - ForInOfStatement : `for` `await` `(` ForDeclaration `of` AssignmentExpression `)` Statement - - - 1. Return *true*. - -
    - - -

    Static Semantics: ComputedPropertyContainsAwait

    - - ClassElementName : PrivateIdentifier - - PropertyName : LiteralPropertyName - - - 1. Return *false*. - - PropertyName : ComputedPropertyName - - 1. Return the result of ContainsAwait for |ComputedPropertyName|. - - - MethodDefinition : - ClassElementName `(` UniqueFormalParameters `)` `{` FunctionBody `}` - `get` ClassElementName `(` `)` `{` FunctionBody `}` - `set` ClassElementName `(` PropertySetParameterList `)` `{` FunctionBody `}` - - - 1. Return the result of ComputedPropertyContainsAwait for |ClassElementName|. - - GeneratorMethod : `*` ClassElementName `(` UniqueFormalParameters `)` `{` GeneratorBody `}` - - 1. Return the result of ComputedPropertyContainsAwait for |ClassElementName|. - - AsyncGeneratorMethod : `async` `*` ClassElementName `(` UniqueFormalParameters `)` `{` AsyncGeneratorBody `}` - - 1. Return the result of ComputedPropertyContainsAwait for |ClassElementName|. - - ClassElementList : ClassElementList ClassElement - - 1. If ComputedPropertyContainsAwait for |ClassElementList| is *true*, return *true*. - 1. Return the result of ComputedPropertyContainsAwait for |ClassElement|. - - - ClassElement : ClassStaticBlock - - ClassElement : `;` - - - 1. Return *false*. - - - AsyncMethod : `async` ClassElementName `(` UniqueFormalParameters `)` `{` AsyncFunctionBody `}` - - - 1. Return the result of ComputedPropertyContainsAwait for |ClassElementName|. - - - FieldDefinition : ClassElementName Initializer? - - - 1. Return the result of ComputedPropertyContainsAwait for |ClassElementName|. - -
    -

    Runtime Semantics: ClassFieldDefinitionEvaluation

    @@ -24523,7 +24361,7 @@

    Runtime Semantics: ClassDefinitionEvaluation

    1. Let _result_ be DefineField(_F_, _elementRecord_). 1. Else, 1. Assert: _elementRecord_ is a ClassStaticBlockDefinition Record. - 1. Let _result_ be EvaluateStaticBlock(_F_, _elementRecord_). + 1. Let _result_ be ? Call(_elementRecord_.[[BodyFunction]], _F_). 1. If _result_ is an abrupt completion, then 1. Set the running execution context's PrivateEnvironment to _outerPrivateEnvironment_. 1. Return _result_.