Name Description Size
13.0-7-s.js --- info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-7-s description: > Strict Mode - SourceElements is evaluated as strict mode code when the code of this FunctionDeclaration is contained in non-strict mode but the call to eval is a direct call in strict mode code flags: [noStrict] --- 653
13.0-8-s-strict.js --- info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-8-s description: > Strict Mode - SourceElements is evaluated as strict mode code when the code of this FunctionExpression is contained in non-strict mode but the call to eval is a direct call in strict mode code flags: [onlyStrict] --- 661
13.0-12-s-strict.js --- info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-12-s description: > Strict Mode - SourceElements is not evaluated as strict mode code when a Function constructor is contained in strict mode code and the function constructor body is not strict flags: [onlyStrict] --- 591
13.0-13-s.js --- info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-13-s description: > Strict Mode - SourceElements is evaluated as strict mode code when the function body of a Function constructor begins with a Strict Directive flags: [noStrict] --- 618
13.0-14-s.js --- info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-14-s description: > Strict Mode - SourceElements is evaluated as strict mode code when the function body of a Function constructor contains a Strict Directive flags: [noStrict] --- 607
13.0-15-s.js --- info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-15-s description: > Strict Mode - SourceElements is evaluated as strict mode code when a FunctionDeclaration is contained in strict mode code within eval code flags: [noStrict] --- 601
13.0-16-s.js --- info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-16-s description: > Strict Mode - SourceElements is evaluated as strict mode code when a FunctionExpression is contained in strict mode code within eval code flags: [noStrict] --- 608
13.0-17-s.js --- info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-17-s description: > Strict Mode - SourceElements is not evaluated as strict mode code when a Function constructor is contained in strict mode code within eval code flags: [noStrict] --- 563
13.0_4-5gs-strict.js --- es5id: 13.0_4-5gs description: > Strict Mode - SourceElements is evaluated as strict mode code when a FunctionDeclaration is contained in strict mode code negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 482
13.0_4-17gs-strict.js --- es5id: 13.0_4-17gs description: > Strict Mode - SourceElements is not evaluated as strict mode code when a Function constructor is contained in strict mode code flags: [onlyStrict] --- 423
13.1-1gs-strict.js --- es5id: 13.1-1gs description: > Strict Mode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionDeclaration negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 487
13.1-2-s-strict.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-2-s description: > Strict Mode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionExpression flags: [onlyStrict] --- 681
13.1-4-s-strict.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-4-s description: > Strict Mode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionExpression flags: [onlyStrict] --- 692
13.1-4gs-strict.js --- es5id: 13.1-4gs description: > Strict Mode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionExpression negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 504
13.1-5gs-strict.js --- es5id: 13.1-5gs description: > Strict Mode - SyntaxError is thrown if a FunctionDeclaration has two identical parameters negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 446
13.1-8gs-strict.js --- es5id: 13.1-8gs description: > Strict Mode - SyntaxError is thrown if a FunctionExpression has two identical parameters negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 453
13.1-13gs-strict.js --- es5id: 13.1-13gs description: > StrictMode - SyntaxError is thrown if 'arguments' occurs as the Identifier of a FunctionDeclaration negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 444
13.1-19-s.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-19-s description: > Strict Mode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionDeclaration in strict eval code flags: [noStrict] --- 705
13.1-21-s.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-21-s description: > StrictMode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionExpression in strict eval code flags: [noStrict] --- 711
13.1-22-s.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-22-s description: > StrictMode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionExpression when FuctionBody is strict code flags: [noStrict] --- 723
13.1-23-s.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-23-s description: > Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration that is contained in eval strict code and the function has two identical parameters flags: [noStrict] --- 706
13.1-25-s.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-25-s description: > Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration that is contained in eval strict code and the function has two identical parameters which are separated by a unique parameter name flags: [noStrict] --- 767
13.1-27-s.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-27-s description: > Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration that is contained in eval strict code and the function has three identical parameters flags: [noStrict] --- 715
13.1-29-s.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-29-s description: > Strict Mode - SyntaxError is thrown if a function is created using a FunctionExpression that is contained in eval strict code and the function has two identical parameters flags: [noStrict] --- 713
13.1-31-s.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-31-s description: > Strict Mode - SyntaxError is thrown if a function is created using a FunctionExpression that is contained in eval strict code and the function has two identical parameters, which are separated by a unique parameter name flags: [noStrict] --- 775
13.1-33-s.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-33-s description: > Strict Mode - SyntaxError is thrown if function is created using a FunctionExpression that is contained in eval strict code and the function has three identical parameters flags: [noStrict] --- 719
13.1-39-s.js --- es5id: 13.1-39-s description: > StrictMode - SyntaxError is thrown if 'arguments' occurs as the function name of a FunctionDeclaration in strict eval code flags: [noStrict] --- 449
13.1-41-s.js --- es5id: 13.1-41-s description: > StrictMode - SyntaxError is thrown if 'arguments' occurs as the Identifier of a FunctionExpression in strict eval code flags: [noStrict] --- 481
13.2-1-s.js --- es5id: 13.2-1-s description: > StrictMode - Writing or reading from a property named 'caller' of function objects is allowed under both strict and normal modes. --- 459
13.2-2-s-strict.js --- es5id: 13.2-2-s description: > StrictMode - A TypeError is thrown when a strict mode code writes to properties named 'caller' of function instances. flags: [onlyStrict] --- 460
13.2-3-s.js --- es5id: 13.2-3-s description: > StrictMode - Writing or reading from a property named 'arguments' of function objects is allowed under both strict and normal modes. --- 470
13.2-4-s-strict.js --- es5id: 13.2-4-s description: > StrictMode - A TypeError is thrown when a code in strict mode tries to write to 'arguments' of function instances. flags: [onlyStrict] --- 460
13.2-5-s.js --- es5id: 13.2-5-s description: > StrictMode - reading a property named 'caller' of function objects is not allowed outside the function flags: [noStrict] --- 442
13.2-6-s.js --- es5id: 13.2-6-s description: > StrictMode - writing a property named 'caller' of function objects is not allowed outside the function flags: [noStrict] --- 436
13.2-7-s.js --- es5id: 13.2-7-s description: > StrictMode - enumerating over a function object looking for 'caller' fails outside of the function flags: [noStrict] --- 459
13.2-8-s.js --- es5id: 13.2-8-s description: > StrictMode - enumerating over a function object looking for 'caller' fails inside the function flags: [noStrict] --- 464
13.2-9-s.js --- es5id: 13.2-9-s description: > StrictMode - reading a property named 'caller' of function objects is not allowed outside the function flags: [noStrict] --- 438
13.2-10-s.js --- es5id: 13.2-10-s description: > StrictMode - writing a property named 'caller' of function objects is not allowed outside the function --- 415
13.2-11-s.js --- es5id: 13.2-11-s description: > StrictMode - enumerating over a function object looking for 'caller' fails outside of the function --- 438
13.2-12-s.js --- es5id: 13.2-12-s description: > StrictMode - enumerating over a function object looking for 'caller' fails inside the function --- 443
13.2-13-s.js --- es5id: 13.2-13-s description: > StrictMode - reading a property named 'arguments' of function objects is not allowed outside the function --- 431
13.2-14-s.js --- es5id: 13.2-14-s description: > StrictMode - writing a property named 'arguments' of function objects is not allowed outside the function --- 425
13.2-15-1.js --- es5id: 13.2-15-1 description: > Function Object has length as its own property and does not invoke the setter defined on Function.prototype.length (Step 15) includes: [propertyHelper.js] --- 508
13.2-15-s.js --- es5id: 13.2-15-s description: > StrictMode - enumerating over a function object looking for 'arguments' fails outside of the function --- 448
13.2-16-s.js --- es5id: 13.2-16-s description: > StrictMode - enumerating over a function object looking for 'arguments' fails inside the function --- 453
13.2-17-1.js --- es5id: 13.2-17-1 description: > Function Object has 'constructor' as its own property, it is not enumerable and does not invoke the setter defined on Function.prototype.constructor (Step 17) includes: [propertyHelper.js] --- 976
13.2-17-s.js --- es5id: 13.2-17-s description: > StrictMode - reading a property named 'arguments' of function objects is not allowed outside the function --- 427
13.2-18-1.js --- es5id: 13.2-18-1 description: > Function Object has 'prototype' as its own property, it is not enumerable and does not invoke the setter defined on Function.prototype (Step 18) includes: [propertyHelper.js] --- 1050
13.2-18-s.js --- es5id: 13.2-18-s description: > StrictMode - writing a property named 'arguments' of function objects is not allowed outside the function --- 421
13.2-19-b-3gs-strict.js --- es5id: 13.2-19-b-3gs description: > StrictMode - error is thrown when assign a value to the 'caller' property of a function object flags: [onlyStrict] --- 447
13.2-19-s.js --- es5id: 13.2-19-s description: > StrictMode - enumerating over a function object looking for 'arguments' fails outside of the function --- 444
13.2-20-s.js --- es5id: 13.2-20-s description: > StrictMode - enumerating over a function object looking for 'arguments' fails inside the function flags: [noStrict] --- 467
13.2-21-s.js --- es5id: 13.2-21-s description: > StrictMode - reading a property named 'caller' of function objects is not allowed outside the function flags: [noStrict] --- 434
13.2-22-s.js --- es5id: 13.2-22-s description: > StrictMode - writing a property named 'caller' of function objects is not allowed outside the function flags: [noStrict] --- 428
13.2-23-s.js --- es5id: 13.2-23-s description: > StrictMode - enumerating over a function object looking for 'caller' fails outside of the function flags: [noStrict] --- 450
13.2-24-s.js --- es5id: 13.2-24-s description: > StrictMode - enumerating over a function object looking for 'caller' fails inside the function flags: [noStrict] --- 481
13.2-25-s.js --- es5id: 13.2-25-s description: > StrictMode - reading a property named 'arguments' of function objects is not allowed outside the function flags: [noStrict] --- 440
13.2-26-s.js --- es5id: 13.2-26-s description: > StrictMode - writing a property named 'arguments' of function objects is not allowed outside the function flags: [noStrict] --- 434
13.2-27-s.js --- es5id: 13.2-27-s description: > StrictMode - enumerating over a function object looking for 'arguments' fails outside of the function flags: [noStrict] --- 457
13.2-28-s.js --- es5id: 13.2-28-s description: > StrictMode - enumerating over a function object looking for 'arguments' fails inside the function flags: [noStrict] --- 485
13.2-30-s.js --- description: > Functions created using Function.prototype.bind() do not have own properties "caller" or "arguments", but inherit them from %FunctionPrototype%. --- 967
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] --- 876
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] --- 851
array-destructuring-param-strict-body.js 5282
browser.js 0
cptn-decl.js --- esid: sec-function-definitions-runtime-semantics-evaluation description: Function declaration completion value is empty. info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } 1. Return NormalCompletion(empty). --- 523
dflt-params-abrupt.js --- description: Abrupt completion returned by evaluation of initializer (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject features: [default-parameters] flags: [generated] info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } [...] 3. Let F 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. --- 2008
dflt-params-arg-val-not-undefined.js --- description: Use of initializer when argument value is not `undefined` (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject features: [default-parameters] flags: [generated] info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } [...] 3. Let F 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. [...] --- 2856
dflt-params-arg-val-undefined.js --- description: Use of initializer when argument value is `undefined` (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject features: [default-parameters] flags: [generated] info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } [...] 3. Let F 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. [...] --- 2125
dflt-params-duplicates.js --- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject features: [default-parameters] flags: [generated] negative: phase: parse type: SyntaxError info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } [...] 3. Let F 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. --- 1869
dflt-params-ref-later.js --- description: Referencing a parameter that occurs later in the ParameterList (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject features: [default-parameters] flags: [generated] info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } [...] 3. Let F 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. --- 1991
dflt-params-ref-prior.js --- description: Referencing a parameter that occurs earlier in the ParameterList (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject features: [default-parameters] flags: [generated] info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } [...] 3. Let F 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. --- 2158
dflt-params-ref-self.js --- description: Referencing a parameter from within its own initializer (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject features: [default-parameters] flags: [generated] info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } [...] 3. Let F 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. --- 1980
dflt-params-rest.js --- description: RestParameter does not support an initializer (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject features: [default-parameters] flags: [generated] negative: phase: parse type: SyntaxError info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } [...] 3. Let F 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] --- 1688
dflt-params-trailing-comma.js --- description: A trailing comma should not increase the respective length, using default parameters (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject flags: [generated] info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } [...] 3. Let F 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] , --- 1815
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 --- 473
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 --- 491
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 --- 486
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 --- 496
enable-strict-via-body.js --- info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-10-s description: > Strict Mode - SourceElements is evaluated as strict mode code when the code of this FunctionBody with an inner function contains a Use Strict Directive negative: phase: parse type: SyntaxError flags: [noStrict] --- 664
enable-strict-via-outer-body.js --- info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-11-s description: > Strict Mode - SourceElements is evaluated as strict mode code when the code of this FunctionBody with an inner function which is in strict mode negative: phase: parse type: SyntaxError flags: [noStrict] --- 652
enable-strict-via-outer-script-strict.js --- info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-9-s description: > Strict Mode - SourceElements is evaluated as strict mode code when a FunctionDeclaration that is contained in strict mode code has an inner function negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 660
eval-var-scope-syntax-err.js --- description: sloppy direct eval in params introduces var (function declaration in sloppy code) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject features: [default-parameters] flags: [generated, noStrict] info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } [...] 3. Let F 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. --- 1795
forbidden-ext
invalid-2-names.js --- es5id: 13.0-1 description: > 13.0 - multiple names in one function declaration is not allowed, two function names negative: phase: parse type: SyntaxError --- 385
invalid-3-names.js --- es5id: 13.0-2 description: > 13.0 - multiple names in one function declaration is not allowed, three function names negative: phase: parse type: SyntaxError --- 387
invalid-function-body-1.js --- info: The FunctionBody must be SourceElements es5id: 13_A7_T2 description: > Inserting elements that is different from SourceElements into the FunctionBody negative: phase: parse type: SyntaxError --- 430
invalid-function-body-2.js --- info: The FunctionBody must be SourceElements es5id: 13_A7_T2 description: > Inserting elements that is different from SourceElements into the FunctionBody negative: phase: parse type: SyntaxError --- 427
invalid-function-body-3.js --- info: The FunctionBody must be SourceElements es5id: 13_A7_T2 description: > Inserting elements that is different from SourceElements into the FunctionBody negative: phase: parse type: SyntaxError --- 430
invalid-name-dot.js --- es5id: 13.0-3 description: > 13.0 - property names in function definition is not allowed, add a new property into object negative: phase: parse type: SyntaxError --- 394
invalid-name-two-dots.js --- es5id: 13.0-4 description: > 13.0 - multiple names in one function declaration is not allowed, add a new property into a property which is a object negative: phase: parse type: SyntaxError --- 424
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] --- 1603
line-terminator.js --- info: Any separators are admitted between declaration chunks es5id: 13_A16 description: Inserting separators between declaration chunks --- 821
name-arguments-non-strict.js --- es5id: 13.1-3-7 description: > arguments allowed as function identifier in non-strict function declaration flags: [noStrict] --- 328
name-arguments-strict-body.js --- es5id: 13.1-40-s description: > StrictMode - SyntaxError is thrown if 'arguments' occurs as the Identifier of a FunctionDeclaration whose FunctionBody is contained in strict code negative: phase: parse type: SyntaxError flags: [noStrict] --- 492
name-arguments-strict-strict.js --- es5id: 13.1-13-s description: > StrictMode - SyntaxError is thrown if 'arguments' occurs as the function name of a FunctionDeclaration in strict mode negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 461
name-eval-non-strict.js --- es5id: 13.1-3-1 description: > eval allowed as function identifier in non-strict function declaration flags: [noStrict] --- 317
name-eval-strict-body.js --- es5id: 13.1-36-s description: > StrictMode - SyntaxError is thrown if 'eval' occurs as the function name of a FunctionDeclaration whose FunctionBody is in strict mode negative: phase: parse type: SyntaxError flags: [noStrict] --- 475
name-eval-strict-strict.js --- es5id: 13.1-11-s description: > StrictMode - SyntaxError is thrown if 'eval' occurs as the function name of a FunctionDeclaration in strict mode negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 451
name-eval-stricteval.js --- es5id: 13.1-35-s description: > StrictMode - SyntaxError is thrown if 'eval' occurs as the function name of a FunctionDeclaration in strict eval code flags: [noStrict] --- 447
name-unicode.js --- info: Unicode symbols in function name are allowed es5id: 13_A14 description: Defining function name with unicode symbols --- 653
name.js --- es6id: 14.1.19 description: Assignment of function `name` attribute info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } 1. Let name be StringValue of BindingIdentifier. 2. Let F be FunctionCreate(Normal, FormalParameters, FunctionBody, scope, strict). 3. Perform MakeConstructor(F). 4. Perform SetFunctionName(F, name). 5. Return F. includes: [propertyHelper.js] --- 747
object-destructuring-param-strict-body.js 5285
param-arguments-non-strict.js --- es5id: 13.1-2-5 description: > arguments allowed as formal parameter name of a non-strict function declaration flags: [noStrict] --- 334
param-arguments-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-20-s description: > StrictMode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionDeclaration when FuctionBody is strict code negative: phase: parse type: SyntaxError flags: [noStrict] --- 731
param-arguments-strict-strict.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-3-s description: > Strict Mode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionDeclaration negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 700
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: | FunctionDeclaration[Yield, Default] : function BindingIdentifier[?Yield] ( FormalParameters ) { FunctionBody } features: [generators, default-parameters] flags: [noStrict] --- 683
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: | FunctionDeclaration[Yield, Default] : function BindingIdentifier[?Yield] ( FormalParameters ) { FunctionBody } features: [generators, default-parameters] flags: [onlyStrict] negative: phase: parse type: SyntaxError --- 683
param-duplicated-non-strict.js --- es5id: 13.1-1-1 description: > Duplicate identifier allowed in non-strict function declaration parameter list flags: [noStrict] --- 327
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-5-s description: > Strict Mode - SyntaxError is thrown if a function is declared in 'strict mode' using a FunctionDeclaration and the function has two identical parameters negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 700
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-6-s description: > Strict Mode - SyntaxError is thrown if a function is created in 'strict mode' using a FunctionDeclaration and the function has two identical parameters, which are separated by a unique parameter name negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 761
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-7-s description: > Strict Mode - SyntaxError is thrown if a function is created in 'strict mode' using a FunctionDeclaration and the function has three identical parameters negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 708
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-24-s description: > Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration whose FunctionBody is contained in strict code and the function has two identical parameters negative: phase: parse type: SyntaxError flags: [noStrict] --- 729
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-26-s description: > Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration whose FunctionBody is contained in strict code and the function has two identical parameters which are separated by a unique parameter name negative: phase: parse type: SyntaxError flags: [noStrict] --- 790
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-28-s description: > Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration whose FunctionBody is contained in strict code and the function has three identical parameters negative: phase: parse type: SyntaxError flags: [noStrict] --- 738
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 declaration flags: [noStrict] --- 493
param-eval-non-strict.js --- es5id: 13.1-2-1 description: > eval allowed as formal parameter name of a non-strict function declaration flags: [noStrict] --- 325
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-16-s description: > StrictMode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionDeclaration when FuctionBody is strict code negative: phase: parse type: SyntaxError flags: [noStrict] --- 721
param-eval-strict-strict.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-1-s description: > Strict Mode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionDeclaration negative: phase: parse type: SyntaxError flags: [onlyStrict] --- 690
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-15-s description: > Strict Mode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionDeclaration in strict eval code flags: [noStrict] --- 703
params-dflt-args-unmapped.js --- description: Referencing the arguments object from a default parameter (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject es6id: 14.1.19 features: [default-parameters] info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } [...] 3. Let F 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. --- 2512
params-dflt-ref-arguments.js --- description: Referencing the arguments object from a default parameter (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject es6id: 14.1.19 features: [default-parameters] info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } [...] 3. Let F 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. --- 2115
params-trailing-comma-multiple.js --- description: A trailing comma should not increase the respective length, using multiple parameters (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject flags: [generated] info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } [...] 3. Let F 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] , --- 1808
params-trailing-comma-single.js --- description: A trailing comma should not increase the respective length, using a single parameter (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject flags: [generated] info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } [...] 3. Let F 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] , --- 1772
rest-param-strict-body.js 5291
rest-params-trailing-comma-early-error.js --- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject flags: [generated] negative: phase: parse type: SyntaxError info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } [...] 3. Let F 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] --- 1786
S10.1.1_A1_T1.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_T1 description: Defining function by a FunctionDeclaration --- 572
S13.2.1_A1_T1.js --- info: The depth of nested function calls reaches 32 es5id: 13.2.1_A1_T1 description: Creating function calls 32 elements depth --- 4714
S13.2.1_A4_T1.js --- info: Objects as arguments are passed by reference es5id: 13.2.1_A4_T1 description: > Adding new number property to a function argument within the function body, where explicit argument is an object defined with "var __obj={}" --- 760
S13.2.1_A4_T2.js --- info: Objects as arguments are passed by reference es5id: 13.2.1_A4_T2 description: > Adding new string property to a function argument within the function body, where explicit argument is an object defined with "__obj={}" --- 796
S13.2.1_A4_T3.js --- info: Objects as arguments are passed by reference es5id: 13.2.1_A4_T3 description: > Adding new number property to a function argument within the function body, where array element "arguments[0]" is an object defined with "__obj={}" --- 776
S13.2.1_A4_T4.js --- info: Objects as arguments are passed by reference es5id: 13.2.1_A4_T4 description: > Adding new number property to a function argument within the function body, where array element "arguments[0]" is an object defined with "var __obj={}" --- 775
S13.2.1_A5_T1.js --- info: Closures are admitted es5id: 13.2.1_A5_T1 description: Sorting with closure --- 796
S13.2.1_A5_T2.js --- info: Closures are admitted es5id: 13.2.1_A5_T2 description: > Returning a function that approximates the derivative of f using an interval of dx, which should be appropriately small --- 992
S13.2.1_A6_T1.js --- info: Primitive types are passed by value es5id: 13.2.1_A6_T1 description: Declaring a function with "function __func(arg1, arg2)" flags: [noStrict] --- 805
S13.2.1_A6_T2.js --- info: Primitive types are passed by value es5id: 13.2.1_A6_T2 description: Declaring a function with "__func = function(arg1, arg2)" flags: [noStrict] --- 809
S13.2.1_A6_T3.js --- info: Primitive types are passed by value es5id: 13.2.1_A6_T1 description: Declaring a function with "function __func(arg1, arg2)" --- 806
S13.2.1_A6_T4.js --- info: Primitive types are passed by value es5id: 13.2.1_A6_T2 description: Declaring a function with "__func = function(arg1, arg2)" --- 810
S13.2.1_A7_T1.js --- info: | When the [[Call]] property for a Function object F is called, the following steps are taken: 2. Evaluate F's FunctionBody; if Result.type is returned then Result.value is returned too es5id: 13.2.1_A7_T1 description: Returning null. Declaring a function with "function __func()" --- 843
S13.2.1_A7_T2.js --- info: | When the [[Call]] property for a Function object F is called, the following steps are taken: 2. Evaluate F's FunctionBody; if Result.type is returned then Result.value is returned too es5id: 13.2.1_A7_T2 description: > Returning null. Declaring a function with "var __func = function ()" --- 867
S13.2.1_A7_T3.js --- info: | When the [[Call]] property for a Function object F is called, the following steps are taken: 2. Evaluate F's FunctionBody; if Result.type is returned then Result.value is returned too es5id: 13.2.1_A7_T3 description: Returning number. Declaring a function with "function __func()" flags: [noStrict] --- 1668
S13.2.1_A7_T4.js --- info: | When the [[Call]] property for a Function object F is called, the following steps are taken: 2. Evaluate F's FunctionBody; if Result.type is returned then Result.value is returned too es5id: 13.2.1_A7_T4 description: Returning boolean. Declaring a function with "function __func()" --- 1720
S13.2.1_A8_T1.js --- info: | When the [[Call]] property for a Function object F is called, the following steps are taken: 2. Evaluate F's FunctionBody; if Result.type is thrown then Result.value is thrown too es5id: 13.2.1_A8_T1 description: > Throwing an exception within a function body. Declaring function with "function __func()" --- 843
S13.2.1_A8_T2.js --- info: | When the [[Call]] property for a Function object F is called, the following steps are taken: 2. Evaluate F's FunctionBody; if Result.type is thrown then Result.value is thrown too es5id: 13.2.1_A8_T2 description: > Throwing an exception within a function body. Declaring function with "var __func = function (message)" --- 886
S13.2.1_A9.1_T1.js --- info: | When the [[Call]] property for a Function object is called, the body is evaluated and if evaluation result has type "normal", then "undefined" is returned es5id: 13.2.1_A9.1_T1 description: > Declaring a function with "function __func()" and no "return" in the function body --- 1046
S13.2.1_A9.1_T2.js --- info: | When the [[Call]] property for a Function object is called, the body is evaluated and if evaluation result has type "normal", then "undefined" is returned es5id: 13.2.1_A9.1_T2 description: > Declaring a function with "var __func = function()" and no "return" in the function body --- 1058
S13.2.1_A9_T1.js --- info: | When the [[Call]] property for a Function object is called, the body is evaluated and if evaluation result has type "return" its value is not defined, then "undefined" is returned es5id: 13.2.1_A9_T1 description: > Using "return" with no expression. Declaring a function with "function __func()" --- 1077
S13.2.1_A9_T2.js --- info: | When the [[Call]] property for a Function object is called, the body is evaluated and if evaluation result has type "return" its value is not defined, then "undefined" is returned es5id: 13.2.1_A9_T2 description: > Using "return" with no expression. Declaring a function with "var __func = function()" --- 1089
S13.2.2_A1_T1.js --- info: | Since a function is an object, it might be set to [[Prototype]] property of a new created object through [[Construct]] property es5id: 13.2.2_A1_T1 description: Declaring a function with "function __func()" --- 1303
S13.2.2_A1_T2.js --- info: | Since a function is an object, it might be set to [[Prototype]] property of a new created object through [[Construct]] property es5id: 13.2.2_A1_T2 description: Declaring a function with "var __PROTO = function()" --- 1322
S13.2.2_A2.js --- info: | Since a function is an object, it might be set to [[Prototype]] property of a new created object through [[Construct]] property, but [[call]] property must fail with TypeError error es5id: 13.2.2_A2 description: Trying to [[call]] this function --- 1124
S13.2.2_A3_T1.js --- info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. It gets the value of the [[Prototype]] property of the F(Denote it PROTO_VAL). If PROTO_VAL is not an object, sets the [[Prototype]] property of native ECMAScript object just created to the original Object prototype object as described in 15.2.3.1 es5id: 13.2.2_A3_T1 description: Declaring a function with "function __FACTORY()" --- 1387
S13.2.2_A3_T2.js --- info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. It gets the value of the [[Prototype]] property of the F(Denote it PROTO_VAL). If PROTO_VAL is not an object, sets the [[Prototype]] property of native ECMAScript object just created to the original Object prototype object as described in 15.2.3.1 es5id: 13.2.2_A3_T2 description: Declaring a function with "var __FACTORY = function()" --- 1399
S13.2.2_A4_T1.js --- info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Gets the value of the [[Prototype]] property of the F(Denote it PROTO_VAL). If PROTO_VAL is an object, sets the [[Prototype]] property of native ECMAScript object just created to the PROTO_VAL es5id: 13.2.2_A4_T1 description: Declaring a function with "function __FACTORY()" --- 1410
S13.2.2_A4_T2.js --- info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Gets the value of the [[Prototype]] property of the F(Denote it PROTO_VAL). If PROTO_VAL is an object, sets the [[Prototype]] property of native ECMAScript object just created to the PROTO_VAL es5id: 13.2.2_A4_T2 description: Declaring a function with "__FACTORY = function()" --- 1440
S13.2.2_A5_T1.js --- info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing native ECMAScript object just created as the this value and providing the argument list passed into [[Construct]] as the argument values es5id: 13.2.2_A5_T1 description: Declaring a function with "function __FACTORY(arg1, arg2)" --- 2787
S13.2.2_A5_T2.js --- info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing native ECMAScript object just created as the this value and providing the argument list passed into [[Construct]] as the argument values es5id: 13.2.2_A5_T2 description: Declaring a function with "__FACTORY = function(arg1, arg2)" --- 2802
S13.2.2_A6_T1.js --- info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument list passed into [[Construct]] as the argument values. If Type( [[Call]] returned) is not Object then return passed as this into [[Call]] object es5id: 13.2.2_A6_T1 description: Declaring a function with "__func = function(arg)" --- 1423
S13.2.2_A6_T2.js --- info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument list passed into [[Construct]] as the argument values. If Type( [[Call]] returned) is not Object then return passed as this into [[Call]] object es5id: 13.2.2_A6_T2 description: Declaring a function with "function __func (arg)" --- 1402
S13.2.2_A7_T1.js --- info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument list passed into [[Construct]] as the argument values. If Type( [[Call]] returned) is an Object then return this just as obtained object es5id: 13.2.2_A7_T1 description: Declaring a function with "as __func = function(arg)" --- 1452
S13.2.2_A7_T2.js --- info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument list passed into [[Construct]] as the argument values. If Type( [[Call]] returned) is an Object then return this just as obtained object es5id: 13.2.2_A7_T2 description: Declaring a "function as function __func (arg)" --- 1473
S13.2.2_A8_T1.js --- info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument list passed into [[Construct]] as the argument values. If Type( [[Call]] returned) is an Function then return this just as obtained function es5id: 13.2.2_A8_T1 description: > Creating a function whose prototype contains "return" followed by declaration of another function --- 1889
S13.2.2_A8_T2.js --- info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument list passed into [[Construct]] as the argument values. If Type( [[Call]] returned) is an Function then return this just as obtained function es5id: 13.2.2_A8_T2 description: > Creating a function whose prototype contains declaration of another function declared as a variable --- 1897
S13.2.2_A8_T3.js --- info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument list passed into [[Construct]] as the argument values. If Type( [[Call]] returned) is an Function then return this just as obtained function es5id: 13.2.2_A8_T3 description: > Creating a function whose prototype contains declaration of another function defined by using Function.call method --- 1893
S13.2.2_A9.js --- info: | Calling a function as a constructor is inadmissible as long as this.any_Function is called before it is declared es5id: 13.2.2_A9 description: Calling a function as a constructor --- 833
S13.2.2_A10.js --- info: | Calling a function as a constructor is possible as long as this.any_Function is declared es5id: 13.2.2_A10 description: Calling a function as a constructor after it has been declared --- 1096
S13.2.2_A11.js --- info: | Calling a function as a constructor is possible as long as this.any_Function is declared and called es5id: 13.2.2_A11 description: > Calling a function as a constructor after it has been declared with "function func()" --- 889
S13.2.2_A12.js --- info: | Calling a function as a constructor is possible as long as this.any_Function is declared and called es5id: 13.2.2_A12 description: > Calling a function as a constructor after it has been declared with "function func()" --- 1160
S13.2.2_A13.js --- info: | Calling a function as a constructor is inadmissible as long as this.any_Function is declared by eval and called es5id: 13.2.2_A13 description: > Calling a function as a constructor after it has been declared by eval --- 881
S13.2.2_A14.js --- info: | Calling a function as a constructor is inadmissible as long as this.any_Function is declared by eval and called es5id: 13.2.2_A14 description: > Calling a function as a constructor after it has been declared by eval flags: [noStrict] --- 850
S13.2.2_A15_T1.js --- info: | When the [[Construct]] property for a Function object F is called, and the object created in the function is returned, the object (declared with "this" within a function) will be strong and healthy es5id: 13.2.2_A15_T1 description: > Function declared at the end of the program and "obj" property is declared with "var obj = {}" --- 1557
S13.2.2_A15_T2.js --- info: | When the [[Construct]] property for a Function object F is called, and the object created in the function is returned, the object (declared with "this" within a function) will be strong and healthy es5id: 13.2.2_A15_T2 description: > Function declared at the end of the program and "obj" property is declared with "obj = {}" --- 1536
S13.2.2_A15_T3.js --- info: | When the [[Construct]] property for a Function object F is called, and the object created in the function is returned, the object (declared with "this" within a function) will be strong and healthy es5id: 13.2.2_A15_T3 description: > Function declared at the end of the program and "obj" property is declared with "var obj = {}" --- 1579
S13.2.2_A15_T4.js --- info: | When the [[Construct]] property for a Function object F is called, and the object created in the function is returned, the object (declared with "this" within a function) will be strong and healthy es5id: 13.2.2_A15_T4 description: > Function declared at the end of the program and "obj" property is declared with "obj = {}" --- 1547
S13.2.2_A16_T1.js --- info: FunctionExpression within a new statement is admitted es5id: 13.2.2_A16_T1 description: > Using "is __obj = new function __func(){this.prop=1;}" as FunctionExpression --- 1308
S13.2.2_A16_T2.js --- info: FunctionExpression within a new statement is admitted es5id: 13.2.2_A16_T2 description: > Using "var __obj = new function __func(arg){this.prop=arg;}(5)" as FunctionExpression --- 1325
S13.2.2_A16_T3.js --- info: FunctionExpression within a new statement is admitted es5id: 13.2.2_A16_T3 description: > Using "is __obj = new function __func(arg){this.prop=arg; return {feat: ++arg}}(5)" as FunctionExpression --- 1623
S13.2.2_A17_T2.js --- info: FunctionExpression containing "with" statement is admitted es5id: 13.2.2_A17_T2 description: Throwing an exception within "with" statement flags: [noStrict] --- 2062
S13.2.2_A17_T3.js --- info: FunctionExpression containing "with" statement is admitted es5id: 13.2.2_A17_T3 description: > In the check 4 we populate field getRight in __obj object since var getRight declaration adds variable to function scope but getRight in statement resolves within with(__obj) scope and searchs getRight in __obj first flags: [noStrict] --- 2197
S13.2.2_A18_T1.js --- info: | Using arguments object within a "with" Expression that is nested in a function is admitted es5id: 13.2.2_A18_T1 description: "Object is declared with \"var __obj={callee:\"a\"}\"" flags: [noStrict] --- 1659
S13.2.2_A18_T2.js --- info: | Using arguments object within a "with" Expression that is nested in a function is admitted es5id: 13.2.2_A18_T2 description: "Object is declared with \"__obj={callee:\"a\"}\"" flags: [noStrict] --- 1667
S13.2.2_A19_T1.js --- info: Function's scope chain is started when it is declared es5id: 13.2.2_A19_T1 description: Function is declared in the global scope flags: [noStrict] --- 695
S13.2.2_A19_T2.js --- info: Function's scope chain is started when it is declared es5id: 13.2.2_A19_T2 description: Function is declared in the object scope. Using "with" statement flags: [noStrict] --- 700
S13.2.2_A19_T3.js --- info: Function's scope chain is started when it is declared es5id: 13.2.2_A19_T3 description: > Function is declared in the object scope and then an exception is thrown flags: [noStrict] --- 794
S13.2.2_A19_T4.js --- info: Function's scope chain is started when it is declared es5id: 13.2.2_A19_T4 description: > Function is declared in the hierarchical object scope and then an exception is thrown flags: [noStrict] --- 857
S13.2.2_A19_T5.js --- info: Function's scope chain is started when it is declared es5id: 13.2.2_A19_T5 description: > Function is declared in the object scope, then an exception is thrown and the object is deleted flags: [noStrict] --- 874
S13.2.2_A19_T6.js --- info: Function's scope chain is started when it is declared es5id: 13.2.2_A19_T6 description: > Function is declared in the "object->do-while" scope, then the object is deleted and another object with the same name is declared flags: [noStrict] --- 911
S13.2.2_A19_T7.js --- info: Function's scope chain is started when it is declared es5id: 13.2.2_A19_T7 description: Function is declared in the object scope as a variable flags: [noStrict] --- 1539
S13.2.2_A19_T8.js --- info: Function's scope chain is started when it is declared es5id: 13.2.2_A19_T8 description: Function is declared multiply times flags: [noStrict] --- 1805
S13.2_A1_T1.js --- info: A "prototype" property is automatically created for every function es5id: 13.2_A1_T1 description: Using "function __func(){}" as a FunctionDeclaration --- 621
S13.2_A1_T2.js --- info: A "prototype" property is automatically created for every function es5id: 13.2_A1_T2 description: Using "var __func = function(){}" as a FunctionDeclaration --- 633
S13.2_A2_T1.js --- info: Nested function are admitted es5id: 13.2_A2_T1 description: Nesting level is two --- 696
S13.2_A2_T2.js --- info: Nested function are admitted es5id: 13.2_A2_T2 description: Nesting level is three --- 761
S13.2_A3.js --- info: | When Function object(F) is constructed the length property of F is set to the number of formal properties specified in FormalParameterList es5id: 13.2_A3 description: > Creating functions with various FormalParameterList and checking their lengths --- 1076
S13.2_A4_T1.js --- info: | When Function object(F) is constructed the following steps from 9 to 11 take place 9.Create a new object as would be constructed by the expression new Object(). 10. Set the constructor property of Result(9) to F. This property is given attributes { DontEnum }. 11. Set the "prototype" property of F to Result(9). es5id: 13.2_A4_T1 description: > Checking prototype, prototype.constructor properties and {DontEnum} property of a constructor. Using "function __func(){}" as a FunctionDeclaration --- 1919
S13.2_A4_T2.js --- info: | When Function object(F) is constructed the following steps from 9 to 11 take place 9.Create a new object as would be constructed by the expression new Object(). 10. Set the constructor property of Result(9) to F. This property is given attributes { DontEnum }. 11. Set the "prototype" property of F to Result(9). es5id: 13.2_A4_T2 description: > Checking prototype, prototype.constructor properties and {DontEnum} property of a constructor. Using "var __gunc = function(){}" as a FunctionDeclaration --- 1931
S13.2_A5.js --- info: | When Function object(F) is constructed the [[Prototype]] property of F is set to the original Function prototype object as specified in 15.3.3.1 es5id: 13.2_A5 description: Function.prototype.isPrototypeOf() is used --- 1046
S13.2_A6_T1-strict.js --- es5id: 13.2_A6_T1 description: check if "caller" poisoning poisons getOwnPropertyDescriptor too flags: [onlyStrict] --- 347
S13.2_A6_T2-strict.js --- es5id: 13.2_A6_T2 description: > check if "arguments" poisoning poisons getOwnPropertyDescriptor too flags: [onlyStrict] --- 363
S13.2_A7_T1-strict.js --- es5id: 13.2_A7_T1 description: check if "caller" poisoning poisons hasOwnProperty too flags: [onlyStrict] --- 321
S13.2_A7_T2-strict.js --- es5id: 13.2_A7_T2 description: check if "arguments" poisoning poisons hasOwnProperty too flags: [onlyStrict] --- 327
S13.2_A8_T1-strict.js --- es5id: 13.2_A8_T1 description: check if "caller" poisoning poisons "in" too flags: [onlyStrict] --- 297
S13.2_A8_T2-strict.js --- es5id: 13.2_A8_T2 description: check if "arguments" poisoning poisons "in" too flags: [onlyStrict] --- 303
S13_A1.js --- info: | "x=function y(){}" statement does not store a reference to the new function in the varaible y(Identifier) es5id: 13_A1 description: Checking the type of y --- 1041
S13_A2_T1.js --- info: function must be evaluated inside the expression es5id: 13_A2_T1 description: Defining function body with "return arg" --- 903
S13_A2_T2.js --- info: function must be evaluated inside the expression es5id: 13_A2_T2 description: Defining function body with "return arg + arguments[1]" --- 943
S13_A2_T3.js --- info: function must be evaluated inside the expression es5id: 13_A2_T3 description: > Defining function body with "return arguments[0] +"-"+ arguments[1]" --- 992
S13_A3_T1.js --- info: | The Identifier in a FunctionExpression can be referenced from inside the FunctionExpression's FunctionBody to allow the function calling itself recursively es5id: 13_A3_T1 description: > Creating a recursive function that calculates factorial, as a variable. Function call itself by its name --- 932
S13_A3_T2.js --- info: | The Identifier in a FunctionExpression can be referenced from inside the FunctionExpression's FunctionBody to allow the function calling itself recursively es5id: 13_A3_T2 description: > Creating a recursive function that calculates factorial, as a variable. Function calls itself by the name of the variable --- 933
S13_A3_T3.js --- info: | The Identifier in a FunctionExpression can be referenced from inside the FunctionExpression's FunctionBody to allow the function calling itself recursively es5id: 13_A3_T3 description: Creating simple recursive function that calculates factorial --- 854
S13_A4_T1.js --- info: | The production FunctionDeclaration: "function Identifier ( FormalParameterList_opt ) { FunctionBody }" is processed by function declarations es5id: 13_A4_T1 description: Declaring a function that returns string --- 1064
S13_A4_T2.js --- info: | The production FunctionDeclaration: "function Identifier ( FormalParameterList_opt ) { FunctionBody }" is processed by function declarations es5id: 13_A4_T2 description: > Declaring a function that uses prefix increment operator within its "return" Expression --- 1084
S13_A4_T3.js --- info: | The production FunctionDeclaration: "function Identifier ( FormalParameterList_opt ) { FunctionBody }" is processed by function declarations es5id: 13_A4_T3 description: > Declaring a function that uses arithmetical operators within its "return" Expression --- 1141
S13_A4_T4.js --- info: | The production FunctionDeclaration: "function Identifier ( FormalParameterList_opt ) { FunctionBody }" is processed by function declarations es5id: 13_A4_T4 description: > Declaring a function that uses strings concatenaion opeator within its "return" Expression --- 2075
S13_A6_T1.js --- info: | FunctionDeclaration can be overrided by other FunctionDeclaration with the same Identifier es5id: 13_A6_T1 description: Duplicating function declaration --- 1039
S13_A6_T2.js --- info: | FunctionDeclaration can be overrided by other FunctionDeclaration with the same Identifier es5id: 13_A6_T2 description: Calling a function before it is declared one more time --- 1196
S13_A7_T1.js --- info: The FunctionBody must be SourceElements es5id: 13_A7_T1 description: Using only SourceElements within the FunctionBody --- 2756
S13_A7_T3.js --- info: The FunctionBody must be SourceElements es5id: 13_A7_T3 description: Checking if execution of "function __func(){\A\B\C}" fails negative: phase: parse type: SyntaxError --- 402
S13_A8_T1.js --- info: Arguments property of activation object contains real params to be passed es5id: 13_A8_T1 description: > Creating a function declared with "function __func(param1, param2, param3)" and using arguments.length property in order to perform the test --- 1162
S13_A8_T2.js --- info: Arguments property of activation object contains real params to be passed es5id: 13_A8_T2 description: > Creating a function with no parameters and using arguments.length property in order to perform the test --- 1373
S13_A9.js --- info: Function can be passed as argument es5id: 13_A9 description: Using function as argument of another function --- 697
S13_A10.js --- info: Function is a data es5id: 13_A10 description: Using function as a property of an object --- 1072
S13_A11_T1.js --- info: | Since arguments property has attribute { DontDelete }, only its elements can be deleted es5id: 13_A11_T1 description: Returning result of "delete arguments" flags: [noStrict] --- 685
S13_A11_T2.js --- info: | Since arguments property has attribute { DontDelete }, only its elements can be deleted es5id: 13_A11_T2 description: > Checking if deleting the arguments property fails and then returning it flags: [noStrict] --- 769
S13_A11_T3.js --- info: | Since arguments property has attribute { DontDelete }, only its elements can be deleted es5id: 13_A11_T3 description: Deleting arguments[i] and returning result of the operation --- 844
S13_A11_T4.js --- info: | Since arguments property has attribute { DontDelete }, only its elements can be deleted es5id: 13_A11_T4 description: Deleting arguments[i] and checking the type of arguments[i] --- 921
S13_A12_T1.js --- info: Function declarations in global or function scope are {DontDelete} es5id: 13_A12_T1 description: > Checking if deleting a function that is declared in global scope fails flags: [noStrict] --- 973
S13_A12_T2.js --- info: Function declarations in global or function scope are {DontDelete} es5id: 13_A12_T2 description: > Checking if deleting a function that is declared in function scope fails flags: [noStrict] --- 1085
S13_A13_T1.js --- info: Deleting arguments[i] leads to breaking the connection to local reference es5id: 13_A13_T1 description: Deleting arguments[i] --- 749
S13_A13_T2.js --- info: Deleting arguments[i] leads to breaking the connection to local reference es5id: 13_A13_T2 description: Changing arguments value and then deleting the argument --- 796
S13_A13_T3.js --- info: Deleting arguments[i] leads to breaking the connection to local reference es5id: 13_A13_T3 description: > Changing argument value, deleting the argument and then defining a new value for arguments[i] --- 958
S13_A14_T1.js --- info: Unicode symbols in function name are allowed es5id: 13_A14 description: Defining function name with unicode symbols flags: [noStrict] --- 650
S13_A15_T1.js --- info: "''arguments'' variable overrides ActivationObject.arguments" es5id: 13_A15_T1 description: Declaring a function with "__func(arguments)" flags: [noStrict] --- 672
S13_A15_T2.js --- info: "''arguments'' variable overrides ActivationObject.arguments" es5id: 13_A15_T2 description: Overriding arguments within functions body flags: [noStrict] --- 767
S13_A15_T3.js --- info: "''arguments'' variable overrides ActivationObject.arguments" es5id: 13_A15_T3 description: Declaring a variable named with "arguments" without a function flags: [noStrict] --- 1225
S13_A15_T4.js --- info: "''arguments'' variable overrides ActivationObject.arguments" es5id: 13_A15_T4 description: > Declaring a variable named with "arguments" and following a "return" statement within a function body flags: [noStrict] --- 858
S13_A15_T5.js --- info: "''arguments'' variable overrides ActivationObject.arguments" es5id: 13_A15_T5 description: Creating a variable named with "arguments" without a function flags: [noStrict] --- 1074
S13_A17_T1.js --- info: | Function call cannot appear in the program before the FunctionExpression appears es5id: 13_A17_T1 description: Trying to call a function before the FunctionExpression appears --- 1490
S13_A17_T2.js --- info: | Function call cannot appear in the program before the FunctionExpression appears es5id: 13_A17_T2 description: > Trying to call a function before the FunctionExpression appears and then using the FunctionExpression one more time --- 1619
S13_A18.js --- info: Closures are admitted es5id: 13_A18 description: Using a function declaration as a function parameter --- 1056
S13_A19_T1.js --- info: "\"var\" does not override function declaration" es5id: 13_A19_T1 description: > Creating a function and a variable with identical Identifiers in global scope --- 1108
S13_A19_T2.js --- info: "\"var\" does not override function declaration" es5id: 13_A19_T2 description: > Creating a function and a variable with identical Identifiers within function scope --- 1215
S14_A2.js --- info: FunctionDeclaration cannot be localed inside an Expression es5id: 14_A2 description: Declaring a function within an "if" Expression --- 963
S14_A3.js --- info: | Global FunctionDeclaration cannot be defined within the body of another FunctionDeclaration es5id: 14_A3 description: Declaring a function within the body of another function --- 1050
S14_A5_T1.js --- info: | The Identifier within a FunctionDeclaration can be written in both letters and unicode es5id: 14_A5_T1 description: > Declaring a function with "function __\u0066\u0075\u006e\u0063(){return "both"}" --- 873
S14_A5_T2.js --- info: | The Identifier within a FunctionDeclaration can be written in both letters and unicode es5id: 14_A5_T2 description: > Declaring a function with "function \u005f\u005f\u0066\u0075\u006e\u0063(){return "unicode"}" --- 819
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] --- 2160
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] --- 1058
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] --- 966
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] --- 986
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] --- 971
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. [...] --- 1131
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. [...] --- 1172
shell.js 0
static-init-await-binding-invalid.js --- esid: sec-class-definitions-static-semantics-early-errors description: BindingIdentifier may not be `await` within class static blocks info: | BindingIdentifier : Identifier [...] - It is a Syntax Error if the code matched by this production is nested, directly or indirectly (but not crossing function or static initialization block boundaries), within a ClassStaticBlock and the StringValue of Identifier is "await". negative: phase: parse type: SyntaxError features: [class-static-block] --- 767
static-init-await-binding-valid.js --- esid: sec-class-definitions-static-semantics-early-errors description: The `await` keyword is interpreted as an identifier within arrow function bodies info: | ClassStaticBlockBody : ClassStaticBlockStatementList [...] - It is a Syntax Error if ContainsAwait of ClassStaticBlockStatementList is true. features: [class-static-block] --- 576
unscopables-with-in-nested-fn.js --- description: Symbol.unscopables behavior across scope boundaries (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject features: [globalThis, Symbol.unscopables] flags: [generated, noStrict] info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } [...] 3. Let F 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. ... --- 2796
unscopables-with.js --- description: Symbol.unscopables behavior across scope boundaries (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject features: [globalThis, Symbol.unscopables] flags: [generated, noStrict] info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } [...] 3. Let F 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. ... --- 2621
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 --- 623