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_.