?um/p1-90`同一个
The syntax-directed operation ContainsExpression takes no arguments and returns a Boolean. It is defined piecewise over the following productions:
The syntax-directed operation IsSimpleParameterList takes no arguments and returns a Boolean. It is defined piecewise over the following productions:
The syntax-directed operation HasInitializer takes no arguments and returns a Boolean. It is defined piecewise over the following productions:
The syntax-directed operation ExpectedArgumentCount takes no arguments and returns a non-negative
The syntax-directed operation FunctionBodyContainsUseStrict takes no arguments and returns a Boolean. It is defined piecewise over the following productions:
The syntax-directed operation EvaluateFunctionBody takes arguments funcObj (an ECMAScript function object) and argList (a
The syntax-directed operation InstantiateOrdinaryFunctionObject takes arguments envRecord (an
匿名 export default 声明的一部分出现,因此其函数代码始终是严格模式代码。
The syntax-directed operation InstantiateOrdinaryFunctionExpression takes optional argument name (a property key or a
在
对于使用
当处理产生式的实例
时,使用以下语法细化
The syntax-directed operation ConciseBodyContainsUseStrict takes no arguments and returns a Boolean. It is defined piecewise over the following productions:
The syntax-directed operation EvaluateConciseBody takes arguments funcObj (an ECMAScript function object) and argList (a
The syntax-directed operation InstantiateArrowFunctionExpression takes optional argument name (a property key or a
arguments、super、this 或 new.target 定义局部绑定。arguments、super、this 或 new.target 的任何引用,都必须解析到词法外层环境中的绑定。通常,这会是紧邻外层函数的 Function Environment。即使 super 的引用,步骤 super 的 super 所必需的状态可通过
The syntax-directed operation HasDirectSuper takes no arguments and returns a Boolean. It is defined piecewise over the following productions:
The syntax-directed operation SpecialMethod takes no arguments and returns a Boolean. It is defined piecewise over the following productions:
The syntax-directed operation DefineMethod takes argument obj (an Object) and optional argument proto (an Object) and returns either a normal completion containing a
The syntax-directed operation MethodDefinitionEvaluation takes arguments obj (an Object) and enumerable (a Boolean) and returns either a normal completion containing either a
紧跟在 yield 之后的句法上下文需要使用
The syntax-directed operation EvaluateGeneratorBody takes arguments funcObj (an ECMAScript function object) and argList (a
The syntax-directed operation InstantiateGeneratorFunctionObject takes arguments envRecord (an
匿名 export default 声明的一部分出现,因此其函数代码始终是严格模式代码。
The syntax-directed operation InstantiateGeneratorFunctionExpression takes optional argument name (a property key or a
throw 方法的异常会被传播。来自内部 throw 方法的 normal completion 会以类似于内部 next 的方式处理。throw 方法,这个 throw 将会终止 yield* 循环。但首先我们需要给 iterator 一个清理的机会。yield* 协议违规:iterator 没有 throw 方法。The syntax-directed operation EvaluateAsyncGeneratorBody takes arguments funcObj (an ECMAScript function object) and argList (a
The syntax-directed operation InstantiateAsyncGeneratorFunctionObject takes arguments envRecord (an
匿名 export default 声明的一部分出现。
The syntax-directed operation InstantiateAsyncGeneratorFunctionExpression takes optional argument name (a property key or a
类定义始终是严格模式代码。
如果不存在
await 是 The syntax-directed operation ClassElementKind takes no arguments and returns
The syntax-directed operation ConstructorMethod takes no arguments and returns a
The syntax-directed operation IsStatic takes no arguments and returns a Boolean. It is defined piecewise over the following productions:
The syntax-directed operation NonConstructorElements takes no arguments and returns a
The syntax-directed operation PrototypePropertyNameList takes no arguments and returns a
The syntax-directed operation AllPrivateIdentifiersValid takes argument names (a
本规范中未在下面列出的每个语法产生式替代项,都隐式具有以下 AllPrivateIdentifiersValid 的默认定义:
The syntax-directed operation PrivateBoundIdentifiers takes no arguments and returns a
The syntax-directed operation ContainsArguments takes no arguments and returns a Boolean.
本规范中未在下面列出的每个语法产生式替代项,都隐式具有以下 ContainsArguments 的默认定义:
The syntax-directed operation ClassFieldDefinitionEvaluation takes argument homeObj (an Object) and returns either a normal completion containing a
The syntax-directed operation ClassStaticBlockDefinitionEvaluation takes argument homeObj (an Object) and returns a
The syntax-directed operation EvaluateClassStaticBlockBody takes argument funcObj (an ECMAScript function object) and returns a return completion or a throw completion. It is defined piecewise over the following productions:
The syntax-directed operation ClassElementEvaluation takes argument obj (an Object) and returns either a normal completion containing either a
The syntax-directed operation ClassDefinitionEvaluation takes arguments classBinding (a String or
为了便于规范表述,私有方法和访问器与私有字段一起
例如,实现可以将实例私有方法直接与其对应的 this 值运行。然后,在对象上查找实例私有方法就包括检查定义该方法的类构造器是否已用于初始化该对象,然后返回与该
这不同于私有字段:由于字段初始化器可能在类实例化期间抛出异常,所以单个对象可能只具有给定类的私有字段的某个真子集,因此私有字段通常必须被单独跟踪。
It is defined piecewise over the following productions:
constructor(...args) { super(...args); }。最显著的区别是,虽然前述 ECMAScript 源文本可观察地调用 %Array.prototype% 上的 constructor() {}。The syntax-directed operation BindingClassDeclarationEvaluation takes no arguments and returns either a normal completion containing a function object or an abrupt completion. It is defined piecewise over the following productions:
当 [Await] 参数存在时,await 会被解析为
当 await 可以被解析为标识符。这包括以下上下文:
不同于
The syntax-directed operation InstantiateAsyncFunctionObject takes arguments envRecord (an
The syntax-directed operation InstantiateAsyncFunctionExpression takes optional argument name (a property key or a
The syntax-directed operation EvaluateAsyncFunctionBody takes arguments funcObj (an ECMAScript function object) and argList (a
当处理产生式的实例
时,使用以下语法细化
The syntax-directed operation AsyncConciseBodyContainsUseStrict takes no arguments and returns a Boolean. It is defined piecewise over the following productions:
The syntax-directed operation EvaluateAsyncConciseBody takes arguments funcObj (an ECMAScript function object) and argList (a
The syntax-directed operation InstantiateAsyncArrowFunctionExpression takes optional argument name (a property key or a
The abstract operation IsInTailPosition takes argument call (a
尾位置调用只在严格模式代码中定义,这是因为一种常见的非标准语言扩展(见
The syntax-directed operation HasCallInTailPosition takes argument call (a
call 是一个解析节点,表示源文本的一个特定范围。当以下算法将 call 与另一个解析节点进行比较时,这是在测试它们是否表示同一段源文本。
紧跟着返回调用结果的
在同一个 using 声明或 await using 声明会阻止该调用成为可能的尾位置调用。
It is defined piecewise over the following productions:
The abstract operation PrepareForTailCall takes no arguments and returns
尾位置调用必须在调用目标函数之前释放与当前正在执行的函数执行上下文关联的任何临时内部资源,或者重用这些资源以支持目标函数。
例如,尾位置调用使实现的激活记录栈增长的量,应仅为目标函数激活记录大小超出调用函数激活记录大小的部分。如果目标函数的激活记录更小,则栈的总大小应减少。