Name Description Size
array-elem-init-assignment.js --- description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1157
array-elem-init-evaluation.js --- description: The Initializer should only be evaluated if v is undefined. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 958
array-elem-init-fn-name-arrow.js --- description: Assignment of function `name` attribute (ArrowFunction) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and value is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(v, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(v, GetReferencedName(lref)). --- 1468
array-elem-init-fn-name-class.js --- description: Assignment of function `name` attribute (ClassExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [class, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and value is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(v, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(v, GetReferencedName(lref)). --- 1600
array-elem-init-fn-name-cover.js --- description: Assignment of function `name` attribute (CoverParenthesizedExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and value is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(v, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(v, GetReferencedName(lref)). --- 1562
array-elem-init-fn-name-fn.js --- description: Assignment of function `name` attribute (FunctionExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [class, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and value is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(v, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(v, GetReferencedName(lref)). --- 1527
array-elem-init-fn-name-gen.js --- description: Assignment of function `name` attribute (GeneratorExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and value is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(v, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(v, GetReferencedName(lref)). --- 1554
array-elem-init-in.js --- description: The Initializer in an AssignmentElement may be an `in` expression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 865
array-elem-init-let.js --- description: Value retrieval of Initializer obeys `let` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [let, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 807
array-elem-init-order.js --- description: Initializer values should be assigned in left-to-right order. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 930
array-elem-init-simple-no-strict.js --- description: Identifiers that appear as the DestructuringAssignmentTarget in an AssignmentElement should take on the iterated value corresponding to their position in the ArrayAssignmentPattern. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1056
array-elem-init-yield-expr.js --- description: When a `yield` token appears within the Initializer of an AssignmentElement within a generator function body, it behaves as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1320
array-elem-init-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the Initializer of an AssignmentElement outside of a generator function body, it behaves as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 955
array-elem-init-yield-ident-valid.js --- description: When a `yield` token appears within the Initializer of an AssignmentElement outside of a generator function body, it behaves as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 982
array-elem-iter-get-err.js --- description: Abrupt completion returned from GetIterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1030
array-elem-iter-nrml-close-err.js --- description: Abrupt completion returned from IteratorClose (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). --- 1435
array-elem-iter-nrml-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). 9. If Type(innerResult.[[value]]) is not Object, throw a TypeError exception. --- 1717
array-elem-iter-nrml-close-skip.js --- description: IteratorClose is not called when assignment evaluation has exhausted the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. --- 1395
array-elem-iter-nrml-close.js --- description: IteratorClose is called when assignment evaluation has not exhausted the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 1885
array-elem-iter-rtrn-close-err.js --- description: IteratorClose is called when reference evaluation produces a "return" completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 1800
array-elem-iter-rtrn-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). 9. If Type(innerResult.[[value]]) is not Object, throw a TypeError exception. --- 2067
array-elem-iter-rtrn-close.js --- description: IteratorClose is called when reference evaluation produces a "return" completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2292
array-elem-iter-thrw-close-err.js --- description: IteratorClose is called when reference evaluation produces a "throw" completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. --- 1518
array-elem-iter-thrw-close-skip.js --- description: IteratorClose is not called when iteration produces an abrupt completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. --- 1357
array-elem-iter-thrw-close.js --- description: IteratorClose is called when reference evaluation produces a "throw" completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 1799
array-elem-nested-array-invalid.js --- description: It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using AssignmentPattern as the goal symbol. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1019
array-elem-nested-array-null.js --- description: When DestructuringAssignmentTarget is an array literal and the value is `null`, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 856
array-elem-nested-array-undefined-hole.js --- description: When DestructuringAssignmentTarget is an array literal and the value is a "hole", a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 867
array-elem-nested-array-undefined-own.js --- description: When DestructuringAssignmentTarget is an array literal and the value is `undefined`, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 875
array-elem-nested-array-undefined.js --- description: When DestructuringAssignmentTarget is an array literal and no value is defined, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 857
array-elem-nested-array-yield-expr.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of a nested destructuring assignment and within a generator function body, it behaves as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1393
array-elem-nested-array-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of a nested destructuring assignment outside of strict mode, it behaves as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 981
array-elem-nested-array-yield-ident-valid.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of a nested destructuring assignment outside of strict mode, it behaves as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1026
array-elem-nested-array.js --- description: When DestructuringAssignmentTarget is an array literal, it should be parsed parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 954
array-elem-nested-memberexpr-optchain-prop-ref-init.js --- description: It is a Syntax Error if LeftHandSideExpression of an DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral and AssignmentTargetType(LeftHandSideExpression) is not simple Using Object (MemberExpression OptionalChain .IdentifierName Initializer) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [optional-chaining, destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Syntax AssignmentElement : DestructuringAssignmentTarget Initializer_opt DestructuringAssignmentTarget : LeftHandSideExpression Static Semantics: Early Errors OptionalExpression: MemberExpression OptionalChain CallExpression OptionalChain OptionalExpression OptionalChain OptionalChain: ?. [ Expression ] ?. IdentifierName ?. Arguments ?. TemplateLiteral OptionalChain [ Expression ] OptionalChain .IdentifierName OptionalChain Arguments OptionalChain TemplateLiteral DestructuringAssignmentTarget : LeftHandSideExpression - It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and IsValidSimpleAssignmentTarget(LeftHandSideExpression) is not true. Static Semantics: IsValidSimpleAssignmentTarget LeftHandSideExpression : OptionalExpression 1. Return false. --- 2016
array-elem-nested-obj-invalid.js --- description: It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using AssignmentPattern as the goal symbol. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1023
array-elem-nested-obj-null.js --- description: When DestructuringAssignmentTarget is an object literal and the value is `null`, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 855
array-elem-nested-obj-undefined-hole.js --- description: When DestructuringAssignmentTarget is an object literal and the value is a "hole", a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 866
array-elem-nested-obj-undefined-own.js --- description: When DestructuringAssignmentTarget is an object literal and the value is `undefined`, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 874
array-elem-nested-obj-undefined.js --- description: When DestructuringAssignmentTarget is an object literal and no value is defined, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 856
array-elem-nested-obj-yield-expr.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and within a generator function body, it behaves as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1330
array-elem-nested-obj-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment outside of a generator function body, it behaves as a IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 977
array-elem-nested-obj-yield-ident-valid.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment outside of a generator function body, it behaves as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1005
array-elem-nested-obj.js --- description: When DestructuringAssignmentTarget is an object literal, it should be parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 953
array-elem-put-const.js --- description: The assignment target should obey `const` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [const, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 802
array-elem-put-let.js --- description: The assignment target should obey `let` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [let, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 792
array-elem-put-obj-literal-optchain-prop-ref-init.js --- description: It is a Syntax Error if LeftHandSideExpression of an DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral and AssignmentTargetType(LeftHandSideExpression) is not simple Using Object (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [optional-chaining, destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Syntax AssignmentElement : DestructuringAssignmentTarget Initializer_opt DestructuringAssignmentTarget : LeftHandSideExpression Static Semantics: Early Errors OptionalExpression: MemberExpression OptionalChain CallExpression OptionalChain OptionalExpression OptionalChain OptionalChain: ?. [ Expression ] ?. IdentifierName ?. Arguments ?. TemplateLiteral OptionalChain [ Expression ] OptionalChain .IdentifierName OptionalChain Arguments OptionalChain TemplateLiteral DestructuringAssignmentTarget : LeftHandSideExpression - It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and IsValidSimpleAssignmentTarget(LeftHandSideExpression) is not true. Static Semantics: IsValidSimpleAssignmentTarget LeftHandSideExpression : OptionalExpression 1. Return false. --- 2030
array-elem-put-obj-literal-prop-ref-init-active.js --- description: The DestructuringAssignmentTarget of an AssignmentElement can extend to LHSExpressions if it is neither an ObjectLiteral nor an ArrayLiteral and its AssignmentTargetTyp is simple. Using MemberExpression (ObjLiteral + identifier) with activated initializer. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Syntax AssignmentPattern : ArrayAssignmentPattern ArrayAssignmentPattern : [ AssignmentElementList ] AssignmentElementList : AssignmentElisionElement AssignmentElisionElement : Elision_opt AssignmentElement AssignmentElement : DestructuringAssignmentTarget Initializer_opt DestructuringAssignmentTarget : LeftHandSideExpression Static Semantics: Early Errors DestructuringAssignmentTarget : LeftHandSideExpression - It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if LeftHandSideExpression is not covering an AssignmentPattern. - It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and AssignmentTargetType(LeftHandSideExpression) is not simple. Runtime Semantics: DestructuringAssignmentEvaluation ArrayAssignmentPattern : [ AssignmentElementList ] 1. Let iteratorRecord be ? GetIterator(value). 2. Let result be IteratorDestructuringAssignmentEvaluation of AssignmentElementList with argument iteratorRecord. 3. If iteratorRecord.[[Done]] is false, return ? IteratorClose(iteratorRecord, result). 4. Return result. Runtime Semantics: IteratorDestructuringAssignmentEvaluation AssignmentElement : DestructuringAssignmentTarget Initializer 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. ... 7. Return ? PutValue(lref, v). --- 2759
array-elem-put-obj-literal-prop-ref-init.js --- description: The DestructuringAssignmentTarget of an AssignmentElement can extend to LHSExpressions if it is neither an ObjectLiteral nor an ArrayLiteral and its AssignmentTargetTyp is simple. Using MemberExpression (ObjLiteral + identifier) with initializer. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Syntax AssignmentPattern : ArrayAssignmentPattern ArrayAssignmentPattern : [ AssignmentElementList ] AssignmentElementList : AssignmentElisionElement AssignmentElisionElement : Elision_opt AssignmentElement AssignmentElement : DestructuringAssignmentTarget Initializer_opt DestructuringAssignmentTarget : LeftHandSideExpression Static Semantics: Early Errors DestructuringAssignmentTarget : LeftHandSideExpression - It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if LeftHandSideExpression is not covering an AssignmentPattern. - It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and AssignmentTargetType(LeftHandSideExpression) is not simple. Runtime Semantics: DestructuringAssignmentEvaluation ArrayAssignmentPattern : [ AssignmentElementList ] 1. Let iteratorRecord be ? GetIterator(value). 2. Let result be IteratorDestructuringAssignmentEvaluation of AssignmentElementList with argument iteratorRecord. 3. If iteratorRecord.[[Done]] is false, return ? IteratorClose(iteratorRecord, result). 4. Return result. Runtime Semantics: IteratorDestructuringAssignmentEvaluation AssignmentElement : DestructuringAssignmentTarget Initializer 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. ... 7. Return ? PutValue(lref, v). --- 2735
array-elem-put-obj-literal-prop-ref.js --- description: The DestructuringAssignmentTarget of an AssignmentElement can extend to LHSExpressions if it is neither an ObjectLiteral nor an ArrayLiteral and its AssignmentTargetTyp is simple. Using MemberExpression (ObjLiteral + identifier). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Syntax AssignmentPattern : ArrayAssignmentPattern ArrayAssignmentPattern : [ AssignmentElementList ] AssignmentElementList : AssignmentElisionElement AssignmentElisionElement : Elision_opt AssignmentElement AssignmentElement : DestructuringAssignmentTarget Initializer_opt DestructuringAssignmentTarget : LeftHandSideExpression Static Semantics: Early Errors DestructuringAssignmentTarget : LeftHandSideExpression - It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if LeftHandSideExpression is not covering an AssignmentPattern. - It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and AssignmentTargetType(LeftHandSideExpression) is not simple. Runtime Semantics: DestructuringAssignmentEvaluation ArrayAssignmentPattern : [ AssignmentElementList ] 1. Let iteratorRecord be ? GetIterator(value). 2. Let result be IteratorDestructuringAssignmentEvaluation of AssignmentElementList with argument iteratorRecord. 3. If iteratorRecord.[[Done]] is false, return ? IteratorClose(iteratorRecord, result). 4. Return result. Runtime Semantics: IteratorDestructuringAssignmentEvaluation AssignmentElement : DestructuringAssignmentTarget Initializer 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. ... 7. Return ? PutValue(lref, v). --- 2708
array-elem-put-prop-ref-no-get.js --- description: If the DestructuringAssignmentTarget of an AssignmentElement is a PropertyReference, it should not be evaluated. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1060
array-elem-put-prop-ref-user-err.js --- description: Any error raised as a result of setting the value should be forwarded to the runtime. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 890
array-elem-put-prop-ref.js --- description: The DestructuringAssignmentTarget of an AssignmentElement may be a PropertyReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 881
array-elem-put-unresolvable-no-strict.js --- description: Outside of strict mode, if the the assignment target is an unresolvable reference, a new `var` binding should be created in the environment record. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 989
array-elem-put-unresolvable-strict-strict.js --- description: In strict mode, if the the assignment target is an unresolvable reference, a ReferenceError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 891
array-elem-target-identifier.js --- description: Identifiers that appear as the DestructuringAssignmentTarget in an AssignmentElement should take on the iterated value corresponding to their position in the ArrayAssignmentPattern. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1039
array-elem-target-simple-no-strict.js --- description: Identifiers that appear as the DestructuringAssignmentTarget in an AssignmentElement should take on the iterated value corresponding to their position in the ArrayAssignmentPattern. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1054
array-elem-target-simple-strict-strict.js --- description: It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and IsValidSimpleAssignmentTarget(LeftHandSideExpression) is false. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 960
array-elem-target-yield-expr.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement within a generator function body, it behaves as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1367
array-elem-target-yield-invalid-strict.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement and outside of a generator function body, it behaves as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 972
array-elem-target-yield-valid.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement outside of a generator function body, it behaves as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1013
array-elem-trlg-iter-elision-iter-abpt.js --- description: Abrupt completion returned during evaluation of elision (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 6. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. If status is an abrupt completion, then i. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). ii. Return Completion(status). --- 1845
array-elem-trlg-iter-elision-iter-nrml-close-err.js --- description: Abrupt completion returned from IteratorClose (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 6. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. If status is an abrupt completion, then [...] 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). --- 1771
array-elem-trlg-iter-elision-iter-nrml-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 6. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. If status is an abrupt completion, then [...] 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). 9. If Type(innerResult.[[value]]) is not Object, throw a TypeError exception. --- 2023
array-elem-trlg-iter-elision-iter-nrml-close-skip.js --- description: IteratorClose not invoked when elision exhausts the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 6. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. If status is an abrupt completion, then [...] 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 9. Return Completion(status). --- 1716
array-elem-trlg-iter-elision-iter-nrml-close.js --- description: IteratorClose invoked when elision does not exhaust the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 6. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. If status is an abrupt completion, then [...] 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 2175
array-elem-trlg-iter-get-err.js --- description: Abrupt completion returned from GetIterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1083
array-elem-trlg-iter-list-nrml-close-err.js --- description: Abrupt completion returned from IteratorClose (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). b. Return Completion(status). --- 1794
array-elem-trlg-iter-list-nrml-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). b. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). 9. If Type(innerResult.[[value]]) is not Object, throw a TypeError exception. --- 2087
array-elem-trlg-iter-list-nrml-close-skip.js --- description: IteratorClose is not invoked when evaluation of AssignmentElementList exhausts the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). b. Return Completion(status). --- 1825
array-elem-trlg-iter-list-nrml-close.js --- description: IteratorClose is invoked when evaluation of AssignmentElementList completes without exhausting the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). b. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 2281
array-elem-trlg-iter-list-rtrn-close-err.js --- description: IteratorClose is invoked when evaluation of AssignmentElementList returns a "return" completion and the iterator has not been marked as "done" (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2397
array-elem-trlg-iter-list-rtrn-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). b. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). 9. If Type(innerResult.[[value]]) is not Object, throw a TypeError exception. --- 2324
array-elem-trlg-iter-list-rtrn-close.js --- description: IteratorClose is invoked when evaluation of AssignmentElementList returns a "return" completion and the iterator has not been marked as "done" (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). b. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2737
array-elem-trlg-iter-list-thrw-close-err.js --- description: IteratorClose is invoked when evaluation of AssignmentElementList returns a "throw" completion and the iterator has not been marked as "done" (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 7.4.6 IteratorClose( iterator, completion ) [...] 7. If completion.[[type]] is throw, return Completion(completion). --- 2046
array-elem-trlg-iter-list-thrw-close-skip.js --- description: IteratorClose is not invoked when evaluation of AssignmentElementList returns an abrupt completion and the iterator has been marked as "done" (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). b. Return Completion(status). --- 1854
array-elem-trlg-iter-list-thrw-close.js --- description: IteratorClose is invoked when evaluation of AssignmentElementList returns a "throw" completion and the iterator has not been marked as "done" (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). b. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 2231
array-elem-trlg-iter-rest-nrml-close-skip.js --- description: IteratorClose is not called when rest element evaluation has exhausted the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 7. If AssignmentRestElement is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument. 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 9. Return Completion(status). --- 1818
array-elem-trlg-iter-rest-rtrn-close-err.js --- description: IteratorClose is called when AssignmentRestEvaluation produces a "return" completion due to reference evaluation (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 7. If AssignmentRestElement is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument. 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 9. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2368
array-elem-trlg-iter-rest-rtrn-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 7. If AssignmentRestElement is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument. 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 9. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2123
array-elem-trlg-iter-rest-rtrn-close.js --- description: IteratorClose is called when AssignmentRestEvaluation produces a "return" completion due to reference evaluation (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 7. If AssignmentRestElement is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument. 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 9. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2661
array-elem-trlg-iter-rest-thrw-close-err.js --- description: IteratorClose is called when AssignmentRestEvaluation produces a "throw" completion due to reference evaluation (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 7. If AssignmentRestElement is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument. 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 9. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 7. If completion.[[type]] is throw, return Completion(completion) --- 2092
array-elem-trlg-iter-rest-thrw-close-skip.js --- description: Abrupt completion returned during iteration for rest element (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 7. If AssignmentRestElement is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument. 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 9. Return Completion(status). --- 1814
array-elem-trlg-iter-rest-thrw-close.js --- description: IteratorClose is called when AssignmentRestEvaluation produces a "throw" completion due to reference evaluation (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 7. If AssignmentRestElement is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument. 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 9. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 2243
array-elision-iter-abpt.js --- description: IteratorClose is not called when iteration produces an abrupt completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elision ] 1. Let iterator be GetIterator(value). [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). [...] --- 1359
array-elision-iter-get-err.js --- description: Abrupt completion returned from GetIterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elision ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1012
array-elision-iter-nrml-close-err.js --- description: Abrupt completion returned from IteratorClose (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elision ] 1. Let iterator be GetIterator(value). [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. --- 1489
array-elision-iter-nrml-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elision ] 1. Let iterator be GetIterator(value). [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). [...] 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). 9. If Type(innerResult.[[value]]) is not Object, throw a TypeError exception. --- 1730
array-elision-iter-nrml-close-skip.js --- description: IteratorClose is not called when iteration has exhausted the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elision ] 1. Let iterator be GetIterator(value). [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). [...] --- 1403
array-elision-iter-nrml-close.js --- description: IteratorClose is called when assignment evaluation has not exhausted the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elision ] 1. Let iterator be GetIterator(value). [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). [...] 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 1898
array-elision-val-array.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 831
array-elision-val-bool.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values and throws for boolean values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 834
array-elision-val-null.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values and throws for `null`. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 826
array-elision-val-num.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values and throws for number values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 829
array-elision-val-string.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 846
array-elision-val-symbol.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values and throws for symbol values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 858
array-elision-val-undef.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values and throws for `undefined`. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 837
array-empty-iter-close-err.js --- description: Abrupt completion returned from IteratorClose (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). 3. Return IteratorClose(iterator, NormalCompletion(empty)). --- 1337
array-empty-iter-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). 3. Return IteratorClose(iterator, NormalCompletion(empty)). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). 9. If Type(innerResult.[[value]]) is not Object, throw a TypeError exception. --- 1551
array-empty-iter-close.js --- description: Iterator is closed without iterating (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). 3. Return IteratorClose(iterator, NormalCompletion(empty)). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 1713
array-empty-iter-get-err.js --- description: Abrupt completion returned from GetIterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 999
array-empty-val-array.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 837
array-empty-val-bool.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values and throws for boolean values (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 838
array-empty-val-null.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values and throws for `null`. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 831
array-empty-val-num.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values and throws for number values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 834
array-empty-val-string.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 852
array-empty-val-symbol.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values and throws for Symbol values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 863
array-empty-val-undef.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values and throws for `undefined`. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 842
array-iteration.js --- description: Value iteration only proceeds for the number of elements in the ArrayAssignmentPattern. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 975
array-rest-after-element.js --- description: An AssignmentRestElement following an AssignmentElement consumes all remaining iterable values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 983
array-rest-after-elision.js --- description: An AssignmentRestElement following an elision consumes all remaining iterable values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 945
array-rest-before-element.js --- description: An AssignmentElement may not follow an AssignmentRestElement in an AssignmentElementList. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 853
array-rest-before-elision.js --- description: An elision may not follow an AssignmentRestElement in an AssignmentElementList. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 841
array-rest-before-rest.js --- description: An AssignmentRestElement may not follow another AssignmentRestElement in an AssignmentElementList. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 862
array-rest-elision-invalid.js --- description: ArrayAssignmentPattern may not include elisions following an AssignmentRestElement in a AssignmentElementList. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 873
array-rest-elision-iter-abpt.js --- description: IteratorClose is not called when assignment evaluation produces an abrupt completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 4. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. If status is an abrupt completion, then i. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). ii. Return Completion(status). --- 1656
array-rest-elision.js --- description: ArrayAssignmentPattern may include elisions at any position preceding a AssignmentRestElement in a AssignmentElementList. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1018
array-rest-init.js --- description: The AssignmentRestElement does not support an initializer. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 820
array-rest-iter-get-err.js --- description: Abrupt completion returned from GetIterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1042
array-rest-iter-nrml-close-skip.js --- description: IteratorClose is not called when assignment evaluation has exhausted the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 7. Return result. --- 1564
array-rest-iter-rtrn-close-err.js --- description: IteratorClose is called when reference evaluation produces a "return" completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. b. ReturnIfAbrupt(lref). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2235
array-rest-iter-rtrn-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. b. ReturnIfAbrupt(lref). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2148
array-rest-iter-rtrn-close.js --- description: IteratorClose is called when reference evaluation produces a "return" completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. b. ReturnIfAbrupt(lref). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2701
array-rest-iter-thrw-close-err.js --- description: IteratorClose is called when reference evaluation produces a "throw" completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. b. ReturnIfAbrupt(lref). --- 2069
array-rest-iter-thrw-close-skip.js --- description: IteratorClose is not called when iteration produces an abrupt completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). --- 1510
array-rest-iter-thrw-close.js --- description: IteratorClose is called when reference evaluation produces a "throw" completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. b. ReturnIfAbrupt(lref). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 2349
array-rest-iteration.js --- description: In the presense of an AssignmentRestElement, value iteration exhausts the iterable value; (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 991
array-rest-lref-err.js --- description: IteratorClose is called when reference evaluation produces an abrupt completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. b. ReturnIfAbrupt(lref). --- 1847
array-rest-lref.js --- description: Reference is evaluated during assignment (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. b. ReturnIfAbrupt(lref). [...] --- 1849
array-rest-nested-array-invalid.js --- description: It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using AssignmentPattern as the goal symbol. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1022
array-rest-nested-array-iter-thrw-close-skip.js --- description: IteratorClose is not called when nested array pattern evaluation produces an abrupt completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget [...] 4. Repeat while iteratorRecord.[[done]] is false [...] d. If next is false, set iteratorRecord.[[done]] to true. [...] 7. Return the result of performing DestructuringAssignmentEvaluation of nestedAssignmentPattern with A as the argument. --- 1966
array-rest-nested-array-null.js --- description: When DestructuringAssignmentTarget is an array literal and the iterable emits `null` as the only value, an array with a single `null` element should be used as the value of the nested DestructuringAssignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1049
array-rest-nested-array-undefined-hole.js --- description: When DestructuringAssignmentTarget is an array literal and the iterable is an array with a "hole", an array with a single `undefined` element should be used as the value of the nested DestructuringAssignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1032
array-rest-nested-array-undefined-own.js --- description: When DestructuringAssignmentTarget is an array literal and the iterable emits `undefined` as the only value, an array with a single `undefined` element should be used as the value of the nested DestructuringAssignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1047
array-rest-nested-array-undefined.js --- description: When DestructuringAssignmentTarget is an array literal and the iterable is emits no values, an empty array should be used as the value of the nested DestructuringAssignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 989
array-rest-nested-array-yield-expr.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of a nested destructuring assignment and within a generator function body, it should behave as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1399
array-rest-nested-array-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1007
array-rest-nested-array-yield-ident-valid.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1052
array-rest-nested-array.js --- description: When DestructuringAssignmentTarget is an array literal, it should be parsed parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 961
array-rest-nested-obj-invalid.js --- description: It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using AssignmentPattern as the goal symbol. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1026
array-rest-nested-obj-null.js --- description: When DestructuringAssignmentTarget is an object literal and the iterable emits `null` as the only value, an array with a single `null` element should be used as the value of the nested DestructuringAssignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1060
array-rest-nested-obj-undefined-hole.js --- description: When DestructuringAssignmentTarget is an array literal and the iterable is an array with a "hole", an array with a single `undefined` element should be used as the value of the nested DestructuringAssignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1230
array-rest-nested-obj-undefined-own.js --- description: When DestructuringAssignmentTarget is an array literal and the iterable emits `undefined` as the only value, an array with a single `undefined` element should be used as the value of the nested DestructuringAssignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1245
array-rest-nested-obj-undefined.js --- description: When DestructuringAssignmentTarget is an obect literal and the iterable is emits no values, an empty array should be used as the value of the nested DestructuringAssignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1187
array-rest-nested-obj-yield-expr.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and within a generator function body, it should behave as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1339
array-rest-nested-obj-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 992
array-rest-nested-obj-yield-ident-valid.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1019
array-rest-nested-obj.js --- description: When DestructuringAssignmentTarget is an object literal, it should be parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 958
array-rest-put-const.js --- description: The assignment target should obey `const` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [const, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 805
array-rest-put-let.js --- description: The assignment target should obey `let` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [let, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 795
array-rest-put-prop-ref-no-get.js --- description: If the DestructuringAssignmentTarget of an AssignmentElement is a PropertyReference, it should not be evaluated. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1183
array-rest-put-prop-ref-user-err-iter-close-skip.js --- description: IteratorClose is not called when value assignment produces an abrupt completion. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget [...] 4. Repeat while iteratorRecord.[[done]] is false [...] d. If next is false, set iteratorRecord.[[done]] to true. [...] 5. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Return PutValue(lref, A). --- 2007
array-rest-put-prop-ref-user-err.js --- description: Any error raised as a result of setting the value should be forwarded to the runtime. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 893
array-rest-put-prop-ref.js --- description: The DestructuringAssignmentTarget of an AssignmentElement may be a PropertyReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 984
array-rest-put-unresolvable-no-strict.js --- description: Outside of strict mode, if the the assignment target is an unresolvable reference, a new `var` binding should be created in the environment record. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 991
array-rest-put-unresolvable-strict-strict.js --- description: In strict mode, if the the assignment target is an unresolvable reference, a ReferenceError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 894
array-rest-yield-expr.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentRestElement and within the body of a generator function, it should behave as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1477
array-rest-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentRestElement and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 994
array-rest-yield-ident-valid.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentRestElement and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1140
browser.js 0
ident-name-prop-name-literal-break-escaped.js --- description: break is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1111
ident-name-prop-name-literal-case-escaped.js --- description: case is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1106
ident-name-prop-name-literal-catch-escaped.js --- description: catch is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1111
ident-name-prop-name-literal-class-escaped.js --- description: class is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1111
ident-name-prop-name-literal-const-escaped.js --- description: const is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1111
ident-name-prop-name-literal-continue-escaped.js --- description: continue is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1126
ident-name-prop-name-literal-debugger-escaped.js --- description: debugger is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1126
ident-name-prop-name-literal-default-escaped-ext.js --- description: default is a valid identifier name, using extended escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1134
ident-name-prop-name-literal-default-escaped.js --- description: default is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1121
ident-name-prop-name-literal-default.js --- description: default is a valid identifier name (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1094
ident-name-prop-name-literal-delete-escaped.js --- description: delete is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1116
ident-name-prop-name-literal-do-escaped.js --- description: do is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1096
ident-name-prop-name-literal-else-escaped.js --- description: else is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1106
ident-name-prop-name-literal-enum-escaped.js --- description: enum is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1106
ident-name-prop-name-literal-export-escaped.js --- description: export is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1116
ident-name-prop-name-literal-extends-escaped-ext.js --- description: extends is a valid identifier name, using extended escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1134
ident-name-prop-name-literal-extends-escaped.js --- description: extends is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1121
ident-name-prop-name-literal-extends.js --- description: extends is a valid identifier name (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1094
ident-name-prop-name-literal-finally-escaped.js --- description: finally is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1121
ident-name-prop-name-literal-for-escaped.js --- description: for is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1101
ident-name-prop-name-literal-function-escaped.js --- description: function is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1126
ident-name-prop-name-literal-if-escaped.js --- description: if is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1096
ident-name-prop-name-literal-implements-escaped.js --- description: implements is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1150
ident-name-prop-name-literal-import-escaped.js --- description: import is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1116
ident-name-prop-name-literal-in-escaped.js --- description: in is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1096
ident-name-prop-name-literal-instanceof-escaped.js --- description: instanceof is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1136
ident-name-prop-name-literal-interface-escaped.js --- description: interface is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1145
ident-name-prop-name-literal-let-escaped.js --- description: let is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1115
ident-name-prop-name-literal-new-escaped.js --- description: new is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1101
ident-name-prop-name-literal-package-escaped.js --- description: package is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1135
ident-name-prop-name-literal-private-escaped.js --- description: private is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1135
ident-name-prop-name-literal-protected-escaped.js --- description: protected is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1145
ident-name-prop-name-literal-public-escaped.js --- description: public is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1130
ident-name-prop-name-literal-return-escaped.js --- description: return is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1116
ident-name-prop-name-literal-static-escaped.js --- description: static is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1130
ident-name-prop-name-literal-super-escaped.js --- description: super is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1111
ident-name-prop-name-literal-switch-escaped.js --- description: switch is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1116
ident-name-prop-name-literal-this-escaped.js --- description: this is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1106
ident-name-prop-name-literal-throw-escaped.js --- description: throw is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1111
ident-name-prop-name-literal-try-escaped.js --- description: try is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1101
ident-name-prop-name-literal-typeof-escaped.js --- description: typeof is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1116
ident-name-prop-name-literal-var-escaped.js --- description: var is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1101
ident-name-prop-name-literal-void-escaped.js --- description: void is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1106
ident-name-prop-name-literal-while-escaped.js --- description: while is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1111
ident-name-prop-name-literal-with-escaped.js --- description: with is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1106
obj-empty-bool.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (boolean value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 860
obj-empty-null.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (null value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 827
obj-empty-num.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (number value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 854
obj-empty-obj.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (object value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 855
obj-empty-string.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (string value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 858
obj-empty-symbol.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (symbol value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 883
obj-empty-undef.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (undefined value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 838
obj-id-identifier-resolution-first.js --- description: Evaluation of DestructuringAssignmentTarget (first of many) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 881
obj-id-identifier-resolution-last.js --- description: Evaluation of DestructuringAssignmentTarget (last of many) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 879
obj-id-identifier-resolution-lone.js --- description: Evaluation of DestructuringAssignmentTarget (lone identifier) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 873
obj-id-identifier-resolution-middle.js --- description: Evaluation of DestructuringAssignmentTarget (within many) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 886
obj-id-identifier-resolution-trlng.js --- description: Evaluation of DestructuringAssignmentTarget (lone identifier with trailing comma) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 893
obj-id-identifier-yield-expr.js --- description: yield is not a valid IdentifierReference in an AssignmentProperty within generator function bodies. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated, noStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 908
obj-id-identifier-yield-ident-invalid-strict.js --- description: yield is not a valid IdentifierReference in an AssignmentProperty within strict mode code. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 892
obj-id-identifier-yield-ident-valid.js --- description: yield is a valid IdentifierReference in an AssignmentProperty outside of strict mode and generator functions. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 941
obj-id-init-assignment-missing.js --- description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference (no corresponding property defined). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 969
obj-id-init-assignment-null.js --- description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference (null property value defined). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 972
obj-id-init-assignment-truthy.js --- description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference (truthy property value defined). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 970
obj-id-init-assignment-undef.js --- description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference ("undefined" property value defined). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 982
obj-id-init-evaluation.js --- description: The Initializer should only be evaluated if v is undefined. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 965
obj-id-init-fn-name-arrow.js --- description: Assignment of function `name` attribute (ArrowFunction) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentProperty : IdentifierReference Initializeropt [...] 6. If Initializeropt is present and v is undefined, then [...] d. If IsAnonymousFunctionDefinition(Initializer) is true, then i. Let hasNameProperty be HasOwnProperty(v, "name"). ii. ReturnIfAbrupt(hasNameProperty). iii. If hasNameProperty is false, perform SetFunctionName(v, P). --- 1382
obj-id-init-fn-name-class.js --- description: Assignment of function `name` attribute (ClassExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [class, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentProperty : IdentifierReference Initializeropt [...] 6. If Initializeropt is present and v is undefined, then [...] d. If IsAnonymousFunctionDefinition(Initializer) is true, then i. Let hasNameProperty be HasOwnProperty(v, "name"). ii. ReturnIfAbrupt(hasNameProperty). iii. If hasNameProperty is false, perform SetFunctionName(v, P). --- 1534
obj-id-init-fn-name-cover.js --- description: Assignment of function `name` attribute (CoverParenthesizedExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentProperty : IdentifierReference Initializeropt [...] 6. If Initializeropt is present and v is undefined, then [...] d. If IsAnonymousFunctionDefinition(Initializer) is true, then i. Let hasNameProperty be HasOwnProperty(v, "name"). ii. ReturnIfAbrupt(hasNameProperty). iii. If hasNameProperty is false, perform SetFunctionName(v, P). --- 1486
obj-id-init-fn-name-fn.js --- description: Assignment of function `name` attribute (FunctionExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentProperty : IdentifierReference Initializeropt [...] 6. If Initializeropt is present and v is undefined, then [...] d. If IsAnonymousFunctionDefinition(Initializer) is true, then i. Let hasNameProperty be HasOwnProperty(v, "name"). ii. ReturnIfAbrupt(hasNameProperty). iii. If hasNameProperty is false, perform SetFunctionName(v, P). --- 1444
obj-id-init-fn-name-gen.js --- description: Assignment of function `name` attribute (GeneratorExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentProperty : IdentifierReference Initializeropt [...] 6. If Initializeropt is present and v is undefined, then [...] d. If IsAnonymousFunctionDefinition(Initializer) is true, then i. Let hasNameProperty be HasOwnProperty(v, "name"). ii. ReturnIfAbrupt(hasNameProperty). iii. If hasNameProperty is false, perform SetFunctionName(v, P). --- 1468
obj-id-init-in.js --- description: The Initializer in an AssignmentProperty may be an `in` expression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 871
obj-id-init-let.js --- description: Value retrieval of Initializer obeys `let` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [let, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 803
obj-id-init-order.js --- description: Initializer values should be assigned in left-to-right order. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 926
obj-id-init-simple-no-strict.js --- description: Evaluation of DestructuringAssignmentTarget. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 918
obj-id-init-simple-strict-strict.js --- description: It is a Syntax Error if IsValidSimpleAssignmentTarget of IdentifierReference is false. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 879
obj-id-init-yield-expr.js --- description: When a `yield` token appears within the Initializer of an AssignmentProperty and within a generator function body, it should behave as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1310
obj-id-init-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the Initializer of an AssignmentProperty and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 962
obj-id-init-yield-ident-valid.js --- description: When a `yield` token appears within the Initializer of an AssignmentProperty and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 989
obj-id-put-const.js --- description: The assignment target should obey `const` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [const, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 803
obj-id-put-let.js --- description: The assignment target should obey `let` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [let, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 788
obj-id-put-unresolvable-no-strict.js --- description: Outside of strict mode, if the the assignment target is an unresolvable reference, a new `var` binding should be created in the environment record. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 985
obj-id-put-unresolvable-strict-strict.js --- description: In strict mode, if the the assignment target is an unresolvable reference, a ReferenceError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 887
obj-id-simple-no-strict.js --- description: Evaluation of DestructuringAssignmentTarget. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 930
obj-id-simple-strict-strict.js --- description: It is a Syntax Error if IsValidSimpleAssignmentTarget of IdentifierReference is false. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 870
obj-prop-elem-init-assignment-missing.js --- description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference (non-existent property) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 966
obj-prop-elem-init-assignment-null.js --- description: If the Initializer is present and v is not undefined, the Initializer should be evaluated and the result assigned to the target reference (null value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 968
obj-prop-elem-init-assignment-truthy.js --- description: If the Initializer is present and v is not undefined, the Initializer should be evaluated and the result assigned to the target reference (truthy value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 966
obj-prop-elem-init-assignment-undef.js --- description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference (undefined value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 972
obj-prop-elem-init-evaluation.js --- description: The Initializer should only be evaluated if v is undefined. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1101
obj-prop-elem-init-fn-name-arrow.js --- description: Assignment of function `name` attribute (ArrowFunction) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and v is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(rhsValue, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(rhsValue, GetReferencedName(lref)). --- 1484
obj-prop-elem-init-fn-name-class.js --- description: Assignment of function `name` attribute (ClassExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [class, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and v is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(rhsValue, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(rhsValue, GetReferencedName(lref)). --- 1642
obj-prop-elem-init-fn-name-cover.js --- description: Assignment of function `name` attribute (CoverParenthesizedExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and v is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(rhsValue, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(rhsValue, GetReferencedName(lref)). --- 1591
obj-prop-elem-init-fn-name-fn.js --- description: Assignment of function `name` attribute (FunctionExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and v is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(rhsValue, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(rhsValue, GetReferencedName(lref)). --- 1549
obj-prop-elem-init-fn-name-gen.js --- description: Assignment of function `name` attribute (GeneratorExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and v is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(rhsValue, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(rhsValue, GetReferencedName(lref)). --- 1573
obj-prop-elem-init-in.js --- description: The Initializer in an AssignmentElement may be an `in` expression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 880
obj-prop-elem-init-let.js --- description: Value retrieval of Initializer obeys `let` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [let, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 813
obj-prop-elem-init-yield-expr.js --- description: When a `yield` token appears within the Initializer of an AssignmentElement and within a generator function body, it should behave as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1320
obj-prop-elem-init-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the Initializer of an AssignmentElement and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 971
obj-prop-elem-init-yield-ident-valid.js --- description: When a `yield` token appears within the Initializer of an AssignmentElement and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 998
obj-prop-elem-target-memberexpr-optchain-prop-ref-init.js --- description: It is a Syntax Error if LeftHandSideExpression of an DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral and AssignmentTargetType(LeftHandSideExpression) is not simple Using Object (MemberExpression OptionalChain .IdentifierName Initializer) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [optional-chaining, destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Syntax AssignmentElement : DestructuringAssignmentTarget Initializer_opt DestructuringAssignmentTarget : LeftHandSideExpression Static Semantics: Early Errors OptionalExpression: MemberExpression OptionalChain CallExpression OptionalChain OptionalExpression OptionalChain OptionalChain: ?. [ Expression ] ?. IdentifierName ?. Arguments ?. TemplateLiteral OptionalChain [ Expression ] OptionalChain .IdentifierName OptionalChain Arguments OptionalChain TemplateLiteral DestructuringAssignmentTarget : LeftHandSideExpression - It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and IsValidSimpleAssignmentTarget(LeftHandSideExpression) is not true. Static Semantics: IsValidSimpleAssignmentTarget LeftHandSideExpression : OptionalExpression 1. Return false. --- 2029
obj-prop-elem-target-obj-literal-optchain-prop-ref-init.js --- description: It is a Syntax Error if LeftHandSideExpression of an DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral and AssignmentTargetType(LeftHandSideExpression) is not simple Using Object (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [optional-chaining, destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Syntax AssignmentElement : DestructuringAssignmentTarget Initializer_opt DestructuringAssignmentTarget : LeftHandSideExpression Static Semantics: Early Errors OptionalExpression: MemberExpression OptionalChain CallExpression OptionalChain OptionalExpression OptionalChain OptionalChain: ?. [ Expression ] ?. IdentifierName ?. Arguments ?. TemplateLiteral OptionalChain [ Expression ] OptionalChain .IdentifierName OptionalChain Arguments OptionalChain TemplateLiteral DestructuringAssignmentTarget : LeftHandSideExpression - It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and IsValidSimpleAssignmentTarget(LeftHandSideExpression) is not true. Static Semantics: IsValidSimpleAssignmentTarget LeftHandSideExpression : OptionalExpression 1. Return false. --- 2043
obj-prop-elem-target-obj-literal-prop-ref-init-active.js --- description: The DestructuringAssignmentTarget of an AssignmentElement can extend to LHSExpressions if it is neither an ObjectLiteral nor an ArrayLiteral and its AssignmentTargetTyp is simple. Using MemberExpression (ObjLiteral + identifier) with active initializer. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Syntax AssignmentPattern : ObjectAssignmentPattern ObjectAssignmentPattern : { AssignmentPropertyList } AssignmentPropertyList : AssignmentProperty AssignmentProperty : PropertyName : AssignmentElement AssignmentElement : DestructuringAssignmentTarget Initializer_opt DestructuringAssignmentTarget : LeftHandSideExpression Static Semantics: Early Errors DestructuringAssignmentTarget : LeftHandSideExpression - It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if LeftHandSideExpression is not covering an AssignmentPattern. - It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and AssignmentTargetType(LeftHandSideExpression) is not simple. Runtime Semantics: DestructuringAssignmentEvaluation ObjectAssignmentPattern : { AssignmentPropertyList } 1. Perform ? RequireObjectCoercible(value). 2. Perform ? PropertyDestructuringAssignmentEvaluation for AssignmentPropertyList using value as the argument. 3. Return NormalCompletion(empty). Runtime Semantics: PropertyDestructuringAssignmentEvaluation AssignmentProperty : PropertyName : AssignmentElement 1. Let name be the result of evaluating PropertyName. 2. ReturnIfAbrupt(name). 3. Perform ? KeyedDestructuringAssignmentEvaluation of AssignmentElement with value and name as the arguments. 4. Return a new List containing name. Runtime Semantics: KeyedDestructuringAssignmentEvaluation AssignmentElement : DestructuringAssignmentTarget Initializer 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. ... --- 3015
obj-prop-elem-target-obj-literal-prop-ref-init.js --- description: The DestructuringAssignmentTarget of an AssignmentElement can extend to LHSExpressions if it is neither an ObjectLiteral nor an ArrayLiteral and its AssignmentTargetTyp is simple. Using MemberExpression (ObjLiteral + identifier) with initializer. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Syntax AssignmentPattern : ObjectAssignmentPattern ObjectAssignmentPattern : { AssignmentPropertyList } AssignmentPropertyList : AssignmentProperty AssignmentProperty : PropertyName : AssignmentElement AssignmentElement : DestructuringAssignmentTarget Initializer_opt DestructuringAssignmentTarget : LeftHandSideExpression Static Semantics: Early Errors DestructuringAssignmentTarget : LeftHandSideExpression - It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if LeftHandSideExpression is not covering an AssignmentPattern. - It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and AssignmentTargetType(LeftHandSideExpression) is not simple. Runtime Semantics: DestructuringAssignmentEvaluation ObjectAssignmentPattern : { AssignmentPropertyList } 1. Perform ? RequireObjectCoercible(value). 2. Perform ? PropertyDestructuringAssignmentEvaluation for AssignmentPropertyList using value as the argument. 3. Return NormalCompletion(empty). Runtime Semantics: PropertyDestructuringAssignmentEvaluation AssignmentProperty : PropertyName : AssignmentElement 1. Let name be the result of evaluating PropertyName. 2. ReturnIfAbrupt(name). 3. Perform ? KeyedDestructuringAssignmentEvaluation of AssignmentElement with value and name as the arguments. 4. Return a new List containing name. Runtime Semantics: KeyedDestructuringAssignmentEvaluation AssignmentElement : DestructuringAssignmentTarget Initializer 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. ... --- 2994
obj-prop-elem-target-obj-literal-prop-ref.js --- description: The DestructuringAssignmentTarget of an AssignmentElement can extend to LHSExpressions if it is neither an ObjectLiteral nor an ArrayLiteral and its AssignmentTargetTyp is simple. Using MemberExpression (ObjLiteral + identifier). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Syntax AssignmentPattern : ObjectAssignmentPattern ObjectAssignmentPattern : { AssignmentPropertyList } AssignmentPropertyList : AssignmentProperty AssignmentProperty : PropertyName : AssignmentElement AssignmentElement : DestructuringAssignmentTarget Initializer_opt DestructuringAssignmentTarget : LeftHandSideExpression Static Semantics: Early Errors DestructuringAssignmentTarget : LeftHandSideExpression - It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if LeftHandSideExpression is not covering an AssignmentPattern. - It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and AssignmentTargetType(LeftHandSideExpression) is not simple. Runtime Semantics: DestructuringAssignmentEvaluation ObjectAssignmentPattern : { AssignmentPropertyList } 1. Perform ? RequireObjectCoercible(value). 2. Perform ? PropertyDestructuringAssignmentEvaluation for AssignmentPropertyList using value as the argument. 3. Return NormalCompletion(empty). Runtime Semantics: PropertyDestructuringAssignmentEvaluation AssignmentProperty : PropertyName : AssignmentElement 1. Let name be the result of evaluating PropertyName. 2. ReturnIfAbrupt(name). 3. Perform ? KeyedDestructuringAssignmentEvaluation of AssignmentElement with value and name as the arguments. 4. Return a new List containing name. Runtime Semantics: KeyedDestructuringAssignmentEvaluation AssignmentElement : DestructuringAssignmentTarget Initializer 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. ... --- 2967
obj-prop-elem-target-yield-expr.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement and within a generator function body, it should behave as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1370
obj-prop-elem-target-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 990
obj-prop-elem-target-yield-ident-valid.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1040
obj-prop-identifier-resolution-first.js --- description: Evaluation of DestructuringAssignmentTarget (first of many). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 887
obj-prop-identifier-resolution-last.js --- description: Evaluation of DestructuringAssignmentTarget (last of many). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 885
obj-prop-identifier-resolution-lone.js --- description: Evaluation of DestructuringAssignmentTarget (lone element). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 875
obj-prop-identifier-resolution-middle.js --- description: Evaluation of DestructuringAssignmentTarget (within many). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 892
obj-prop-identifier-resolution-trlng.js --- description: Evaluation of DestructuringAssignmentTarget (lone element with trailing comma). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 897
obj-prop-name-evaluation-error.js --- description: Any error raised as a result of evaluating PropertyName should be forwarded to the runtime. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 844
obj-prop-name-evaluation.js --- description: PropertyName of an AssignmentProperty may be a ComputedPropertyName. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 963
obj-prop-nested-array-invalid.js --- description: It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using AssignmentPattern as the goal symbol. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1027
obj-prop-nested-array-null.js --- description: When DestructuringAssignmentTarget is an array literal and the value is `null`, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 864
obj-prop-nested-array-undefined-own.js --- description: When DestructuringAssignmentTarget is an array literal and the value is `undefined`, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 883
obj-prop-nested-array-undefined.js --- description: When DestructuringAssignmentTarget is an array literal and the value is not defined, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 865
obj-prop-nested-array-yield-expr.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and within a generator function body, it should behave as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1352
obj-prop-nested-array-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 996
obj-prop-nested-array-yield-ident-valid.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1025
obj-prop-nested-array.js --- description: When DestructuringAssignmentTarget is an array literal, it should be parsed parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 966
obj-prop-nested-obj-invalid.js --- description: It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using AssignmentPattern as the goal symbol. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1031
obj-prop-nested-obj-null.js --- description: When DestructuringAssignmentTarget is an object literal and the value is `null`, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 863
obj-prop-nested-obj-undefined-own.js --- description: When DestructuringAssignmentTarget is an object literal and the value is `undefined`, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 882
obj-prop-nested-obj-undefined.js --- description: When DestructuringAssignmentTarget is an object literal and the value is not defined, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 864
obj-prop-nested-obj-yield-expr.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and within a generator function body, it should behave as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1356
obj-prop-nested-obj-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 996
obj-prop-nested-obj-yield-ident-valid.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1031
obj-prop-nested-obj.js --- description: When DestructuringAssignmentTarget is an object literal, it should be parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 969
obj-prop-put-const.js --- description: The assignment target should obey `const` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [const, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 805
obj-prop-put-let.js --- description: The assignment target should obey `let` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [let, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 793
obj-prop-put-order.js --- description: The AssignmentElements in an AssignmentElementList are evaluated in left- to-right order. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 893
obj-prop-put-prop-ref-no-get.js --- description: If the DestructuringAssignmentTarget of an AssignmentElement is a PropertyReference, it should not be evaluated. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1069
obj-prop-put-prop-ref-user-err.js --- description: Any error raised as a result of setting the value should be forwarded to the runtime. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 898
obj-prop-put-prop-ref.js --- description: The DestructuringAssignmentTarget of an AssignmentElement may be a PropertyReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 891
obj-prop-put-unresolvable-no-strict.js --- description: Outside of strict mode, if the the assignment target is an unresolvable reference, a new `var` binding should be created in the environment record. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 990
obj-prop-put-unresolvable-strict-strict.js --- description: In strict mode, if the the assignment target is an unresolvable reference, a ReferenceError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 892
obj-rest-computed-property-no-strict.js --- description: Destructuring field can be a computed property, i.e it can be defined only at runtime. Rest operantion needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated, noStrict] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1366
obj-rest-computed-property.js --- description: Destructuring field can be a computed property, i.e it can be defined only at runtime. Rest operantion needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1359
obj-rest-descriptors.js --- description: Object created from rest deconstruction doesn't copy source object property descriptors. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1290
obj-rest-empty-obj.js --- description: RestBindingInitialization creates a new object even if lhs is an empty object (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 970
obj-rest-getter-abrupt-get-error.js --- description: Rest deconstruction doesn't happen if getter return is abrupt (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 916
obj-rest-getter.js --- description: Getter is called when obj is being deconstructed to a rest Object (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1041
obj-rest-non-string-computed-property-1.js --- description: Destructuring field can be a non-string computed property, i.e it can be defined only at runtime. Rest operation needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1224
obj-rest-non-string-computed-property-1dot.js --- description: Destructuring field can be a non-string computed property, i.e it can be defined only at runtime. Rest operation needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [compareArray.js, propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1251
obj-rest-non-string-computed-property-1dot0.js --- description: Destructuring field can be a non-string computed property, i.e it can be defined only at runtime. Rest operation needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1230
obj-rest-non-string-computed-property-1e0.js --- description: Destructuring field can be a non-string computed property, i.e it can be defined only at runtime. Rest operation needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1228
obj-rest-non-string-computed-property-array-1.js --- description: Destructuring field can be a non-string computed property, i.e it can be defined only at runtime. Rest operation needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [compareArray.js, propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1254
obj-rest-non-string-computed-property-array-1e0.js --- description: Destructuring field can be a non-string computed property, i.e it can be defined only at runtime. Rest operation needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [compareArray.js, propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1259
obj-rest-non-string-computed-property-string-1.js --- description: Destructuring field can be a non-string computed property, i.e it can be defined only at runtime. Rest operation needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1235
obj-rest-not-last-element-invalid.js --- description: Object rest element needs to be the last AssignmenProperty in ObjectAssignmentPattern. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 888
obj-rest-number.js --- description: RestBindingInitialization creates a new object even if lhs is a Number (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 951
obj-rest-order.js --- description: Rest operation follows [[OwnPropertyKeys]] order (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol, object-rest, destructuring-binding] flags: [generated] includes: [compareArray.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1235
obj-rest-put-const.js --- description: The object rest deconstruction assignment target should obey `const` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 840
obj-rest-same-name.js --- description: Proper setting in the values for rest name equal to a property name. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1173
obj-rest-skip-non-enumerable.js --- description: Rest object doesn't contain non-enumerable properties (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1244
obj-rest-str-val.js --- description: RestBindingInitialization creats an object with indexes as property name (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 988
obj-rest-symbol-val.js --- description: RestBindingInitialization creates a new object if lhs is a Symbol (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol, object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 969
obj-rest-to-property-with-setter.js --- description: When DestructuringAssignmentTarget is an object property setter, its value should be binded as rest object. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1203
obj-rest-to-property.js --- description: When DestructuringAssignmentTarget is an object property, its value should be binded as rest object. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1078
obj-rest-val-null.js --- description: TypeError is thrown when rhs is null because of 7.1.13 ToObject ( argument ) used by CopyDataProperties (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 856
obj-rest-val-undefined.js --- description: TypeError is thrown when rhs is ```undefined``` because of 7.1.13 ToObject ( argument ) used by CopyDataProperties (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 877
obj-rest-valid-object.js --- description: Rest object contains just unextracted data (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1171
shell.js 0
syntax-error-ident-ref-break-escaped.js --- description: break is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1027
syntax-error-ident-ref-case-escaped.js --- description: case is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1023
syntax-error-ident-ref-catch-escaped.js --- description: catch is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1027
syntax-error-ident-ref-class-escaped.js --- description: class is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1027
syntax-error-ident-ref-const-escaped.js --- description: const is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1027
syntax-error-ident-ref-continue-escaped.js --- description: continue is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1039
syntax-error-ident-ref-debugger-escaped.js --- description: debugger is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1039
syntax-error-ident-ref-default-escaped-ext.js --- description: default is a valid identifier name, using extended escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1048
syntax-error-ident-ref-default-escaped.js --- description: default is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1035
syntax-error-ident-ref-default.js --- description: default is a valid identifier name (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1008
syntax-error-ident-ref-delete-escaped.js --- description: delete is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1031
syntax-error-ident-ref-do-escaped.js --- description: do is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1015
syntax-error-ident-ref-else-escaped.js --- description: else is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1023
syntax-error-ident-ref-enum-escaped.js --- description: enum is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1023
syntax-error-ident-ref-export-escaped.js --- description: export is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1031
syntax-error-ident-ref-extends-escaped-ext.js --- description: extends is a valid identifier name, using extended escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1048
syntax-error-ident-ref-extends-escaped.js --- description: extends is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1035
syntax-error-ident-ref-extends.js --- description: extends is a valid identifier name (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1008
syntax-error-ident-ref-finally-escaped.js --- description: finally is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1035
syntax-error-ident-ref-for-escaped.js --- description: for is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1019
syntax-error-ident-ref-function-escaped.js --- description: function is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1039
syntax-error-ident-ref-if-escaped.js --- description: if is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1015
syntax-error-ident-ref-implements-escaped-strict.js --- description: implements is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1087
syntax-error-ident-ref-import-escaped.js --- description: import is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1031
syntax-error-ident-ref-in-escaped.js --- description: in is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1015
syntax-error-ident-ref-instanceof-escaped.js --- description: instanceof is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1047
syntax-error-ident-ref-interface-escaped-strict.js --- description: interface is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1083
syntax-error-ident-ref-let-escaped-strict.js --- description: let is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1059
syntax-error-ident-ref-new-escaped.js --- description: new is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1019
syntax-error-ident-ref-package-escaped-strict.js --- description: package is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1075
syntax-error-ident-ref-private-escaped-strict.js --- description: private is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1075
syntax-error-ident-ref-protected-escaped-strict.js --- description: protected is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1083
syntax-error-ident-ref-public-escaped-strict.js --- description: public is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1071
syntax-error-ident-ref-return-escaped.js --- description: return is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1031
syntax-error-ident-ref-static-escaped-strict.js --- description: static is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1071
syntax-error-ident-ref-super-escaped.js --- description: super is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1027
syntax-error-ident-ref-switch-escaped.js --- description: switch is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1031
syntax-error-ident-ref-this-escaped.js --- description: this is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1023
syntax-error-ident-ref-throw-escaped.js --- description: throw is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1027
syntax-error-ident-ref-try-escaped.js --- description: try is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1019
syntax-error-ident-ref-typeof-escaped.js --- description: typeof is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1031
syntax-error-ident-ref-var-escaped.js --- description: var is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1019
syntax-error-ident-ref-void-escaped.js --- description: void is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1023
syntax-error-ident-ref-while-escaped.js --- description: while is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1027
syntax-error-ident-ref-with-escaped.js --- description: with is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1023