Name Description Size Coverage
arguments-with-arguments-fn.js --- esid: sec-functiondeclarationinstantiation es6id: 9.2.12 description: > Arguments object is created even when the body contains a lexically-scoped binding named "arguments" info: | [...] 19. Else if "arguments" is an element of parameterNames, then a. Let argumentsObjectNeeded be false. 20. Else if hasParameterExpressions is false, then a. If "arguments" is an element of functionNames or if "arguments" is an element of lexicalNames, then i. Let argumentsObjectNeeded be false. [...] flags: [noStrict] --- 883 -
arguments-with-arguments-lex.js --- esid: sec-functiondeclarationinstantiation es6id: 9.2.12 description: > Arguments object is created even when the body contains a function named "arguments" info: | [...] 19. Else if "arguments" is an element of parameterNames, then a. Let argumentsObjectNeeded be false. 20. Else if hasParameterExpressions is false, then a. If "arguments" is an element of functionNames or if "arguments" is an element of lexicalNames, then i. Let argumentsObjectNeeded be false. [...] flags: [noStrict] --- 859 -
array-destructuring-param-strict-body.js 5247 -
browser.js 0 -
dflt-params-abrupt.js --- description: Abrupt completion returned by evaluation of initializer (function expression) esid: sec-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } [...] 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, 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. --- 1982 -
dflt-params-arg-val-not-undefined.js --- description: Use of initializer when argument value is not `undefined` (function expression) esid: sec-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } [...] 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, 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. [...] --- 2831 -
dflt-params-arg-val-undefined.js --- description: Use of initializer when argument value is `undefined` (function expression) esid: sec-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } [...] 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, 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. [...] --- 2100 -
dflt-params-duplicates.js --- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (function expression) esid: sec-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } [...] 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, 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. --- 1834 -
dflt-params-ref-later.js --- description: Referencing a parameter that occurs later in the ParameterList (function expression) esid: sec-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } [...] 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, 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. --- 1965 -
dflt-params-ref-prior.js --- description: Referencing a parameter that occurs earlier in the ParameterList (function expression) esid: sec-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } [...] 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, 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. --- 2133 -
dflt-params-ref-self.js --- description: Referencing a parameter from within its own initializer (function expression) esid: sec-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } [...] 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, 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. --- 1954 -
dflt-params-rest.js --- description: RestParameter does not support an initializer (function expression) esid: sec-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } [...] 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, 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] --- 1653 -
dflt-params-trailing-comma.js --- description: A trailing comma should not increase the respective length, using default parameters (function expression) esid: sec-function-definitions-runtime-semantics-evaluation flags: [generated] info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } [...] 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, 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] , --- 1790 -
dstr -
early-body-super-call.js --- esid: sec-function-definitions-static-semantics-early-errors es6id: 14.1.2 description: Body may not contain a "super" call info: | It is a Syntax Error if FunctionBody Contains SuperCall is true. negative: phase: parse type: SyntaxError --- 475 -
early-body-super-prop.js --- esid: sec-function-definitions-static-semantics-early-errors es6id: 14.1.2 description: Body may not contain a "super" property reference info: | It is a Syntax Error if FunctionBody Contains SuperProperty is true. negative: phase: parse type: SyntaxError --- 493 -
early-errors -
early-params-super-call.js --- esid: sec-function-definitions-static-semantics-early-errors es6id: 14.1.2 description: Parameters may not contain a "super" call info: | It is a Syntax Error if FormalParameters Contains SuperProperty is true. negative: phase: parse type: SyntaxError --- 488 -
early-params-super-prop.js --- esid: sec-function-definitions-static-semantics-early-errors es6id: 14.1.2 description: Parameters may not contain a "super" property reference info: | It is a Syntax Error if FunctionBody Contains SuperProperty is true. negative: phase: parse type: SyntaxError --- 498 -
eval-var-scope-syntax-err.js --- description: sloppy direct eval in params introduces var (function expression in sloppy code) esid: sec-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated, noStrict] info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } [...] 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, 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. --- 1769 -
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] --- 1635 -
name-arguments-non-strict.js --- es5id: 13.1-3-8 description: > arguments allowed as function identifier in non-strict function expression flags: [noStrict] --- 330 -
name-arguments-strict-body.js --- es5id: 13.1-42-s description: > StrictMode - SyntaxError is thrown if 'arguments' occurs as the Identifier of a FunctionExpression whose FunctionBody is contained in strict code negative: phase: parse type: SyntaxError flags: [noStrict] --- 492 -
name-arguments-strict-strict.js --- es5id: 13.1-14-s description: > StrictMode - SyntaxError is thrown if 'arguments' occurs as the Identifier of a FunctionExpression in strict mode negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 459 -
name-eval-non-strict.js --- es5id: 13.1-3-2 description: > eval allowed as function identifier in non-strict function expression flags: [noStrict] --- 319 -
name-eval-strict-body.js --- es5id: 13.1-38-s description: > StrictMode - SyntaxError is thrown if 'eval' occurs as the Identifier of a FunctionExpression whose FunctionBody is contained in strict code negative: phase: parse type: SyntaxError flags: [noStrict] --- 482 -
name-eval-strict-strict.js --- es5id: 13.1-12-s description: > StrictMode - SyntaxError is thrown if 'eval' occurs as the Identifier of a FunctionExpression in strict mode negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 449 -
name-eval-stricteval.js --- es5id: 13.1-37-s description: > StrictMode - SyntaxError is thrown if 'eval' occurs as the Identifier of a FunctionExpression in strict eval code flags: [noStrict] --- 486 -
name.js --- esid: sec-function-definitions-runtime-semantics-evaluation description: Assignment of function `name` attribute info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } 1. Let scope be the LexicalEnvironment of the running execution context. 2. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, scope, ""). ... 5. Return closure. FunctionExpression : function BindingIdentifier ( FormalParameters ) { FunctionBody } 1. Let scope be the running execution context's LexicalEnvironment. 2. Let funcEnv be NewDeclarativeEnvironment(scope). 3. Let envRec be funcEnv's EnvironmentRecord. 4. Let name be StringValue of BindingIdentifier. 5. Perform envRec.CreateImmutableBinding(name, false). 6. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, funcEnv, name). ... 10. Return closure. includes: [propertyHelper.js] --- 1350 -
named-no-strict-reassign-fn-name-in-body-in-arrow.js --- description: Reassignment of function name is silently ignored in non-strict mode code. (named function expression in non-strict mode code) esid: sec-function-definitions-runtime-semantics-evaluation flags: [generated, noStrict] info: | FunctionExpression : function BindingIdentifier ( FormalParameters ) { FunctionBody } --- 850 -
named-no-strict-reassign-fn-name-in-body-in-eval.js --- description: Reassignment of function name is silently ignored in non-strict mode code. (named function expression in non-strict mode code) esid: sec-function-definitions-runtime-semantics-evaluation flags: [generated, noStrict] info: | FunctionExpression : function BindingIdentifier ( FormalParameters ) { FunctionBody } --- 836 -
named-no-strict-reassign-fn-name-in-body.js --- description: Reassignment of function name is silently ignored in non-strict mode code. (named function expression in non-strict mode code) esid: sec-function-definitions-runtime-semantics-evaluation flags: [generated, noStrict] info: | FunctionExpression : function BindingIdentifier ( FormalParameters ) { FunctionBody } --- 820 -
named-strict-error-reassign-fn-name-in-body-in-arrow-strict.js --- description: Reassignment of function name is silently ignored in non-strict mode code. (named function expression in strict mode code) esid: sec-function-definitions-runtime-semantics-evaluation flags: [generated, onlyStrict] info: | FunctionExpression : function BindingIdentifier ( FormalParameters ) { FunctionBody } --- 881 -
named-strict-error-reassign-fn-name-in-body-in-eval-strict.js --- description: Reassignment of function name is silently ignored in non-strict mode code. (named function expression in strict mode code) esid: sec-function-definitions-runtime-semantics-evaluation flags: [generated, onlyStrict] info: | FunctionExpression : function BindingIdentifier ( FormalParameters ) { FunctionBody } --- 867 -
named-strict-error-reassign-fn-name-in-body-strict.js --- description: Reassignment of function name is silently ignored in non-strict mode code. (named function expression in strict mode code) esid: sec-function-definitions-runtime-semantics-evaluation flags: [generated, onlyStrict] info: | FunctionExpression : function BindingIdentifier ( FormalParameters ) { FunctionBody } --- 851 -
object-destructuring-param-strict-body.js 5250 -
param-arguments-non-strict.js --- es5id: 13.1-2-6 description: > arguments allowed as formal parameter name of a non-strict function expression flags: [noStrict] --- 336 -
param-dflt-yield-non-strict.js --- esid: sec-function-definitions es6id: 14.1 description: > The `yield` token is interpreted as an IdentifierReference within a generator and outside of strict mode info: | FunctionExpression : function BindingIdentifieropt ( FormalParameters ) { FunctionBody } features: [generators, default-parameters] flags: [noStrict] --- 656 -
param-dflt-yield-strict-strict.js --- esid: sec-function-definitions es6id: 14.1 description: > The `yield` token is interpreted as an IdentifierReference within a generator and outside of strict mode info: | FunctionExpression : function BindingIdentifieropt ( FormalParameters ) { FunctionBody } features: [generators, default-parameters] flags: [onlyStrict] negative: phase: parse type: SyntaxError --- 663 -
param-duplicated-non-strict.js --- es5id: 13.1-1-2 description: > Duplicate identifier allowed in non-strict function expression parameter list flags: [noStrict] --- 329 -
param-duplicated-strict-1-strict.js --- info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. es5id: 13.1-8-s description: > Strict Mode - SyntaxError is thrown if a function is created in 'strict mode' using a FunctionExpression and the function has two identical parameters negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 690 -
param-duplicated-strict-2-strict.js --- info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. es5id: 13.1-9-s description: > Strict Mode - SyntaxError is thrown if a function is created in 'strict mode' using a FunctionExpression and the function has two identical parameters, which are separated by a unique parameter name negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 752 -
param-duplicated-strict-3-strict.js --- info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. es5id: 13.1-10-s description: > Strict Mode - SyntaxError is thrown if a function is created in 'strict mode' using a FunctionExpression and the function has three identical parameters negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 700 -
param-duplicated-strict-body-1.js --- info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. es5id: 13.1-30-s description: > Strict Mode - SyntaxError is thrown if a function is created using a FunctionExpression whose FunctionBody is contained in strict code and the function has two identical parameters negative: phase: parse type: SyntaxError flags: [noStrict] --- 719 -
param-duplicated-strict-body-2.js --- info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. es5id: 13.1-32-s description: > Strict Mode - SyntaxError is thrown if a function is created using a FunctionExpression whose FunctionBody is strict and the function has two identical parameters, which are separated by a unique parameter name negative: phase: parse type: SyntaxError flags: [noStrict] --- 763 -
param-duplicated-strict-body-3.js --- info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. es5id: 13.1-34-s description: > Strict Mode - SyntaxError is thrown if a function declaration has three identical parameters with a strict mode body negative: phase: parse type: SyntaxError flags: [noStrict] --- 658 -
param-eval-non-strict-is-correct-value.js --- esid: sec-strict-mode-of-ecmascript description: > eval allowed as formal parameter name of a non-strict function expression flags: [noStrict] --- 499 -
param-eval-non-strict.js --- es5id: 13.1-2-2 description: > eval allowed as formal parameter name of a non-strict function expression flags: [noStrict] --- 326 -
param-eval-strict-body.js --- info: | Refer 13.1; It is a SyntaxError if the Identifier "eval" or the Identifier "arguments" occurs within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. es5id: 13.1-18-s description: > StrictMode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionExpression when FuctionBody is strict code negative: phase: parse type: SyntaxError flags: [noStrict] --- 711 -
param-eval-stricteval.js --- info: | Refer 13.1; It is a SyntaxError if the Identifier "eval" or the Identifier "arguments" occurs within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. es5id: 13.1-17-s description: > StrictMode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionExpression in strict eval code flags: [noStrict] --- 709 -
params-dflt-args-unmapped.js --- description: Referencing the arguments object from a default parameter (function expression) esid: sec-function-definitions-runtime-semantics-evaluation es6id: 14.1.20 features: [default-parameters] info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } [...] 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, 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. --- 2485 -
params-dflt-ref-arguments.js --- description: Referencing the arguments object from a default parameter (function expression) esid: sec-function-definitions-runtime-semantics-evaluation es6id: 14.1.20 features: [default-parameters] info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } [...] 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, 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. --- 2088 -
params-trailing-comma-multiple.js --- description: A trailing comma should not increase the respective length, using multiple parameters (function expression) esid: sec-function-definitions-runtime-semantics-evaluation flags: [generated] info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } [...] 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, 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] , --- 1783 -
params-trailing-comma-single.js --- description: A trailing comma should not increase the respective length, using a single parameter (function expression) esid: sec-function-definitions-runtime-semantics-evaluation flags: [generated] info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } [...] 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, 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] , --- 1747 -
rest-param-strict-body.js 5256 -
rest-params-trailing-comma-early-error.js --- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (function expression) esid: sec-function-definitions-runtime-semantics-evaluation flags: [generated] negative: phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } [...] 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, 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] --- 1751 -
S10.1.1_A1_T2.js --- info: | Program functions are defined in source text by a FunctionDeclaration or created dynamically either by using a FunctionExpression or by using the built-in Function object as a constructor es5id: 10.1.1_A1_T2 description: Creating function dynamically by using a FunctionExpression --- 983 -
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] --- 2135 -
scope-name-var-close.js --- esid: sec-function-definitions-runtime-semantics-evaluation description: Removal of variable environment for the BindingIdentifier info: | [...] 2. Let scope be the running execution context's LexicalEnvironment. 3. Let funcEnv be NewDeclarativeEnvironment(scope). 4. Let envRec be funcEnv's EnvironmentRecord. 5. Let name be StringValue of BindingIdentifier. 6. Perform envRec.CreateImmutableBinding(name, false). 7. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, funcEnv, strict). [...] --- 895 -
scope-name-var-open-non-strict.js --- esid: sec-function-definitions-runtime-semantics-evaluation description: > Creation of new variable environment for the BindingIdentifier parameter info: | [...] 2. Let scope be the running execution context's LexicalEnvironment. 3. Let funcEnv be NewDeclarativeEnvironment(scope). 4. Let envRec be funcEnv's EnvironmentRecord. 5. Let name be StringValue of BindingIdentifier. 6. Perform envRec.CreateImmutableBinding(name, false). 7. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, funcEnv, strict). [...] flags: [noStrict] --- 1584 -
scope-name-var-open-strict-strict.js --- esid: sec-function-definitions-runtime-semantics-evaluation description: > Creation of new variable environment for the BindingIdentifier parameter info: | [...] 2. Let scope be the running execution context's LexicalEnvironment. 3. Let funcEnv be NewDeclarativeEnvironment(scope). 4. Let envRec be funcEnv's EnvironmentRecord. 5. Let name be StringValue of BindingIdentifier. 6. Perform envRec.CreateImmutableBinding(name, false). 7. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, funcEnv, strict). [...] flags: [onlyStrict] --- 1762 -
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] --- 1056 -
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] --- 964 -
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] --- 984 -
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] --- 969 -
scope-paramsbody-var-close.js --- esid: sec-functiondeclarationinstantiation description: > Removal 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. [...] --- 1128 -
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. [...] --- 1170 -
shell.js 0 -
static-init-await-binding.js --- esid: sec-class-definitions-static-semantics-early-errors description: The `await` keyword is interpreted as an IdentifierReference within function expressions info: | ClassStaticBlockBody : ClassStaticBlockStatementList [...] - It is a Syntax Error if ContainsAwait of ClassStaticBlockStatementList is true. features: [class-static-block] --- 579 -
static-init-await-reference.js --- esid: sec-class-definitions-static-semantics-early-errors description: The `await` keyword is interpreted as an IdentifierReference within function expressions info: | ClassStaticBlockBody : ClassStaticBlockStatementList [...] - It is a Syntax Error if ContainsAwait of ClassStaticBlockStatementList is true. features: [class-static-block] --- 757 -
unscopables-with-in-nested-fn.js --- description: Symbol.unscopables behavior across scope boundaries (function expression) esid: sec-function-definitions-runtime-semantics-evaluation features: [globalThis, Symbol.unscopables] flags: [generated, noStrict] info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } [...] 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, 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. ... --- 2771 -
unscopables-with.js --- description: Symbol.unscopables behavior across scope boundaries (function expression) esid: sec-function-definitions-runtime-semantics-evaluation features: [globalThis, Symbol.unscopables] flags: [generated, noStrict] info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } [...] 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, 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. ... --- 2596 -
use-strict-with-non-simple-param.js --- esid: sec-function-definitions-static-semantics-early-errors description: > A SyntaxError is thrown if a function contains a non-simple parameter list and a UseStrict directive. info: | Static Semantics: Early Errors It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of FormalParameters is false. negative: phase: parse type: SyntaxError --- 629 -