Name Description Size Coverage
array-destructuring-param-strict-body.js 5207 -
arrow -
ArrowFunction_restricted-properties.js --- description: > Functions created using ArrowFunction syntactic form do not have own properties "caller" or "arguments", but inherit them from %FunctionPrototype%. es6id: 16.1 --- 956 -
browser.js 0 -
cannot-override-this-with-thisArg.js --- es6id: 14.2 description: > ArrowFunction `this` cannot be overridden by thisArg 9.2.4 FunctionInitialize (F, kind, ParameterList, Body, Scope) ... 9. If kind is Arrow, set the [[ThisMode]] internal slot of F to lexical. ... 9.2.1.2 OrdinaryCallBindThis ( F, calleeContext, thisArgument ) 1. Let thisMode be the value of F’s [[ThisMode]] internal slot. 2. If thisMode is lexical, return NormalCompletion(undefined). ... --- 794 -
dflt-params-abrupt.js --- description: Abrupt completion returned by evaluation of initializer (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] info: | ArrowFunction : ArrowParameters => ConciseBody [...] 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). [...] 9.2.1 [[Call]] ( thisArgument, argumentsList) [...] 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). [...] 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). [...] 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) [...] 23. Let iteratorRecord be Record {[[iterator]]: CreateListIterator(argumentsList), [[done]]: false}. 24. If hasDuplicates is true, then [...] 25. Else, b. Let formalStatus be IteratorBindingInitialization for formals with iteratorRecord and env as arguments. [...] 14.1.19 Runtime Semantics: IteratorBindingInitialization FormalsList : FormalsList , FormalParameter 1. Let status be the result of performing IteratorBindingInitialization for FormalsList using iteratorRecord and environment as the arguments. 2. ReturnIfAbrupt(status). 3. Return the result of performing IteratorBindingInitialization for FormalParameter using iteratorRecord and environment as the arguments. --- 1948 -
dflt-params-arg-val-not-undefined.js --- description: Use of initializer when argument value is not `undefined` (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] info: | ArrowFunction : ArrowParameters => ConciseBody [...] 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). [...] 9.2.1 [[Call]] ( thisArgument, argumentsList) [...] 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). [...] 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). [...] 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) [...] 23. Let iteratorRecord be Record {[[iterator]]: CreateListIterator(argumentsList), [[done]]: false}. 24. If hasDuplicates is true, then [...] 25. Else, b. Let formalStatus be IteratorBindingInitialization for formals with iteratorRecord and env as arguments. [...] 14.1.19 Runtime Semantics: IteratorBindingInitialization FormalsList : FormalsList , FormalParameter [...] 23. Let iteratorRecord be Record {[[Iterator]]: CreateListIterator(argumentsList), [[Done]]: false}. 24. If hasDuplicates is true, then [...] 25. Else, a. Perform ? IteratorBindingInitialization for formals with iteratorRecord and env as arguments. [...] --- 2796 -
dflt-params-arg-val-undefined.js --- description: Use of initializer when argument value is `undefined` (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] info: | ArrowFunction : ArrowParameters => ConciseBody [...] 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). [...] 9.2.1 [[Call]] ( thisArgument, argumentsList) [...] 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). [...] 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). [...] 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) [...] 23. Let iteratorRecord be Record {[[iterator]]: CreateListIterator(argumentsList), [[done]]: false}. 24. If hasDuplicates is true, then [...] 25. Else, b. Let formalStatus be IteratorBindingInitialization for formals with iteratorRecord and env as arguments. [...] 14.1.19 Runtime Semantics: IteratorBindingInitialization FormalsList : FormalsList , FormalParameter [...] 23. Let iteratorRecord be Record {[[Iterator]]: CreateListIterator(argumentsList), [[Done]]: false}. 24. If hasDuplicates is true, then [...] 25. Else, a. Perform ? IteratorBindingInitialization for formals with iteratorRecord and env as arguments. [...] --- 2065 -
dflt-params-duplicates.js --- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody [...] 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). [...] 9.2.1 [[Call]] ( thisArgument, argumentsList) [...] 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). [...] 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). [...] 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) [...] 23. Let iteratorRecord be Record {[[iterator]]: CreateListIterator(argumentsList), [[done]]: false}. 24. If hasDuplicates is true, then [...] 25. Else, b. Let formalStatus be IteratorBindingInitialization for formals with iteratorRecord and env as arguments. [...] 14.1.2 Static Semantics: Early Errors StrictFormalParameters : FormalParameters - It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. FormalParameters : FormalParameterList - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is false and BoundNames of FormalParameterList contains any duplicate elements. --- 1794 -
dflt-params-ref-later.js --- description: Referencing a parameter that occurs later in the ParameterList (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] info: | ArrowFunction : ArrowParameters => ConciseBody [...] 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). [...] 9.2.1 [[Call]] ( thisArgument, argumentsList) [...] 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). [...] 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). [...] 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) [...] 23. Let iteratorRecord be Record {[[iterator]]: CreateListIterator(argumentsList), [[done]]: false}. 24. If hasDuplicates is true, then [...] 25. Else, b. Let formalStatus be IteratorBindingInitialization for formals with iteratorRecord and env as arguments. [...] 14.1.19 Runtime Semantics: IteratorBindingInitialization FormalsList : FormalsList , FormalParameter 1. Let status be the result of performing IteratorBindingInitialization for FormalsList using iteratorRecord and environment as the arguments. 2. ReturnIfAbrupt(status). 3. Return the result of performing IteratorBindingInitialization for FormalParameter using iteratorRecord and environment as the arguments. --- 1931 -
dflt-params-ref-prior.js --- description: Referencing a parameter that occurs earlier in the ParameterList (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] info: | ArrowFunction : ArrowParameters => ConciseBody [...] 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). [...] 9.2.1 [[Call]] ( thisArgument, argumentsList) [...] 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). [...] 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). [...] 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) [...] 23. Let iteratorRecord be Record {[[iterator]]: CreateListIterator(argumentsList), [[done]]: false}. 24. If hasDuplicates is true, then [...] 25. Else, b. Let formalStatus be IteratorBindingInitialization for formals with iteratorRecord and env as arguments. [...] 14.1.19 Runtime Semantics: IteratorBindingInitialization FormalsList : FormalsList , FormalParameter 1. Let status be the result of performing IteratorBindingInitialization for FormalsList using iteratorRecord and environment as the arguments. 2. ReturnIfAbrupt(status). 3. Return the result of performing IteratorBindingInitialization for FormalParameter using iteratorRecord and environment as the arguments. --- 2098 -
dflt-params-ref-self.js --- description: Referencing a parameter from within its own initializer (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] info: | ArrowFunction : ArrowParameters => ConciseBody [...] 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). [...] 9.2.1 [[Call]] ( thisArgument, argumentsList) [...] 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). [...] 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). [...] 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) [...] 23. Let iteratorRecord be Record {[[iterator]]: CreateListIterator(argumentsList), [[done]]: false}. 24. If hasDuplicates is true, then [...] 25. Else, b. Let formalStatus be IteratorBindingInitialization for formals with iteratorRecord and env as arguments. [...] 14.1.19 Runtime Semantics: IteratorBindingInitialization FormalsList : FormalsList , FormalParameter 1. Let status be the result of performing IteratorBindingInitialization for FormalsList using iteratorRecord and environment as the arguments. 2. ReturnIfAbrupt(status). 3. Return the result of performing IteratorBindingInitialization for FormalParameter using iteratorRecord and environment as the arguments. --- 1920 -
dflt-params-rest.js --- description: RestParameter does not support an initializer (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody [...] 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). [...] 9.2.1 [[Call]] ( thisArgument, argumentsList) [...] 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). [...] 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). [...] 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) [...] 23. Let iteratorRecord be Record {[[iterator]]: CreateListIterator(argumentsList), [[done]]: false}. 24. If hasDuplicates is true, then [...] 25. Else, b. Let formalStatus be IteratorBindingInitialization for formals with iteratorRecord and env as arguments. [...] 14.1 Function Definitions Syntax FunctionRestParameter[Yield] : BindingRestElement[?Yield] 13.3.3 Destructuring Binding Patterns Syntax BindingRestElement[Yield] : ...BindingIdentifier[?Yield] ...BindingPattern[?Yield] --- 1613 -
dflt-params-trailing-comma.js --- description: A trailing comma should not increase the respective length, using default parameters (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation flags: [generated] info: | ArrowFunction : ArrowParameters => ConciseBody [...] 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). [...] 9.2.1 [[Call]] ( thisArgument, argumentsList) [...] 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). [...] 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). [...] 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) [...] 23. Let iteratorRecord be Record {[[iterator]]: CreateListIterator(argumentsList), [[done]]: false}. 24. If hasDuplicates is true, then [...] 25. Else, b. Let formalStatus be IteratorBindingInitialization for formals with iteratorRecord and env as arguments. [...] Trailing comma in the parameters list 14.1 Function Definitions FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , --- 1755 -
dstr -
empty-function-body-returns-undefined.js --- es6id: 14.2 description: > Empty arrow function returns undefined --- 303 -
eval-var-scope-syntax-err.js --- description: sloppy direct eval in params introduces var (arrow function expression in sloppy code) esid: sec-arrow-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated, noStrict] info: | ArrowFunction : ArrowParameters => ConciseBody [...] 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). [...] 9.2.1 [[Call]] ( thisArgument, argumentsList) [...] 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). [...] 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). [...] 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) [...] 23. Let iteratorRecord be Record {[[iterator]]: CreateListIterator(argumentsList), [[done]]: false}. 24. If hasDuplicates is true, then [...] 25. Else, b. Let formalStatus be IteratorBindingInitialization for formals with iteratorRecord and env as arguments. [...] Runtime Semantics: IteratorBindingInitialization FormalParameter : BindingElement 1. Return the result of performing IteratorBindingInitialization for BindingElement with arguments iteratorRecord and environment. --- 1735 -
expression-body-implicit-return.js --- es6id: 14.2 description: > Expression Body implicit return --- 294 -
extensibility.js --- esid: sec-arrow-function-definitions-runtime-semantics-evaluation description: The [[Extensible]] slot of arrow functions info: | 15.3.4 Runtime Semantics: InstantiateArrowFunctionExpression [...] 4. Let closure be OrdinaryFunctionCreate(%Function.prototype%, sourceText, ArrowParameters, ConciseBody, lexical-this, scope). 10.2.3 OrdinaryFunctionCreate ( functionPrototype, sourceText, ParameterList, Body, thisMode, Scope ) [...] 3. Let F be ! OrdinaryObjectCreate(functionPrototype, internalSlotsList). 10.1.12 OrdinaryObjectCreate ( proto [ , additionalInternalSlotsList ] ) 1. Let internalSlotsList be « [[Prototype]], [[Extensible]] ». 2. If additionalInternalSlotsList is present, append each of its elements to internalSlotsList. 3. Let O be ! MakeBasicObject(internalSlotsList). 7.3.1 MakeBasicObject ( internalSlotsList ) [...] 6. If internalSlotsList contains [[Extensible]], set obj.[[Extensible]] to true. --- 1202 -
forbidden-ext -
length-dflt.js --- es6id: 14.1.6 description: > Default parameters' effect on function length info: | Function length is counted by the non initialized parameters in the left. 9.2.4 FunctionInitialize (F, kind, ParameterList, Body, Scope) [...] 2. Let len be the ExpectedArgumentCount of ParameterList. 3. Perform ! DefinePropertyOrThrow(F, "length", PropertyDescriptor{[[Value]]: len, [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true}). [...] FormalsList : FormalParameter 1. If HasInitializer of FormalParameter is true return 0 2. Return 1. FormalsList : FormalsList , FormalParameter 1. Let count be the ExpectedArgumentCount of FormalsList. 2. If HasInitializer of FormalsList is true or HasInitializer of FormalParameter is true, return count. 3. Return count+1. features: [default-parameters] includes: [propertyHelper.js] --- 1611 -
lexical-arguments.js --- es6id: 14.2.16 description: > Runtime Semantics: Evaluation arguments ... 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). ... The non-normative note elaborates on the "scope" argument: An ArrowFunction does not define local bindings for arguments, super, this, or new.target. Any reference to arguments, super, or this within an ArrowFunction must resolve to a binding in a lexically enclosing environment. Typically this will be the Function Environment of an immediately enclosing function. Even though an ArrowFunction may contain references to super, the function object created in step 4 is not made into a method by performing MakeMethod. An ArrowFunction that references super is always contained within a non-ArrowFunction and the necessary state to implement super is accessible via the scope that is captured by the function object of the ArrowFunction. --- 1228 -
lexical-bindings-overriden-by-formal-parameters-non-strict.js --- es6id: 14.2.16 description: > Runtime Semantics: Evaluation flags: [noStrict] --- 338 -
lexical-new.target-closure-returned.js --- es6id: 14.2.16 description: > Runtime Semantics: Evaluation new.target ... 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). ... The non-normative note elaborates on the "scope" argument: An ArrowFunction does not define local bindings for arguments, super, this, or new.target. Any reference to arguments, super, or this within an ArrowFunction must resolve to a binding in a lexically enclosing environment. Typically this will be the Function Environment of an immediately enclosing function. Even though an ArrowFunction may contain references to super, the function object created in step 4 is not made into a method by performing MakeMethod. An ArrowFunction that references super is always contained within a non-ArrowFunction and the necessary state to implement super is accessible via the scope that is captured by the function object of the ArrowFunction. features: [arrow-function, new.target] --- 1289 -
lexical-new.target.js --- es6id: 14.2.16 description: > Runtime Semantics: Evaluation new.target ... 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). ... The non-normative note elaborates on the "scope" argument: An ArrowFunction does not define local bindings for arguments, super, this, or new.target. Any reference to arguments, super, or this within an ArrowFunction must resolve to a binding in a lexically enclosing environment. Typically this will be the Function Environment of an immediately enclosing function. Even though an ArrowFunction may contain references to super, the function object created in step 4 is not made into a method by performing MakeMethod. An ArrowFunction that references super is always contained within a non-ArrowFunction and the necessary state to implement super is accessible via the scope that is captured by the function object of the ArrowFunction. features: [arrow-function, new.target] --- 1426 -
lexical-super-call-from-within-constructor.js --- es6id: 12.3.5.1 description: > Runtime Semantics: Evaluation SuperCall : super Arguments ... 7. Let result be Construct(func, argList, newTarget). ... 10. Return thisER.BindThisValue(result) 8.1.1.3.1 BindThisValue(V) ... 3. If envRec.[[thisBindingStatus]] is "initialized", throw a ReferenceError exception. ... --- 948 -
lexical-super-property-from-within-constructor.js --- es6id: 14.2.16 description: > Runtime Semantics: Evaluation super ... 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). ... The non-normative note elaborates on the "scope" argument: An ArrowFunction does not define local bindings for arguments, super, this, or new.target. Any reference to arguments, super, or this within an ArrowFunction must resolve to a binding in a lexically enclosing environment. Typically this will be the Function Environment of an immediately enclosing function. Even though an ArrowFunction may contain references to super, the function object created in step 4 is not made into a method by performing MakeMethod. An ArrowFunction that references super is always contained within a non-ArrowFunction and the necessary state to implement super is accessible via the scope that is captured by the function object of the ArrowFunction. --- 1334 -
lexical-super-property.js --- es6id: 14.2.16 description: > Runtime Semantics: Evaluation super ... 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). ... The non-normative note elaborates on the "scope" argument: An ArrowFunction does not define local bindings for arguments, super, this, or new.target. Any reference to arguments, super, or this within an ArrowFunction must resolve to a binding in a lexically enclosing environment. Typically this will be the Function Environment of an immediately enclosing function. Even though an ArrowFunction may contain references to super, the function object created in step 4 is not made into a method by performing MakeMethod. An ArrowFunction that references super is always contained within a non-ArrowFunction and the necessary state to implement super is accessible via the scope that is captured by the function object of the ArrowFunction. --- 1306 -
lexical-supercall-from-immediately-invoked-arrow.js --- es6id: 14.2.16 description: > Runtime Semantics: Evaluation super ... 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). ... The non-normative note elaborates on the "scope" argument: An ArrowFunction does not define local bindings for arguments, super, this, or new.target. Any reference to arguments, super, or this within an ArrowFunction must resolve to a binding in a lexically enclosing environment. Typically this will be the Function Environment of an immediately enclosing function. Even though an ArrowFunction may contain references to super, the function object created in step 4 is not made into a method by performing MakeMethod. An ArrowFunction that references super is always contained within a non-ArrowFunction and the necessary state to implement super is accessible via the scope that is captured by the function object of the ArrowFunction. --- 1277 -
lexical-this.js --- es6id: 14.2.16 description: > Runtime Semantics: Evaluation this ... 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). ... The non-normative note elaborates on the "scope" argument: An ArrowFunction does not define local bindings for arguments, super, this, or new.target. Any reference to arguments, super, or this within an ArrowFunction must resolve to a binding in a lexically enclosing environment. Typically this will be the Function Environment of an immediately enclosing function. Even though an ArrowFunction may contain references to super, the function object created in step 4 is not made into a method by performing MakeMethod. An ArrowFunction that references super is always contained within a non-ArrowFunction and the necessary state to implement super is accessible via the scope that is captured by the function object of the ArrowFunction. --- 1347 -
low-precedence-expression-body-no-parens.js --- es6id: 14.2 description: > No need for parentheses even for lower-precedence expression body --- 327 -
name.js --- esid: sec-arrow-function-definitions-runtime-semantics-evaluation description: Assignment of function `name` attribute info: | ArrowFunction : ArrowParameters => ConciseBody 1. Let scope be the LexicalEnvironment of the running execution context. 2. Let parameters be CoveredFormalsList of ArrowParameters. 3. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, ""). ... 5. Return closure. includes: [propertyHelper.js] --- 843 -
non-strict.js --- es6id: 14.2.16 description: > Runtime Semantics: Evaluation 1. If the function code for this ArrowFunction is strict mode code (10.2.1), let strict be true. Otherwise let strict be false. ... flags: [noStrict] --- 466 -
object-destructuring-param-strict-body.js 5210 -
object-literal-return-requires-body-parens.js --- es6id: 14.2 description: > Parenthesize the body to return an object literal expression --- 341 -
param-dflt-yield-expr.js --- esid: sec-arrow-function-definitions es6id: 14.2 description: > The `yield` token is interpreted contextually outside of strict mode info: | ArrowFunction[In, Yield] : ArrowParameters[?Yield] [no LineTerminator here] => ConciseBody[?In] 14.2.1 Static Semantics: Early Errors# ArrowFunction : ArrowParameters=>ConciseBody - It is a Syntax Error if ArrowParameters Contains YieldExpression is true. features: [generators, default-parameters] negative: phase: parse type: SyntaxError --- 743 -
param-dflt-yield-id-non-strict.js --- esid: sec-arrow-function-definitions es6id: 14.2 description: > The `yield` token is interpreted as an IdentifierReference outside of strict mode and outside of generator function bodies. info: | ArrowFunction[In, Yield] : ArrowParameters[?Yield] [no LineTerminator here] => ConciseBody[?In] features: [default-parameters] flags: [noStrict] --- 642 -
param-dflt-yield-id-strict-strict.js --- esid: sec-arrow-function-definitions es6id: 14.2 description: > The `yield` token is interpreted as a FutureReservedWord within strict mode info: | ArrowFunction[In, Yield] : ArrowParameters[?Yield] [no LineTerminator here] => ConciseBody[?In] features: [default-parameters] flags: [onlyStrict] negative: phase: parse type: SyntaxError --- 583 -
params-duplicate.js --- esid: sec-arrow-function-definitions description: Formal parameters may not contain duplicates info: | # 14.2 Arrow Function Definitions When the production ArrowParameters:CoverParenthesizedExpressionAndArrowParameterList is recognized the following grammar is used to refine the interpretation of CoverParenthesizedExpressionAndArrowParameterList: ArrowFormalParameters[Yield, Await]: (UniqueFormalParameters[?Yield, ?Await]) # 14.1.2 Static Semantics: Early Errors UniqueFormalParameters:FormalParameters - It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. negative: phase: parse type: SyntaxError --- 888 -
params-trailing-comma-multiple.js --- description: A trailing comma should not increase the respective length, using multiple parameters (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation flags: [generated] info: | ArrowFunction : ArrowParameters => ConciseBody [...] 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). [...] 9.2.1 [[Call]] ( thisArgument, argumentsList) [...] 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). [...] 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). [...] 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) [...] 23. Let iteratorRecord be Record {[[iterator]]: CreateListIterator(argumentsList), [[done]]: false}. 24. If hasDuplicates is true, then [...] 25. Else, b. Let formalStatus be IteratorBindingInitialization for formals with iteratorRecord and env as arguments. [...] Trailing comma in the parameters list 14.1 Function Definitions FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , --- 1748 -
params-trailing-comma-single.js --- description: A trailing comma should not increase the respective length, using a single parameter (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation flags: [generated] info: | ArrowFunction : ArrowParameters => ConciseBody [...] 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). [...] 9.2.1 [[Call]] ( thisArgument, argumentsList) [...] 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). [...] 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). [...] 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) [...] 23. Let iteratorRecord be Record {[[iterator]]: CreateListIterator(argumentsList), [[done]]: false}. 24. If hasDuplicates is true, then [...] 25. Else, b. Let formalStatus be IteratorBindingInitialization for formals with iteratorRecord and env as arguments. [...] Trailing comma in the parameters list 14.1 Function Definitions FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , --- 1712 -
prototype-rules.js --- es6id: 14.2 description: > Arrow functions are like functions, except they throw when using the "new" operator on them. --- 473 -
rest-param-strict-body.js 5216 -
rest-params-trailing-comma-early-error.js --- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation flags: [generated] negative: phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody [...] 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). [...] 9.2.1 [[Call]] ( thisArgument, argumentsList) [...] 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). [...] 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). [...] 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) [...] 23. Let iteratorRecord be Record {[[iterator]]: CreateListIterator(argumentsList), [[done]]: false}. 24. If hasDuplicates is true, then [...] 25. Else, b. Let formalStatus be IteratorBindingInitialization for formals with iteratorRecord and env as arguments. [...] Trailing comma in the parameters list 14.1 Function Definitions FormalParameters[Yield, Await] : [empty] FunctionRestParameter[?Yield, ?Await] FormalParameterList[?Yield, ?Await] FormalParameterList[?Yield, ?Await] , FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await] --- 1711 -
scope-body-lex-distinct.js --- esid: sec-functiondeclarationinstantiation description: > Creation of new lexical environment (distinct from the variable environment) for the function body outside of strict mode info: | [...] 29. If strict is false, then a. Let lexEnv be NewDeclarativeEnvironment(varEnv). b. NOTE: Non-strict functions use a separate lexical Environment Record for top-level lexical declarations so that a direct eval can determine whether any var scoped declarations introduced by the eval code conflict with pre-existing top-level lexically scoped declarations. This is not needed for strict functions because a strict direct eval always places all declarations into a new Environment Record. [...] 18.2.1.3 Runtime Semantics: EvalDeclarationInstantiation [...] 5. If strict is false, then [...] b. Let thisLex be lexEnv. c. Assert: The following loop will terminate. d. Repeat while thisLex is not the same as varEnv, i. Let thisEnvRec be thisLex's EnvironmentRecord. ii. If thisEnvRec is not an object Environment Record, then 1. NOTE: The environment of with statements cannot contain any lexical declaration so it doesn't need to be checked for var/let hoisting conflicts. 2. For each name in varNames, do a. If thisEnvRec.HasBinding(name) is true, then i. Throw a SyntaxError exception. ii. NOTE: Annex B.3.5 defines alternate semantics for the above step. b. NOTE: A direct eval will not hoist var declaration over a like-named lexical declaration. iii. Let thisLex be thisLex's outer environment reference. flags: [noStrict] features: [let] --- 2138 -
scope-param-elem-var-close.js --- esid: sec-functiondeclarationinstantiation description: > sloppy direct evals in params introduce vars info: | [...] 20. Else, a. NOTE: A separate Environment Record is needed to ensure that bindings created by direct eval calls in the formal parameter list are outside the environment where parameters are declared. b. Let calleeEnv be the LexicalEnvironment of calleeContext. c. Let env be NewDeclarativeEnvironment(calleeEnv). d. Let envRec be env's EnvironmentRecord. [...] flags: [noStrict] --- 1051 -
scope-param-elem-var-open.js --- esid: sec-functiondeclarationinstantiation description: > sloppy direct evals in params introduce vars info: | [...] 20. Else, a. NOTE: A separate Environment Record is needed to ensure that bindings created by direct eval calls in the formal parameter list are outside the environment where parameters are declared. b. Let calleeEnv be the LexicalEnvironment of calleeContext. c. Let env be NewDeclarativeEnvironment(calleeEnv). d. Let envRec be env's EnvironmentRecord. [...] flags: [noStrict] --- 959 -
scope-param-rest-elem-var-close.js --- esid: sec-functiondeclarationinstantiation description: > sloppy direct evals in params introduce vars info: | [...] 20. Else, a. NOTE: A separate Environment Record is needed to ensure that bindings created by direct eval calls in the formal parameter list are outside the environment where parameters are declared. b. Let calleeEnv be the LexicalEnvironment of calleeContext. c. Let env be NewDeclarativeEnvironment(calleeEnv). d. Let envRec be env's EnvironmentRecord. [...] flags: [noStrict] --- 979 -
scope-param-rest-elem-var-open.js --- esid: sec-functiondeclarationinstantiation description: > sloppy direct evals in params introduce vars info: | [...] 20. Else, a. NOTE: A separate Environment Record is needed to ensure that bindings created by direct eval calls in the formal parameter list are outside the environment where parameters are declared. b. Let calleeEnv be the LexicalEnvironment of calleeContext. c. Let env be NewDeclarativeEnvironment(calleeEnv). d. Let envRec be env's EnvironmentRecord. [...] flags: [noStrict] --- 964 -
scope-paramsbody-var-close.js --- esid: sec-functiondeclarationinstantiation description: > Disposal of variable environment for the function body info: | [...] 26. If hasParameterExpressions is false, then [...] 27. Else, a. NOTE A separate Environment Record is needed to ensure that closures created by expressions in the formal parameter list do not have visibility of declarations in the function body. b. Let varEnv be NewDeclarativeEnvironment(env). c. Let varEnvRec be varEnv's EnvironmentRecord. d. Set the VariableEnvironment of calleeContext to varEnv. e. Let instantiatedVarNames be a new empty List. [...] --- 1124 -
scope-paramsbody-var-open.js --- esid: sec-functiondeclarationinstantiation description: > Creation of new variable environment for the function body (as distinct from that for the function's parameters) info: | [...] 26. If hasParameterExpressions is false, then [...] 27. Else, a. NOTE A separate Environment Record is needed to ensure that closures created by expressions in the formal parameter list do not have visibility of declarations in the function body. b. Let varEnv be NewDeclarativeEnvironment(env). c. Let varEnvRec be varEnv's EnvironmentRecord. d. Set the VariableEnvironment of calleeContext to varEnv. e. Let instantiatedVarNames be a new empty List. [...] --- 1165 -
shell.js 0 -
statement-body-requires-braces-must-return-explicitly-missing.js --- es6id: 14.2 description: > Statement body needs braces, must use 'return' explicitly if not void --- 348 -
statement-body-requires-braces-must-return-explicitly.js --- es6id: 14.2 description: > Statement body needs braces, must use 'return' explicitly if not void --- 347 -
static-init-await-binding.js --- esid: sec-class-definitions-static-semantics-early-errors description: The `await` keyword is disallowed in the BindingIdentifier position features: [class-static-block] negative: phase: parse type: SyntaxError --- 461 -
static-init-await-reference.js --- esid: sec-class-definitions-static-semantics-early-errors description: The `await` keyword is disallowed in the IdentifierReference position features: [class-static-block] negative: phase: parse type: SyntaxError --- 469 -
strict-strict.js --- es6id: 14.2.16 description: > Runtime Semantics: Evaluation 1. If the function code for this ArrowFunction is strict mode code (10.2.1), let strict be true. Otherwise let strict be false. ... flags: [onlyStrict] --- 554 -
syntax -
throw-new.js --- es6id: 12.3.3.1.1 description: > Runtime Semantics: EvaluateNew(constructProduction, arguments) ... 8. If IsConstructor (constructor) is false, throw a TypeError exception. ... --- 426 -
unscopables-with-in-nested-fn.js --- description: Symbol.unscopables behavior across scope boundaries (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation features: [globalThis, Symbol.unscopables] flags: [generated, noStrict] info: | ArrowFunction : ArrowParameters => ConciseBody [...] 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). [...] 9.2.1 [[Call]] ( thisArgument, argumentsList) [...] 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). [...] 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). [...] 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) [...] 23. Let iteratorRecord be Record {[[iterator]]: CreateListIterator(argumentsList), [[done]]: false}. 24. If hasDuplicates is true, then [...] 25. Else, b. Let formalStatus be IteratorBindingInitialization for formals with iteratorRecord and env as arguments. [...] ... Let envRec be lex's EnvironmentRecord. Let exists be ? envRec.HasBinding(name). HasBinding ... If the withEnvironment flag of envRec is false, return true. Let unscopables be ? Get(bindings, @@unscopables). If Type(unscopables) is Object, then Let blocked be ToBoolean(? Get(unscopables, N)). If blocked is true, return false. (The `with` Statement) Runtime Semantics: Evaluation ... Set the withEnvironment flag of newEnv’s EnvironmentRecord to true. ... --- 2736 -
unscopables-with.js --- description: Symbol.unscopables behavior across scope boundaries (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation features: [globalThis, Symbol.unscopables] flags: [generated, noStrict] info: | ArrowFunction : ArrowParameters => ConciseBody [...] 4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). [...] 9.2.1 [[Call]] ( thisArgument, argumentsList) [...] 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). [...] 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) 1. Let status be FunctionDeclarationInstantiation(F, argumentsList). [...] 9.2.12 FunctionDeclarationInstantiation(func, argumentsList) [...] 23. Let iteratorRecord be Record {[[iterator]]: CreateListIterator(argumentsList), [[done]]: false}. 24. If hasDuplicates is true, then [...] 25. Else, b. Let formalStatus be IteratorBindingInitialization for formals with iteratorRecord and env as arguments. [...] ... Let envRec be lex's EnvironmentRecord. Let exists be ? envRec.HasBinding(name). HasBinding ... If the withEnvironment flag of envRec is false, return true. Let unscopables be ? Get(bindings, @@unscopables). If Type(unscopables) is Object, then Let blocked be ToBoolean(? Get(unscopables, N)). If blocked is true, return false. (The `with` Statement) Runtime Semantics: Evaluation ... Set the withEnvironment flag of newEnv’s EnvironmentRecord to true. ... --- 2561 -