Name Description Size Coverage
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1543 -
array-elem-init-evaluation.js --- description: The Initializer should only be evaluated if v is undefined. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1338 -
array-elem-init-fn-name-arrow.js --- description: Assignment of function `name` attribute (ArrowFunction) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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)). --- 1856 -
array-elem-init-fn-name-class.js --- description: Assignment of function `name` attribute (ClassExpression) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [class, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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)). --- 1992 -
array-elem-init-fn-name-cover.js --- description: Assignment of function `name` attribute (CoverParenthesizedExpression) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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)). --- 1952 -
array-elem-init-fn-name-fn.js --- description: Assignment of function `name` attribute (FunctionExpression) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [class, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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)). --- 1917 -
array-elem-init-fn-name-gen.js --- description: Assignment of function `name` attribute (GeneratorExpression) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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)). --- 1944 -
array-elem-init-in.js --- description: The Initializer in an AssignmentElement may be an `in` expression. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1243 -
array-elem-init-let.js --- description: Value retrieval of Initializer obeys `let` semantics. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [let, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1273 -
array-elem-init-order.js --- description: Initializer values should be assigned in left-to-right order. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1312 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1436 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1698 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1334 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1360 -
array-elem-iter-get-err.js --- description: Abrupt completion returned from GetIterator (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] ArrayAssignmentPattern : [ AssignmentElementList ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1496 -
array-elem-iter-nrml-close-err.js --- description: Abrupt completion returned from IteratorClose (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). --- 1901 -
array-elem-iter-nrml-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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. --- 2183 -
array-elem-iter-nrml-close-skip.js --- description: IteratorClose is not called when assignment evaluation has exhausted the iterator (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. --- 1775 -
array-elem-iter-nrml-close.js --- description: IteratorClose is called when assignment evaluation has not exhausted the iterator (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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, « »). [...] --- 2271 -
array-elem-iter-rtrn-close-err.js --- description: IteratorClose is called when reference evaluation produces a "return" completion (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2178 -
array-elem-iter-rtrn-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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. --- 2445 -
array-elem-iter-rtrn-close.js --- description: IteratorClose is called when reference evaluation produces a "return" completion (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2670 -
array-elem-iter-thrw-close-err.js --- description: IteratorClose is called when reference evaluation produces a "throw" completion (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. --- 1984 -
array-elem-iter-thrw-close-skip.js --- description: IteratorClose is not called when iteration produces an abrupt completion (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. --- 1823 -
array-elem-iter-thrw-close.js --- description: IteratorClose is called when reference evaluation produces a "throw" completion (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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, « »). [...] --- 2265 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1398 -
array-elem-nested-array-null.js --- description: When DestructuringAssignmentTarget is an array literal and the value is `null`, a TypeError should be thrown. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1322 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1333 -
array-elem-nested-array-undefined-own.js --- description: When DestructuringAssignmentTarget is an array literal and the value is `undefined`, a TypeError should be thrown. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1341 -
array-elem-nested-array-undefined.js --- description: When DestructuringAssignmentTarget is an array literal and no value is defined, a TypeError should be thrown. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1323 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1771 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1360 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1404 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1332 -
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) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [optional-chaining, destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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. --- 2395 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1402 -
array-elem-nested-obj-null.js --- description: When DestructuringAssignmentTarget is an object literal and the value is `null`, a TypeError should be thrown. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1321 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1332 -
array-elem-nested-obj-undefined-own.js --- description: When DestructuringAssignmentTarget is an object literal and the value is `undefined`, a TypeError should be thrown. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1340 -
array-elem-nested-obj-undefined.js --- description: When DestructuringAssignmentTarget is an object literal and no value is defined, a TypeError should be thrown. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1322 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1708 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1356 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1383 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1331 -
array-elem-put-const.js --- description: The assignment target should obey `const` semantics. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [const, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1268 -
array-elem-put-let.js --- description: The assignment target should obey `let` semantics. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [let, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1258 -
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 (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [optional-chaining, destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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. --- 2409 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 3137 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 3113 -
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). (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 3086 -
array-elem-put-prop-ref-no-get.js --- description: If the DestructuringAssignmentTarget of an AssignmentElement is a PropertyReference, it should not be evaluated. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1438 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1356 -
array-elem-put-prop-ref.js --- description: The DestructuringAssignmentTarget of an AssignmentElement may be a PropertyReference. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1259 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1367 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1357 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1421 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1434 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1339 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1745 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1351 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1391 -
array-elem-trlg-iter-elision-iter-abpt.js --- description: Abrupt completion returned during evaluation of elision (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2311 -
array-elem-trlg-iter-elision-iter-nrml-close-err.js --- description: Abrupt completion returned from IteratorClose (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2237 -
array-elem-trlg-iter-elision-iter-nrml-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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. --- 2489 -
array-elem-trlg-iter-elision-iter-nrml-close-skip.js --- description: IteratorClose not invoked when elision exhausts the iterator (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2096 -
array-elem-trlg-iter-elision-iter-nrml-close.js --- description: IteratorClose invoked when elision does not exhaust the iterator (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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, « »). [...] --- 2561 -
array-elem-trlg-iter-get-err.js --- description: Abrupt completion returned from GetIterator (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1549 -
array-elem-trlg-iter-list-nrml-close-err.js --- description: Abrupt completion returned from IteratorClose (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2260 -
array-elem-trlg-iter-list-nrml-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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. --- 2553 -
array-elem-trlg-iter-list-nrml-close-skip.js --- description: IteratorClose is not invoked when evaluation of AssignmentElementList exhausts the iterator (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2205 -
array-elem-trlg-iter-list-nrml-close.js --- description: IteratorClose is invoked when evaluation of AssignmentElementList completes without exhausting the iterator (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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, « »). [...] --- 2667 -
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" (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2775 -
array-elem-trlg-iter-list-rtrn-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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. --- 2702 -
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" (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 3115 -
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" (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2512 -
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" (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2320 -
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" (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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, « »). [...] --- 2697 -
array-elem-trlg-iter-rest-nrml-close-skip.js --- description: IteratorClose is not called when rest element evaluation has exhausted the iterator (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2196 -
array-elem-trlg-iter-rest-rtrn-close-err.js --- description: IteratorClose is called when AssignmentRestEvaluation produces a "return" completion due to reference evaluation (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2746 -
array-elem-trlg-iter-rest-rtrn-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2501 -
array-elem-trlg-iter-rest-rtrn-close.js --- description: IteratorClose is called when AssignmentRestEvaluation produces a "return" completion due to reference evaluation (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 3039 -
array-elem-trlg-iter-rest-thrw-close-err.js --- description: IteratorClose is called when AssignmentRestEvaluation produces a "throw" completion due to reference evaluation (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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) --- 2558 -
array-elem-trlg-iter-rest-thrw-close-skip.js --- description: Abrupt completion returned during iteration for rest element (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2280 -
array-elem-trlg-iter-rest-thrw-close.js --- description: IteratorClose is called when AssignmentRestEvaluation produces a "throw" completion due to reference evaluation (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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, « »). [...] --- 2709 -
array-elision-iter-abpt.js --- description: IteratorClose is not called when iteration produces an abrupt completion (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] ArrayAssignmentPattern : [ Elision ] 1. Let iterator be GetIterator(value). [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). [...] --- 1825 -
array-elision-iter-get-err.js --- description: Abrupt completion returned from GetIterator (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] ArrayAssignmentPattern : [ Elision ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1478 -
array-elision-iter-nrml-close-err.js --- description: Abrupt completion returned from IteratorClose (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] ArrayAssignmentPattern : [ Elision ] 1. Let iterator be GetIterator(value). [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. --- 1955 -
array-elision-iter-nrml-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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. --- 2196 -
array-elision-iter-nrml-close-skip.js --- description: IteratorClose is not called when iteration has exhausted the iterator (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] ArrayAssignmentPattern : [ Elision ] 1. Let iterator be GetIterator(value). [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). [...] --- 1783 -
array-elision-iter-nrml-close.js --- description: IteratorClose is called when assignment evaluation has not exhausted the iterator (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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, « »). [...] --- 2284 -
array-elision-val-array.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1209 -
array-elision-val-bool.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values and throws for boolean values. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1300 -
array-elision-val-null.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values and throws for `null`. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1292 -
array-elision-val-num.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values and throws for number values. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1295 -
array-elision-val-string.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1224 -
array-elision-val-symbol.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values and throws for symbol values. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1324 -
array-elision-val-undef.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values and throws for `undefined`. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1303 -
array-empty-iter-close-err.js --- description: Abrupt completion returned from IteratorClose (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] ArrayAssignmentPattern : [ ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). 3. Return IteratorClose(iterator, NormalCompletion(empty)). --- 1803 -
array-empty-iter-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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. --- 2017 -
array-empty-iter-close.js --- description: Iterator is closed without iterating (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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, « »). [...] --- 2099 -
array-empty-iter-get-err.js --- description: Abrupt completion returned from GetIterator (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] ArrayAssignmentPattern : [ ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1465 -
array-empty-val-array.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1215 -
array-empty-val-bool.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values and throws for boolean values (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1304 -
array-empty-val-null.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values and throws for `null`. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1297 -
array-empty-val-num.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values and throws for number values. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1300 -
array-empty-val-string.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1230 -
array-empty-val-symbol.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values and throws for Symbol values. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1329 -
array-empty-val-undef.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values and throws for `undefined`. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1308 -
array-iteration.js --- description: Value iteration only proceeds for the number of elements in the ArrayAssignmentPattern. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1353 -
array-rest-after-element.js --- description: An AssignmentRestElement following an AssignmentElement consumes all remaining iterable values. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1367 -
array-rest-after-elision.js --- description: An AssignmentRestElement following an elision consumes all remaining iterable values. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1327 -
array-rest-before-element.js --- description: An AssignmentElement may not follow an AssignmentRestElement in an AssignmentElementList. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1232 -
array-rest-before-elision.js --- description: An elision may not follow an AssignmentRestElement in an AssignmentElementList. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1220 -
array-rest-before-rest.js --- description: An AssignmentRestElement may not follow another AssignmentRestElement in an AssignmentElementList. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1241 -
array-rest-elision-invalid.js --- description: ArrayAssignmentPattern may not include elisions following an AssignmentRestElement in a AssignmentElementList. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1252 -
array-rest-elision-iter-abpt.js --- description: IteratorClose is not called when assignment evaluation produces an abrupt completion (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2122 -
array-rest-elision.js --- description: ArrayAssignmentPattern may include elisions at any position preceding a AssignmentRestElement in a AssignmentElementList. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1402 -
array-rest-init.js --- description: The AssignmentRestElement does not support an initializer. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1199 -
array-rest-iter-get-err.js --- description: Abrupt completion returned from GetIterator (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1508 -
array-rest-iter-nrml-close-skip.js --- description: IteratorClose is not called when assignment evaluation has exhausted the iterator (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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. --- 1944 -
array-rest-iter-rtrn-close-err.js --- description: IteratorClose is called when reference evaluation produces a "return" completion (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2613 -
array-rest-iter-rtrn-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2526 -
array-rest-iter-rtrn-close.js --- description: IteratorClose is called when reference evaluation produces a "return" completion (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 3079 -
array-rest-iter-thrw-close-err.js --- description: IteratorClose is called when reference evaluation produces a "throw" completion (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2535 -
array-rest-iter-thrw-close-skip.js --- description: IteratorClose is not called when iteration produces an abrupt completion (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 1976 -
array-rest-iter-thrw-close.js --- description: IteratorClose is called when reference evaluation produces a "throw" completion (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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, « »). [...] --- 2815 -
array-rest-iteration.js --- description: In the presense of an AssignmentRestElement, value iteration exhausts the iterable value; (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1369 -
array-rest-lref-err.js --- description: IteratorClose is called when reference evaluation produces an abrupt completion (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2313 -
array-rest-lref.js --- description: Reference is evaluated during assignment (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). [...] --- 2233 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1401 -
array-rest-nested-array-iter-thrw-close-skip.js --- description: IteratorClose is not called when nested array pattern evaluation produces an abrupt completion (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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. --- 2432 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1429 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1410 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1425 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1367 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1777 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1386 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1430 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1339 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1405 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1440 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1610 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1625 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1567 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1717 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1371 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1397 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1336 -
array-rest-put-const.js --- description: The assignment target should obey `const` semantics. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [const, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1271 -
array-rest-put-let.js --- description: The assignment target should obey `let` semantics. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [let, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1261 -
array-rest-put-prop-ref-no-get.js --- description: If the DestructuringAssignmentTarget of an AssignmentElement is a PropertyReference, it should not be evaluated. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1567 -
array-rest-put-prop-ref-user-err-iter-close-skip.js --- description: IteratorClose is not called when value assignment produces an abrupt completion. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 2473 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1359 -
array-rest-put-prop-ref.js --- description: The DestructuringAssignmentTarget of an AssignmentElement may be a PropertyReference. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1368 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1369 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1360 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1855 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1373 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1524 -
browser.js 0 -
const-ary-init-iter-close.js --- description: Iterator is closed when not exhausted by pattern evaluation (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern [...] 4. If iteratorRecord.[[done]] is false, return ? IteratorClose(iterator, result). [...] --- 1943 -
const-ary-init-iter-get-err-array-prototype.js --- description: Abrupt completion returned by GetIterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern 1. Let iteratorRecord be ? GetIterator(value). GetIterator ( obj [ , hint [ , method ] ] ) [...] 4. Let iterator be ? Call(method, obj). Call ( F, V [ , argumentsList ] ) [...] 2. If IsCallable(F) is false, throw a TypeError exception. --- 1812 -
const-ary-init-iter-get-err.js --- description: Abrupt completion returned by GetIterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1647 -
const-ary-init-iter-no-close.js --- description: Iterator is not closed when exhausted by pattern evaluation (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern [...] 4. If iteratorRecord.[[done]] is false, return ? IteratorClose(iterator, result). [...] --- 1945 -
const-ary-name-iter-val.js --- description: SingleNameBinding with normal value iteration (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. e. Else, [...] i. Let v be IteratorValue(next). ii. If v is an abrupt completion, set iteratorRecord.[[done]] to true. iii. ReturnIfAbrupt(v). 5. If iteratorRecord.[[done]] is true, let v be undefined. [...] 8. Return InitializeReferencedBinding(lhs, v). --- 2259 -
const-ary-ptrn-elem-ary-elem-init.js --- description: BindingElement with array binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2032 -
const-ary-ptrn-elem-ary-elem-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). [...] e. Else, i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2003 -
const-ary-ptrn-elem-ary-elision-init.js --- description: BindingElement with array binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2107 -
const-ary-ptrn-elem-ary-elision-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). [...] e. Else, i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2012 -
const-ary-ptrn-elem-ary-empty-init.js --- description: BindingElement with array binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2149 -
const-ary-ptrn-elem-ary-empty-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). [...] e. Else, i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 1990 -
const-ary-ptrn-elem-ary-rest-init.js --- description: BindingElement with array binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2154 -
const-ary-ptrn-elem-ary-rest-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). [...] e. Else, i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2201 -
const-ary-ptrn-elem-ary-val-null.js --- description: Nested array destructuring with a null value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPattern Initializeropt 1. If iteratorRecord.[[done]] is false, then [...] e. Else i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1934 -
const-ary-ptrn-elem-id-init-exhausted.js --- description: Destructuring initializer with an exhausted iterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 5. If iteratorRecord.[[done]] is true, let v be undefined. 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 1959 -
const-ary-ptrn-elem-id-init-fn-name-arrow.js --- description: SingleNameBinding does assign name to arrow functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). d. If IsAnonymousFunctionDefinition(Initializer) is true, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 2027 -
const-ary-ptrn-elem-id-init-fn-name-class.js --- description: SingleNameBinding assigns `name` to "anonymous" classes (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). d. If IsAnonymousFunctionDefinition(Initializer) is true, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 2164 -
const-ary-ptrn-elem-id-init-fn-name-cover.js --- description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). d. If IsAnonymousFunctionDefinition(Initializer) is true, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 2140 -
const-ary-ptrn-elem-id-init-fn-name-fn.js --- description: SingleNameBinding assigns name to "anonymous" functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). d. If IsAnonymousFunctionDefinition(Initializer) is true, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 2086 -
const-ary-ptrn-elem-id-init-fn-name-gen.js --- description: SingleNameBinding assigns name to "anonymous" generator functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). d. If IsAnonymousFunctionDefinition(Initializer) is true, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 2118 -
const-ary-ptrn-elem-id-init-hole.js --- description: Destructuring initializer with a "hole" (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 1892 -
const-ary-ptrn-elem-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 2052 -
const-ary-ptrn-elem-id-init-throws.js --- description: Destructuring initializer returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). --- 1776 -
const-ary-ptrn-elem-id-init-undef.js --- description: Destructuring initializer with an undefined value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 1898 -
const-ary-ptrn-elem-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). 6.2.3.1 GetValue (V) 1. ReturnIfAbrupt(V). 2. If Type(V) is not Reference, return V. 3. Let base be GetBase(V). 4. If IsUnresolvableReference(V), throw a ReferenceError exception. --- 1956 -
const-ary-ptrn-elem-id-iter-complete.js --- description: SingleNameBinding when value iteration completes (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. e. Else, [...] 5. If iteratorRecord.[[done]] is true, let v be undefined. [...] 8. Return InitializeReferencedBinding(lhs, v). --- 2046 -
const-ary-ptrn-elem-id-iter-done.js --- description: SingleNameBinding when value iteration was completed previously (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then [...] 5. If iteratorRecord.[[done]] is true, let v be undefined. [...] 8. Return InitializeReferencedBinding(lhs, v). --- 1799 -
const-ary-ptrn-elem-id-iter-step-err.js --- description: Error forwarding when IteratorStep returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). --- 1902 -
const-ary-ptrn-elem-id-iter-val-array-prototype.js --- description: Array destructuring uses overriden Array.prototype[Symbol.iterator] (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializer_opt 1. Let bindingId be StringValue of BindingIdentifier. 2. Let lhs be ? ResolveBinding(bindingId, environment). 3. If iteratorRecord.[[Done]] is false, then a. Let next be IteratorStep(iteratorRecord). b. If next is an abrupt completion, set iteratorRecord.[[Done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[Done]] to true. e. Else, i. Let v be IteratorValue(next). ii. If v is an abrupt completion, set iteratorRecord.[[Done]] to true. iii. ReturnIfAbrupt(v). [...] 7. Return InitializeReferencedBinding(lhs, v). --- 2557 -
const-ary-ptrn-elem-id-iter-val-err.js --- description: Error forwarding when IteratorValue returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. e. Else, i. Let v be IteratorValue(next). ii. If v is an abrupt completion, set iteratorRecord.[[done]] to true. iii. ReturnIfAbrupt(v). --- 2266 -
const-ary-ptrn-elem-id-iter-val.js --- description: SingleNameBinding when value iteration was completed previously (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. e. Else, [...] i. Let v be IteratorValue(next). ii. If v is an abrupt completion, set iteratorRecord.[[done]] to true. iii. ReturnIfAbrupt(v). 5. If iteratorRecord.[[done]] is true, let v be undefined. [...] 8. Return InitializeReferencedBinding(lhs, v). --- 2285 -
const-ary-ptrn-elem-obj-id-init.js --- description: BindingElement with object binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2050 -
const-ary-ptrn-elem-obj-id.js --- description: BindingElement with object binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2072 -
const-ary-ptrn-elem-obj-prop-id-init.js --- description: BindingElement with object binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2245 -
const-ary-ptrn-elem-obj-prop-id.js --- description: BindingElement with object binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2270 -
const-ary-ptrn-elem-obj-val-null.js --- description: Nested object destructuring with a null value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPattern Initializeropt 1. If iteratorRecord.[[done]] is false, then [...] e. Else i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ObjectBindingPattern 1. Let valid be RequireObjectCoercible(value). 2. ReturnIfAbrupt(valid). --- 1943 -
const-ary-ptrn-elem-obj-val-undef.js --- description: Nested object destructuring with a value of `undefined` (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPattern Initializeropt 1. If iteratorRecord.[[done]] is false, then [...] e. Else i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ObjectBindingPattern 1. Let valid be RequireObjectCoercible(value). 2. ReturnIfAbrupt(valid). --- 1950 -
const-ary-ptrn-elision-exhausted.js --- description: Elision accepts exhausted iterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elision ] 1. Return the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. 12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation Elision : , 1. If iteratorRecord.[[done]] is false, then [...] 2. Return NormalCompletion(empty). --- 1916 -
const-ary-ptrn-elision-iter-close.js --- description: The iterator is properly consumed by the destructuring pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] --- 1527 -
const-ary-ptrn-elision-step-err.js --- description: Elision advances iterator and forwards abrupt completions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elision ] 1. Return the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. 12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation Elision : , 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). --- 2145 -
const-ary-ptrn-elision.js --- description: Elision advances iterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elision ] 1. Return the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. 12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation Elision : , 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. 2. Return NormalCompletion(empty). --- 2229 -
const-ary-ptrn-empty.js --- description: No iteration occurs for an "empty" array binding pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ ] 1. Return NormalCompletion(empty). --- 1677 -
const-ary-ptrn-init-err.js --- esid: sec-iteration-statements description: > Initializer is not allowed in head's ForDeclaration position. info: | IterationStatement: for (ForDeclaration of AssignmentExpression) Statement negative: phase: parse type: SyntaxError --- 467 -
const-ary-ptrn-rest-ary-elem.js --- description: Rest element containing an array BindingElementList pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. e. Else, [...] i. Let v be IteratorValue(next). ii. If v is an abrupt completion, set iteratorRecord.[[done]] to true. iii. ReturnIfAbrupt(v). 5. If iteratorRecord.[[done]] is true, let v be undefined. [...] 8. Return InitializeReferencedBinding(lhs, v). --- 2664 -
const-ary-ptrn-rest-ary-elision.js --- description: Rest element containing an elision (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elision ] 1. Return the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. 12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation Elision : , 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. 2. Return NormalCompletion(empty). --- 2633 -
const-ary-ptrn-rest-ary-empty.js --- description: Rest element containing an "empty" array pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ ] 1. Return NormalCompletion(empty). --- 2064 -
const-ary-ptrn-rest-ary-rest.js --- description: Rest element containing a rest element (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] --- 2015 -
const-ary-ptrn-rest-id-direct.js --- description: Lone rest element (direct binding) (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] includes: [compareArray.js] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingIdentifier [...] 2. Let A be ! ArrayCreate(0). 3. Let n be 0. 4. Repeat, [...] f. Perform ! CreateDataPropertyOrThrow(A, ! ToString(n), nextValue). g. Set n to n + 1. --- 1803 -
const-ary-ptrn-rest-id-elision-next-err.js --- description: Rest element following elision elements (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elisionopt BindingRestElement ] 1. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. ReturnIfAbrupt(status). 2. Return the result of performing IteratorBindingInitialization for BindingRestElement with iteratorRecord and environment as arguments. --- 1958 -
const-ary-ptrn-rest-id-elision.js --- description: Rest element following elision elements (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elisionopt BindingRestElement ] 1. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. ReturnIfAbrupt(status). 2. Return the result of performing IteratorBindingInitialization for BindingRestElement with iteratorRecord and environment as arguments. --- 2142 -
const-ary-ptrn-rest-id-exhausted.js --- description: RestElement applied to an exhausted iterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingIdentifier 1. Let lhs be ResolveBinding(StringValue of BindingIdentifier, environment). 2. ReturnIfAbrupt(lhs). 3. Let A be ArrayCreate(0). 4. Let n=0. 5. Repeat, [...] b. If iteratorRecord.[[done]] is true, then i. If environment is undefined, return PutValue(lhs, A). ii. Return InitializeReferencedBinding(lhs, A). --- 1981 -
const-ary-ptrn-rest-id-iter-close.js --- description: The iterator is properly consumed by the destructuring pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] --- 1530 -
const-ary-ptrn-rest-id-iter-step-err.js --- description: Error forwarding when IteratorStep returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingIdentifier 1. Let lhs be ResolveBinding(StringValue of BindingIdentifier, environment). 2. ReturnIfAbrupt(lhs). 3. Let A be ArrayCreate(0). 4. Let n=0. 5. Repeat, a. If iteratorRecord.[[done]] is false, i. Let next be IteratorStep(iteratorRecord.[[iterator]]). ii. If next is an abrupt completion, set iteratorRecord.[[done]] to true. iii. ReturnIfAbrupt(next). --- 2186 -
const-ary-ptrn-rest-id-iter-val-err.js --- description: Error forwarding when IteratorValue returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingIdentifier 1. Let lhs be ResolveBinding(StringValue of BindingIdentifier, environment). 2. ReturnIfAbrupt(lhs). 3. Let A be ArrayCreate(0). 4. Let n=0. 5. Repeat, [...] c. Let nextValue be IteratorValue(next). d. If nextValue is an abrupt completion, set iteratorRecord.[[done]] to true. e. ReturnIfAbrupt(nextValue). --- 2137 -
const-ary-ptrn-rest-id.js --- description: Lone rest element (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingIdentifier [...] 3. Let A be ArrayCreate(0). [...] 5. Repeat [...] f. Let status be CreateDataProperty(A, ToString (n), nextValue). [...] --- 1863 -
const-ary-ptrn-rest-init-ary.js --- description: Rest element (nested array pattern) does not support initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1778 -
const-ary-ptrn-rest-init-id.js --- description: Rest element (identifier) does not support initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1763 -
const-ary-ptrn-rest-init-obj.js --- description: Rest element (nested object pattern) does not support initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1779 -
const-ary-ptrn-rest-not-final-ary.js --- description: Rest element (array binding pattern) may not be followed by any element (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1793 -
const-ary-ptrn-rest-not-final-id.js --- description: Rest element (identifier) may not be followed by any element (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1779 -
const-ary-ptrn-rest-not-final-obj.js --- description: Rest element (object binding pattern) may not be followed by any element (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1796 -
const-ary-ptrn-rest-obj-id.js --- description: Rest element containing an object binding pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] --- 1855 -
const-ary-ptrn-rest-obj-prop-id.js --- description: Rest element containing an object binding pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] --- 2102 -
const-obj-init-null.js --- description: Value specifed for object binding pattern must be object coercible (null) (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1510 -
const-obj-init-undefined.js --- description: Value specifed for object binding pattern must be object coercible (undefined) (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1525 -
const-obj-ptrn-empty.js --- description: No property access occurs for an "empty" object binding pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1703 -
const-obj-ptrn-id-get-value-err.js --- description: Error thrown when accessing the corresponding property of the value object (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. Let v be GetV(value, propertyName). 5. ReturnIfAbrupt(v). --- 1749 -
const-obj-ptrn-id-init-fn-name-arrow.js --- description: SingleNameBinding assigns `name` to arrow functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer 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, bindingId). --- 1972 -
const-obj-ptrn-id-init-fn-name-class.js --- description: SingleNameBinding assigns `name` to "anonymous" classes (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer 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, bindingId). --- 2111 -
const-obj-ptrn-id-init-fn-name-cover.js --- description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer 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, bindingId). --- 2086 -
const-obj-ptrn-id-init-fn-name-fn.js --- description: SingleNameBinding assigns name to "anonymous" functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer 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, bindingId). --- 2033 -
const-obj-ptrn-id-init-fn-name-gen.js --- description: SingleNameBinding assigns name to "anonymous" generator functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer 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, bindingId). --- 2065 -
const-obj-ptrn-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then [...] [...] --- 1958 -
const-obj-ptrn-id-init-throws.js --- description: Error thrown when evaluating the initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). --- 1768 -
const-obj-ptrn-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). 6.2.3.1 GetValue (V) 1. ReturnIfAbrupt(V). 2. If Type(V) is not Reference, return V. 3. Let base be GetBase(V). 4. If IsUnresolvableReference(V), throw a ReferenceError exception. --- 1948 -
const-obj-ptrn-id-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1645 -
const-obj-ptrn-init-err.js --- esid: sec-iteration-statements description: > Initializer is not allowed in head's ForDeclaration position. info: | IterationStatement: for (ForDeclaration of AssignmentExpression) Statement negative: phase: parse type: SyntaxError --- 467 -
const-obj-ptrn-list-err.js --- description: Binding property list evaluation is interrupted by an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.5 Runtime Semantics: BindingInitialization BindingPropertyList : BindingPropertyList , BindingProperty 1. Let status be the result of performing BindingInitialization for BindingPropertyList using value and environment as arguments. 2. ReturnIfAbrupt(status). --- 1826 -
const-obj-ptrn-prop-ary-init.js --- description: Object binding pattern with "nested" array binding pattern using initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 2011 -
const-obj-ptrn-prop-ary-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1657 -
const-obj-ptrn-prop-ary-value-null.js --- description: Object binding pattern with "nested" array binding pattern taking the `null` value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then [...] 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 1718 -
const-obj-ptrn-prop-ary.js --- description: Object binding pattern with "nested" array binding pattern not using initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then [...] 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 1920 -
const-obj-ptrn-prop-eval-err.js --- description: Evaluation of property name returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.5 Runtime Semantics: BindingInitialization BindingProperty : PropertyName : BindingElement 1. Let P be the result of evaluating PropertyName 2. ReturnIfAbrupt(P). --- 1641 -
const-obj-ptrn-prop-id-get-value-err.js --- description: Error thrown when accessing the corresponding property of the value object (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt 1. Let v be GetV(value, propertyName). 2. ReturnIfAbrupt(v). --- 1819 -
const-obj-ptrn-prop-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt [...] 3. If Initializer is present and v is undefined, then [...] --- 2189 -
const-obj-ptrn-prop-id-init-throws.js --- description: Error thrown when evaluating the initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt [...] 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). --- 1769 -
const-obj-ptrn-prop-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt [...] 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). 6.2.3.1 GetValue (V) 1. ReturnIfAbrupt(V). 2. If Type(V) is not Reference, return V. 3. Let base be GetBase(V). 4. If IsUnresolvableReference(V), throw a ReferenceError exception. --- 1950 -
const-obj-ptrn-prop-id-init.js --- description: Binding as specified via property name, identifier, and initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 8. Return InitializeReferencedBinding(lhs, v). --- 1719 -
const-obj-ptrn-prop-id-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1712 -
const-obj-ptrn-prop-id.js --- description: Binding as specified via property name and identifier (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 8. Return InitializeReferencedBinding(lhs, v). --- 1701 -
const-obj-ptrn-prop-obj-init.js --- description: Object binding pattern with "nested" object binding pattern using initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 2039 -
const-obj-ptrn-prop-obj-value-null.js --- description: Object binding pattern with "nested" object binding pattern taking the `null` value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then [...] 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 1732 -
const-obj-ptrn-prop-obj-value-undef.js --- description: Object binding pattern with "nested" object binding pattern taking the `null` value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then [...] 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 1714 -
const-obj-ptrn-prop-obj.js --- description: Object binding pattern with "nested" object binding pattern not using initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then [...] 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 1940 -
const-obj-ptrn-rest-getter.js --- description: Getter is called when obj is being deconstructed to a rest Object (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] --- 1676 -
const-obj-ptrn-rest-skip-non-enumerable.js --- description: Rest object doesn't contain non-enumerable properties (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] --- 1846 -
const-obj-ptrn-rest-val-obj.js --- description: Rest object contains just unextracted data (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] --- 1805 -
let-ary-init-iter-close.js --- description: Iterator is closed when not exhausted by pattern evaluation (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern [...] 4. If iteratorRecord.[[done]] is false, return ? IteratorClose(iterator, result). [...] --- 1939 -
let-ary-init-iter-get-err-array-prototype.js --- description: Abrupt completion returned by GetIterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern 1. Let iteratorRecord be ? GetIterator(value). GetIterator ( obj [ , hint [ , method ] ] ) [...] 4. Let iterator be ? Call(method, obj). Call ( F, V [ , argumentsList ] ) [...] 2. If IsCallable(F) is false, throw a TypeError exception. --- 1808 -
let-ary-init-iter-get-err.js --- description: Abrupt completion returned by GetIterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1643 -
let-ary-init-iter-no-close.js --- description: Iterator is not closed when exhausted by pattern evaluation (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern [...] 4. If iteratorRecord.[[done]] is false, return ? IteratorClose(iterator, result). [...] --- 1941 -
let-ary-name-iter-val.js --- description: SingleNameBinding with normal value iteration (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. e. Else, [...] i. Let v be IteratorValue(next). ii. If v is an abrupt completion, set iteratorRecord.[[done]] to true. iii. ReturnIfAbrupt(v). 5. If iteratorRecord.[[done]] is true, let v be undefined. [...] 8. Return InitializeReferencedBinding(lhs, v). --- 2255 -
let-ary-ptrn-elem-ary-elem-init.js --- description: BindingElement with array binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2028 -
let-ary-ptrn-elem-ary-elem-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). [...] e. Else, i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 1999 -
let-ary-ptrn-elem-ary-elision-init.js --- description: BindingElement with array binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2103 -
let-ary-ptrn-elem-ary-elision-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). [...] e. Else, i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2008 -
let-ary-ptrn-elem-ary-empty-init.js --- description: BindingElement with array binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2145 -
let-ary-ptrn-elem-ary-empty-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). [...] e. Else, i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 1986 -
let-ary-ptrn-elem-ary-rest-init.js --- description: BindingElement with array binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2150 -
let-ary-ptrn-elem-ary-rest-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). [...] e. Else, i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2197 -
let-ary-ptrn-elem-ary-val-null.js --- description: Nested array destructuring with a null value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPattern Initializeropt 1. If iteratorRecord.[[done]] is false, then [...] e. Else i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1930 -
let-ary-ptrn-elem-id-init-exhausted.js --- description: Destructuring initializer with an exhausted iterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 5. If iteratorRecord.[[done]] is true, let v be undefined. 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 1955 -
let-ary-ptrn-elem-id-init-fn-name-arrow.js --- description: SingleNameBinding does assign name to arrow functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). d. If IsAnonymousFunctionDefinition(Initializer) is true, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 2023 -
let-ary-ptrn-elem-id-init-fn-name-class.js --- description: SingleNameBinding assigns `name` to "anonymous" classes (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). d. If IsAnonymousFunctionDefinition(Initializer) is true, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 2160 -
let-ary-ptrn-elem-id-init-fn-name-cover.js --- description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). d. If IsAnonymousFunctionDefinition(Initializer) is true, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 2136 -
let-ary-ptrn-elem-id-init-fn-name-fn.js --- description: SingleNameBinding assigns name to "anonymous" functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). d. If IsAnonymousFunctionDefinition(Initializer) is true, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 2082 -
let-ary-ptrn-elem-id-init-fn-name-gen.js --- description: SingleNameBinding assigns name to "anonymous" generator functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). d. If IsAnonymousFunctionDefinition(Initializer) is true, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 2114 -
let-ary-ptrn-elem-id-init-hole.js --- description: Destructuring initializer with a "hole" (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 1888 -
let-ary-ptrn-elem-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 2048 -
let-ary-ptrn-elem-id-init-throws.js --- description: Destructuring initializer returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). --- 1772 -
let-ary-ptrn-elem-id-init-undef.js --- description: Destructuring initializer with an undefined value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 1894 -
let-ary-ptrn-elem-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). 6.2.3.1 GetValue (V) 1. ReturnIfAbrupt(V). 2. If Type(V) is not Reference, return V. 3. Let base be GetBase(V). 4. If IsUnresolvableReference(V), throw a ReferenceError exception. --- 1952 -
let-ary-ptrn-elem-id-iter-complete.js --- description: SingleNameBinding when value iteration completes (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. e. Else, [...] 5. If iteratorRecord.[[done]] is true, let v be undefined. [...] 8. Return InitializeReferencedBinding(lhs, v). --- 2042 -
let-ary-ptrn-elem-id-iter-done.js --- description: SingleNameBinding when value iteration was completed previously (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then [...] 5. If iteratorRecord.[[done]] is true, let v be undefined. [...] 8. Return InitializeReferencedBinding(lhs, v). --- 1795 -
let-ary-ptrn-elem-id-iter-step-err.js --- description: Error forwarding when IteratorStep returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). --- 1898 -
let-ary-ptrn-elem-id-iter-val-array-prototype.js --- description: Array destructuring uses overriden Array.prototype[Symbol.iterator] (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializer_opt 1. Let bindingId be StringValue of BindingIdentifier. 2. Let lhs be ? ResolveBinding(bindingId, environment). 3. If iteratorRecord.[[Done]] is false, then a. Let next be IteratorStep(iteratorRecord). b. If next is an abrupt completion, set iteratorRecord.[[Done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[Done]] to true. e. Else, i. Let v be IteratorValue(next). ii. If v is an abrupt completion, set iteratorRecord.[[Done]] to true. iii. ReturnIfAbrupt(v). [...] 7. Return InitializeReferencedBinding(lhs, v). --- 2553 -
let-ary-ptrn-elem-id-iter-val-err.js --- description: Error forwarding when IteratorValue returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. e. Else, i. Let v be IteratorValue(next). ii. If v is an abrupt completion, set iteratorRecord.[[done]] to true. iii. ReturnIfAbrupt(v). --- 2262 -
let-ary-ptrn-elem-id-iter-val.js --- description: SingleNameBinding when value iteration was completed previously (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. e. Else, [...] i. Let v be IteratorValue(next). ii. If v is an abrupt completion, set iteratorRecord.[[done]] to true. iii. ReturnIfAbrupt(v). 5. If iteratorRecord.[[done]] is true, let v be undefined. [...] 8. Return InitializeReferencedBinding(lhs, v). --- 2281 -
let-ary-ptrn-elem-obj-id-init.js --- description: BindingElement with object binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2046 -
let-ary-ptrn-elem-obj-id.js --- description: BindingElement with object binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2068 -
let-ary-ptrn-elem-obj-prop-id-init.js --- description: BindingElement with object binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2241 -
let-ary-ptrn-elem-obj-prop-id.js --- description: BindingElement with object binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2266 -
let-ary-ptrn-elem-obj-val-null.js --- description: Nested object destructuring with a null value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPattern Initializeropt 1. If iteratorRecord.[[done]] is false, then [...] e. Else i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ObjectBindingPattern 1. Let valid be RequireObjectCoercible(value). 2. ReturnIfAbrupt(valid). --- 1939 -
let-ary-ptrn-elem-obj-val-undef.js --- description: Nested object destructuring with a value of `undefined` (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPattern Initializeropt 1. If iteratorRecord.[[done]] is false, then [...] e. Else i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ObjectBindingPattern 1. Let valid be RequireObjectCoercible(value). 2. ReturnIfAbrupt(valid). --- 1946 -
let-ary-ptrn-elision-exhausted.js --- description: Elision accepts exhausted iterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elision ] 1. Return the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. 12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation Elision : , 1. If iteratorRecord.[[done]] is false, then [...] 2. Return NormalCompletion(empty). --- 1912 -
let-ary-ptrn-elision-iter-close.js --- description: The iterator is properly consumed by the destructuring pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] --- 1524 -
let-ary-ptrn-elision-step-err.js --- description: Elision advances iterator and forwards abrupt completions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elision ] 1. Return the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. 12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation Elision : , 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). --- 2141 -
let-ary-ptrn-elision.js --- description: Elision advances iterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elision ] 1. Return the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. 12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation Elision : , 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. 2. Return NormalCompletion(empty). --- 2225 -
let-ary-ptrn-empty.js --- description: No iteration occurs for an "empty" array binding pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ ] 1. Return NormalCompletion(empty). --- 1673 -
let-ary-ptrn-init-err.js --- esid: sec-iteration-statements description: > Initializer is not allowed in head's ForDeclaration position. info: | IterationStatement: for (ForDeclaration of AssignmentExpression) Statement negative: phase: parse type: SyntaxError --- 465 -
let-ary-ptrn-rest-ary-elem.js --- description: Rest element containing an array BindingElementList pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. e. Else, [...] i. Let v be IteratorValue(next). ii. If v is an abrupt completion, set iteratorRecord.[[done]] to true. iii. ReturnIfAbrupt(v). 5. If iteratorRecord.[[done]] is true, let v be undefined. [...] 8. Return InitializeReferencedBinding(lhs, v). --- 2660 -
let-ary-ptrn-rest-ary-elision.js --- description: Rest element containing an elision (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elision ] 1. Return the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. 12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation Elision : , 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. 2. Return NormalCompletion(empty). --- 2629 -
let-ary-ptrn-rest-ary-empty.js --- description: Rest element containing an "empty" array pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ ] 1. Return NormalCompletion(empty). --- 2060 -
let-ary-ptrn-rest-ary-rest.js --- description: Rest element containing a rest element (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] --- 2011 -
let-ary-ptrn-rest-id-direct.js --- description: Lone rest element (direct binding) (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] includes: [compareArray.js] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingIdentifier [...] 2. Let A be ! ArrayCreate(0). 3. Let n be 0. 4. Repeat, [...] f. Perform ! CreateDataPropertyOrThrow(A, ! ToString(n), nextValue). g. Set n to n + 1. --- 1799 -
let-ary-ptrn-rest-id-elision-next-err.js --- description: Rest element following elision elements (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elisionopt BindingRestElement ] 1. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. ReturnIfAbrupt(status). 2. Return the result of performing IteratorBindingInitialization for BindingRestElement with iteratorRecord and environment as arguments. --- 1954 -
let-ary-ptrn-rest-id-elision.js --- description: Rest element following elision elements (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elisionopt BindingRestElement ] 1. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. ReturnIfAbrupt(status). 2. Return the result of performing IteratorBindingInitialization for BindingRestElement with iteratorRecord and environment as arguments. --- 2138 -
let-ary-ptrn-rest-id-exhausted.js --- description: RestElement applied to an exhausted iterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingIdentifier 1. Let lhs be ResolveBinding(StringValue of BindingIdentifier, environment). 2. ReturnIfAbrupt(lhs). 3. Let A be ArrayCreate(0). 4. Let n=0. 5. Repeat, [...] b. If iteratorRecord.[[done]] is true, then i. If environment is undefined, return PutValue(lhs, A). ii. Return InitializeReferencedBinding(lhs, A). --- 1977 -
let-ary-ptrn-rest-id-iter-close.js --- description: The iterator is properly consumed by the destructuring pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] --- 1527 -
let-ary-ptrn-rest-id-iter-step-err.js --- description: Error forwarding when IteratorStep returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingIdentifier 1. Let lhs be ResolveBinding(StringValue of BindingIdentifier, environment). 2. ReturnIfAbrupt(lhs). 3. Let A be ArrayCreate(0). 4. Let n=0. 5. Repeat, a. If iteratorRecord.[[done]] is false, i. Let next be IteratorStep(iteratorRecord.[[iterator]]). ii. If next is an abrupt completion, set iteratorRecord.[[done]] to true. iii. ReturnIfAbrupt(next). --- 2182 -
let-ary-ptrn-rest-id-iter-val-err.js --- description: Error forwarding when IteratorValue returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingIdentifier 1. Let lhs be ResolveBinding(StringValue of BindingIdentifier, environment). 2. ReturnIfAbrupt(lhs). 3. Let A be ArrayCreate(0). 4. Let n=0. 5. Repeat, [...] c. Let nextValue be IteratorValue(next). d. If nextValue is an abrupt completion, set iteratorRecord.[[done]] to true. e. ReturnIfAbrupt(nextValue). --- 2133 -
let-ary-ptrn-rest-id.js --- description: Lone rest element (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingIdentifier [...] 3. Let A be ArrayCreate(0). [...] 5. Repeat [...] f. Let status be CreateDataProperty(A, ToString (n), nextValue). [...] --- 1859 -
let-ary-ptrn-rest-init-ary.js --- description: Rest element (nested array pattern) does not support initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1774 -
let-ary-ptrn-rest-init-id.js --- description: Rest element (identifier) does not support initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1759 -
let-ary-ptrn-rest-init-obj.js --- description: Rest element (nested object pattern) does not support initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1775 -
let-ary-ptrn-rest-not-final-ary.js --- description: Rest element (array binding pattern) may not be followed by any element (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1789 -
let-ary-ptrn-rest-not-final-id.js --- description: Rest element (identifier) may not be followed by any element (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1775 -
let-ary-ptrn-rest-not-final-obj.js --- description: Rest element (object binding pattern) may not be followed by any element (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1792 -
let-ary-ptrn-rest-obj-id.js --- description: Rest element containing an object binding pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] --- 1851 -
let-ary-ptrn-rest-obj-prop-id.js --- description: Rest element containing an object binding pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] --- 2098 -
let-obj-init-null.js --- description: Value specifed for object binding pattern must be object coercible (null) (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1506 -
let-obj-init-undefined.js --- description: Value specifed for object binding pattern must be object coercible (undefined) (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1521 -
let-obj-ptrn-empty.js --- description: No property access occurs for an "empty" object binding pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1699 -
let-obj-ptrn-id-get-value-err.js --- description: Error thrown when accessing the corresponding property of the value object (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. Let v be GetV(value, propertyName). 5. ReturnIfAbrupt(v). --- 1745 -
let-obj-ptrn-id-init-fn-name-arrow.js --- description: SingleNameBinding assigns `name` to arrow functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer 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, bindingId). --- 1968 -
let-obj-ptrn-id-init-fn-name-class.js --- description: SingleNameBinding assigns `name` to "anonymous" classes (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer 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, bindingId). --- 2107 -
let-obj-ptrn-id-init-fn-name-cover.js --- description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer 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, bindingId). --- 2082 -
let-obj-ptrn-id-init-fn-name-fn.js --- description: SingleNameBinding assigns name to "anonymous" functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer 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, bindingId). --- 2029 -
let-obj-ptrn-id-init-fn-name-gen.js --- description: SingleNameBinding assigns name to "anonymous" generator functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer 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, bindingId). --- 2061 -
let-obj-ptrn-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then [...] [...] --- 1954 -
let-obj-ptrn-id-init-throws.js --- description: Error thrown when evaluating the initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). --- 1764 -
let-obj-ptrn-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). 6.2.3.1 GetValue (V) 1. ReturnIfAbrupt(V). 2. If Type(V) is not Reference, return V. 3. Let base be GetBase(V). 4. If IsUnresolvableReference(V), throw a ReferenceError exception. --- 1944 -
let-obj-ptrn-id-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1641 -
let-obj-ptrn-init-err.js --- esid: sec-iteration-statements description: > Initializer is not allowed in head's ForDeclaration position. info: | IterationStatement: for (ForDeclaration of AssignmentExpression) Statement negative: phase: parse type: SyntaxError --- 465 -
let-obj-ptrn-list-err.js --- description: Binding property list evaluation is interrupted by an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.5 Runtime Semantics: BindingInitialization BindingPropertyList : BindingPropertyList , BindingProperty 1. Let status be the result of performing BindingInitialization for BindingPropertyList using value and environment as arguments. 2. ReturnIfAbrupt(status). --- 1822 -
let-obj-ptrn-prop-ary-init.js --- description: Object binding pattern with "nested" array binding pattern using initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 2007 -
let-obj-ptrn-prop-ary-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1653 -
let-obj-ptrn-prop-ary-value-null.js --- description: Object binding pattern with "nested" array binding pattern taking the `null` value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then [...] 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 1714 -
let-obj-ptrn-prop-ary.js --- description: Object binding pattern with "nested" array binding pattern not using initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then [...] 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 1916 -
let-obj-ptrn-prop-eval-err.js --- description: Evaluation of property name returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.5 Runtime Semantics: BindingInitialization BindingProperty : PropertyName : BindingElement 1. Let P be the result of evaluating PropertyName 2. ReturnIfAbrupt(P). --- 1637 -
let-obj-ptrn-prop-id-get-value-err.js --- description: Error thrown when accessing the corresponding property of the value object (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt 1. Let v be GetV(value, propertyName). 2. ReturnIfAbrupt(v). --- 1815 -
let-obj-ptrn-prop-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt [...] 3. If Initializer is present and v is undefined, then [...] --- 2185 -
let-obj-ptrn-prop-id-init-throws.js --- description: Error thrown when evaluating the initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt [...] 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). --- 1765 -
let-obj-ptrn-prop-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt [...] 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). 6.2.3.1 GetValue (V) 1. ReturnIfAbrupt(V). 2. If Type(V) is not Reference, return V. 3. Let base be GetBase(V). 4. If IsUnresolvableReference(V), throw a ReferenceError exception. --- 1946 -
let-obj-ptrn-prop-id-init.js --- description: Binding as specified via property name, identifier, and initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 8. Return InitializeReferencedBinding(lhs, v). --- 1715 -
let-obj-ptrn-prop-id-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1708 -
let-obj-ptrn-prop-id.js --- description: Binding as specified via property name and identifier (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 8. Return InitializeReferencedBinding(lhs, v). --- 1697 -
let-obj-ptrn-prop-obj-init.js --- description: Object binding pattern with "nested" object binding pattern using initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 2035 -
let-obj-ptrn-prop-obj-value-null.js --- description: Object binding pattern with "nested" object binding pattern taking the `null` value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then [...] 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 1728 -
let-obj-ptrn-prop-obj-value-undef.js --- description: Object binding pattern with "nested" object binding pattern taking the `null` value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then [...] 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 1710 -
let-obj-ptrn-prop-obj.js --- description: Object binding pattern with "nested" object binding pattern not using initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then [...] 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 1936 -
let-obj-ptrn-rest-getter.js --- description: Getter is called when obj is being deconstructed to a rest Object (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] --- 1672 -
let-obj-ptrn-rest-skip-non-enumerable.js --- description: Rest object doesn't contain non-enumerable properties (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] --- 1842 -
let-obj-ptrn-rest-val-obj.js --- description: Rest object contains just unextracted data (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, lexicalBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then [...] iii. Else, 1. Assert: lhsKind is lexicalBinding. 2. Assert: lhs is a ForDeclaration. 3. Let status be the result of performing BindingInitialization for lhs passing nextValue and iterationEnv as arguments. [...] --- 1801 -
obj-empty-bool.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (boolean value) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1238 -
obj-empty-null.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (null value) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1293 -
obj-empty-num.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (number value) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1232 -
obj-empty-obj.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (object value) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1233 -
obj-empty-string.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (string value) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1236 -
obj-empty-symbol.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (symbol value) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1261 -
obj-empty-undef.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (undefined value) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1304 -
obj-id-identifier-resolution-first.js --- description: Evaluation of DestructuringAssignmentTarget (first of many) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1259 -
obj-id-identifier-resolution-last.js --- description: Evaluation of DestructuringAssignmentTarget (last of many) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1257 -
obj-id-identifier-resolution-lone.js --- description: Evaluation of DestructuringAssignmentTarget (lone identifier) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1251 -
obj-id-identifier-resolution-middle.js --- description: Evaluation of DestructuringAssignmentTarget (within many) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1264 -
obj-id-identifier-resolution-trlng.js --- description: Evaluation of DestructuringAssignmentTarget (lone identifier with trailing comma) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1271 -
obj-id-identifier-yield-expr.js --- description: yield is not a valid IdentifierReference in an AssignmentProperty within generator function bodies. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated, noStrict] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1287 -
obj-id-identifier-yield-ident-invalid-strict.js --- description: yield is not a valid IdentifierReference in an AssignmentProperty within strict mode code. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1271 -
obj-id-identifier-yield-ident-valid.js --- description: yield is a valid IdentifierReference in an AssignmentProperty outside of strict mode and generator functions. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1319 -
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). (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1347 -
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). (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1350 -
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). (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1348 -
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). (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1360 -
obj-id-init-evaluation.js --- description: The Initializer should only be evaluated if v is undefined. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1345 -
obj-id-init-fn-name-arrow.js --- description: Assignment of function `name` attribute (ArrowFunction) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 1770 -
obj-id-init-fn-name-class.js --- description: Assignment of function `name` attribute (ClassExpression) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [class, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 1926 -
obj-id-init-fn-name-cover.js --- description: Assignment of function `name` attribute (CoverParenthesizedExpression) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 1876 -
obj-id-init-fn-name-fn.js --- description: Assignment of function `name` attribute (FunctionExpression) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 1834 -
obj-id-init-fn-name-gen.js --- description: Assignment of function `name` attribute (GeneratorExpression) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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). --- 1858 -
obj-id-init-in.js --- description: The Initializer in an AssignmentProperty may be an `in` expression. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1249 -
obj-id-init-let.js --- description: Value retrieval of Initializer obeys `let` semantics. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [let, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1269 -
obj-id-init-order.js --- description: Initializer values should be assigned in left-to-right order. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1308 -
obj-id-init-simple-no-strict.js --- description: Evaluation of DestructuringAssignmentTarget. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1298 -
obj-id-init-simple-strict-strict.js --- description: It is a Syntax Error if IsValidSimpleAssignmentTarget of IdentifierReference is false. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1258 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1688 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1341 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1367 -
obj-id-put-const.js --- description: The assignment target should obey `const` semantics. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [const, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1269 -
obj-id-put-let.js --- description: The assignment target should obey `let` semantics. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [let, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1254 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1363 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1353 -
obj-id-simple-no-strict.js --- description: Evaluation of DestructuringAssignmentTarget. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1308 -
obj-id-simple-strict-strict.js --- description: It is a Syntax Error if IsValidSimpleAssignmentTarget of IdentifierReference is false. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1249 -
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) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1344 -
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) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1346 -
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) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1344 -
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) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1350 -
obj-prop-elem-init-evaluation.js --- description: The Initializer should only be evaluated if v is undefined. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1485 -
obj-prop-elem-init-fn-name-arrow.js --- description: Assignment of function `name` attribute (ArrowFunction) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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)). --- 1872 -
obj-prop-elem-init-fn-name-class.js --- description: Assignment of function `name` attribute (ClassExpression) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [class, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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)). --- 2034 -
obj-prop-elem-init-fn-name-cover.js --- description: Assignment of function `name` attribute (CoverParenthesizedExpression) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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)). --- 1981 -
obj-prop-elem-init-fn-name-fn.js --- description: Assignment of function `name` attribute (FunctionExpression) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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)). --- 1939 -
obj-prop-elem-init-fn-name-gen.js --- description: Assignment of function `name` attribute (GeneratorExpression) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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)). --- 1963 -
obj-prop-elem-init-in.js --- description: The Initializer in an AssignmentElement may be an `in` expression. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1258 -
obj-prop-elem-init-let.js --- description: Value retrieval of Initializer obeys `let` semantics. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [let, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1279 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1698 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1350 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1376 -
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) (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [optional-chaining, destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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. --- 2408 -
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 (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [optional-chaining, destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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. --- 2422 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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. ... --- 3393 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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. ... --- 3372 -
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). (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] 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. ... --- 3345 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1748 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1369 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1418 -
obj-prop-identifier-resolution-first.js --- description: Evaluation of DestructuringAssignmentTarget (first of many). (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1265 -
obj-prop-identifier-resolution-last.js --- description: Evaluation of DestructuringAssignmentTarget (last of many). (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1263 -
obj-prop-identifier-resolution-lone.js --- description: Evaluation of DestructuringAssignmentTarget (lone element). (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1253 -
obj-prop-identifier-resolution-middle.js --- description: Evaluation of DestructuringAssignmentTarget (within many). (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1270 -
obj-prop-identifier-resolution-trlng.js --- description: Evaluation of DestructuringAssignmentTarget (lone element with trailing comma). (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1275 -
obj-prop-name-evaluation-error.js --- description: Any error raised as a result of evaluating PropertyName should be forwarded to the runtime. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1310 -
obj-prop-name-evaluation.js --- description: PropertyName of an AssignmentProperty may be a ComputedPropertyName. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1345 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1406 -
obj-prop-nested-array-null.js --- description: When DestructuringAssignmentTarget is an array literal and the value is `null`, a TypeError should be thrown. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1330 -
obj-prop-nested-array-undefined-own.js --- description: When DestructuringAssignmentTarget is an array literal and the value is `undefined`, a TypeError should be thrown. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1349 -
obj-prop-nested-array-undefined.js --- description: When DestructuringAssignmentTarget is an array literal and the value is not defined, a TypeError should be thrown. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1331 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1730 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1375 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1403 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1344 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1410 -
obj-prop-nested-obj-null.js --- description: When DestructuringAssignmentTarget is an object literal and the value is `null`, a TypeError should be thrown. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1329 -
obj-prop-nested-obj-undefined-own.js --- description: When DestructuringAssignmentTarget is an object literal and the value is `undefined`, a TypeError should be thrown. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1348 -
obj-prop-nested-obj-undefined.js --- description: When DestructuringAssignmentTarget is an object literal and the value is not defined, a TypeError should be thrown. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1330 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1734 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1375 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1409 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1347 -
obj-prop-put-const.js --- description: The assignment target should obey `const` semantics. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [const, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1271 -
obj-prop-put-let.js --- description: The assignment target should obey `let` semantics. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [let, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1259 -
obj-prop-put-order.js --- description: The AssignmentElements in an AssignmentElementList are evaluated in left- to-right order. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1271 -
obj-prop-put-prop-ref-no-get.js --- description: If the DestructuringAssignmentTarget of an AssignmentElement is a PropertyReference, it should not be evaluated. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1447 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1364 -
obj-prop-put-prop-ref.js --- description: The DestructuringAssignmentTarget of an AssignmentElement may be a PropertyReference. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1269 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, noStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1368 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated, onlyStrict] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1358 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated, noStrict] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1770 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1763 -
obj-rest-descriptors.js --- description: Object created from rest deconstruction doesn't copy source object property descriptors. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1690 -
obj-rest-empty-obj.js --- description: RestBindingInitialization creates a new object even if lhs is an empty object (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1352 -
obj-rest-getter-abrupt-get-error.js --- description: Rest deconstruction doesn't happen if getter return is abrupt (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1382 -
obj-rest-getter.js --- description: Getter is called when obj is being deconstructed to a rest Object (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1431 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1616 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [compareArray.js, propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1643 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1622 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1620 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [compareArray.js, propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1646 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [compareArray.js, propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1651 -
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. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1627 -
obj-rest-not-last-element-invalid.js --- description: Object rest element needs to be the last AssignmenProperty in ObjectAssignmentPattern. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1267 -
obj-rest-number.js --- description: RestBindingInitialization creates a new object even if lhs is a Number (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1333 -
obj-rest-order.js --- description: Rest operation follows [[OwnPropertyKeys]] order (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol, object-rest, destructuring-binding] flags: [generated] includes: [compareArray.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1615 -
obj-rest-put-const.js --- description: The object rest deconstruction assignment target should obey `const` semantics. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1306 -
obj-rest-same-name.js --- description: Proper setting in the values for rest name equal to a property name. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1565 -
obj-rest-skip-non-enumerable.js --- description: Rest object doesn't contain non-enumerable properties (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1646 -
obj-rest-str-val.js --- description: RestBindingInitialization creats an object with indexes as property name (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1372 -
obj-rest-symbol-val.js --- description: RestBindingInitialization creates a new object if lhs is a Symbol (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol, object-rest, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1351 -
obj-rest-to-property-with-setter.js --- description: When DestructuringAssignmentTarget is an object property setter, its value should be binded as rest object. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1585 -
obj-rest-to-property.js --- description: When DestructuringAssignmentTarget is an object property, its value should be binded as rest object. (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1468 -
obj-rest-val-null.js --- description: TypeError is thrown when rhs is null because of 7.1.13 ToObject ( argument ) used by CopyDataProperties (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1322 -
obj-rest-val-undefined.js --- description: TypeError is thrown when rhs is ```undefined``` because of 7.1.13 ToObject ( argument ) used by CopyDataProperties (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1343 -
obj-rest-valid-object.js --- description: Rest object contains just unextracted data (For..of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », AssignmentExpression, iterate). 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, keyResult, assignment, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 4. If destructuring is true and if lhsKind is assignment, then a. Assert: lhs is a LeftHandSideExpression. b. Let assignmentPattern be the parse of the source text corresponding to lhs using AssignmentPattern as the goal symbol. [...] --- 1575 -
shell.js 0 -
var-ary-init-iter-close.js --- description: Iterator is closed when not exhausted by pattern evaluation (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern [...] 4. If iteratorRecord.[[done]] is false, return ? IteratorClose(iterator, result). [...] --- 1831 -
var-ary-init-iter-get-err-array-prototype.js --- description: Abrupt completion returned by GetIterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern 1. Let iteratorRecord be ? GetIterator(value). GetIterator ( obj [ , hint [ , method ] ] ) [...] 4. Let iterator be ? Call(method, obj). Call ( F, V [ , argumentsList ] ) [...] 2. If IsCallable(F) is false, throw a TypeError exception. --- 1700 -
var-ary-init-iter-get-err.js --- description: Abrupt completion returned by GetIterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1535 -
var-ary-init-iter-no-close.js --- description: Iterator is not closed when exhausted by pattern evaluation (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern [...] 4. If iteratorRecord.[[done]] is false, return ? IteratorClose(iterator, result). [...] --- 1833 -
var-ary-name-iter-val.js --- description: SingleNameBinding with normal value iteration (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. e. Else, [...] i. Let v be IteratorValue(next). ii. If v is an abrupt completion, set iteratorRecord.[[done]] to true. iii. ReturnIfAbrupt(v). 5. If iteratorRecord.[[done]] is true, let v be undefined. [...] 8. Return InitializeReferencedBinding(lhs, v). --- 2147 -
var-ary-ptrn-elem-ary-elem-init.js --- description: BindingElement with array binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 1920 -
var-ary-ptrn-elem-ary-elem-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). [...] e. Else, i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 1891 -
var-ary-ptrn-elem-ary-elision-init.js --- description: BindingElement with array binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 1995 -
var-ary-ptrn-elem-ary-elision-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). [...] e. Else, i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 1900 -
var-ary-ptrn-elem-ary-empty-init.js --- description: BindingElement with array binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2037 -
var-ary-ptrn-elem-ary-empty-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). [...] e. Else, i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 1878 -
var-ary-ptrn-elem-ary-rest-init.js --- description: BindingElement with array binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2042 -
var-ary-ptrn-elem-ary-rest-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). [...] e. Else, i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2089 -
var-ary-ptrn-elem-ary-val-null.js --- description: Nested array destructuring with a null value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPattern Initializeropt 1. If iteratorRecord.[[done]] is false, then [...] e. Else i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1822 -
var-ary-ptrn-elem-id-init-exhausted.js --- description: Destructuring initializer with an exhausted iterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 5. If iteratorRecord.[[done]] is true, let v be undefined. 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 1847 -
var-ary-ptrn-elem-id-init-fn-name-arrow.js --- description: SingleNameBinding does assign name to arrow functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). d. If IsAnonymousFunctionDefinition(Initializer) is true, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 1915 -
var-ary-ptrn-elem-id-init-fn-name-class.js --- description: SingleNameBinding assigns `name` to "anonymous" classes (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). d. If IsAnonymousFunctionDefinition(Initializer) is true, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 2052 -
var-ary-ptrn-elem-id-init-fn-name-cover.js --- description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). d. If IsAnonymousFunctionDefinition(Initializer) is true, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 2028 -
var-ary-ptrn-elem-id-init-fn-name-fn.js --- description: SingleNameBinding assigns name to "anonymous" functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). d. If IsAnonymousFunctionDefinition(Initializer) is true, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 1974 -
var-ary-ptrn-elem-id-init-fn-name-gen.js --- description: SingleNameBinding assigns name to "anonymous" generator functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). d. If IsAnonymousFunctionDefinition(Initializer) is true, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 2006 -
var-ary-ptrn-elem-id-init-hole.js --- description: Destructuring initializer with a "hole" (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 1780 -
var-ary-ptrn-elem-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 1940 -
var-ary-ptrn-elem-id-init-throws.js --- description: Destructuring initializer returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). --- 1664 -
var-ary-ptrn-elem-id-init-undef.js --- description: Destructuring initializer with an undefined value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). [...] 7. If environment is undefined, return PutValue(lhs, v). 8. Return InitializeReferencedBinding(lhs, v). --- 1786 -
var-ary-ptrn-elem-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). 6.2.3.1 GetValue (V) 1. ReturnIfAbrupt(V). 2. If Type(V) is not Reference, return V. 3. Let base be GetBase(V). 4. If IsUnresolvableReference(V), throw a ReferenceError exception. --- 1844 -
var-ary-ptrn-elem-id-iter-complete.js --- description: SingleNameBinding when value iteration completes (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. e. Else, [...] 5. If iteratorRecord.[[done]] is true, let v be undefined. [...] 8. Return InitializeReferencedBinding(lhs, v). --- 1934 -
var-ary-ptrn-elem-id-iter-done.js --- description: SingleNameBinding when value iteration was completed previously (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then [...] 5. If iteratorRecord.[[done]] is true, let v be undefined. [...] 8. Return InitializeReferencedBinding(lhs, v). --- 1687 -
var-ary-ptrn-elem-id-iter-step-err.js --- description: Error forwarding when IteratorStep returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). --- 1790 -
var-ary-ptrn-elem-id-iter-val-array-prototype.js --- description: Array destructuring uses overriden Array.prototype[Symbol.iterator] (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializer_opt 1. Let bindingId be StringValue of BindingIdentifier. 2. Let lhs be ? ResolveBinding(bindingId, environment). 3. If iteratorRecord.[[Done]] is false, then a. Let next be IteratorStep(iteratorRecord). b. If next is an abrupt completion, set iteratorRecord.[[Done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[Done]] to true. e. Else, i. Let v be IteratorValue(next). ii. If v is an abrupt completion, set iteratorRecord.[[Done]] to true. iii. ReturnIfAbrupt(v). [...] 7. Return InitializeReferencedBinding(lhs, v). --- 2445 -
var-ary-ptrn-elem-id-iter-val-err.js --- description: Error forwarding when IteratorValue returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. e. Else, i. Let v be IteratorValue(next). ii. If v is an abrupt completion, set iteratorRecord.[[done]] to true. iii. ReturnIfAbrupt(v). --- 2154 -
var-ary-ptrn-elem-id-iter-val.js --- description: SingleNameBinding when value iteration was completed previously (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. e. Else, [...] i. Let v be IteratorValue(next). ii. If v is an abrupt completion, set iteratorRecord.[[done]] to true. iii. ReturnIfAbrupt(v). 5. If iteratorRecord.[[done]] is true, let v be undefined. [...] 8. Return InitializeReferencedBinding(lhs, v). --- 2173 -
var-ary-ptrn-elem-obj-id-init.js --- description: BindingElement with object binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 1938 -
var-ary-ptrn-elem-obj-id.js --- description: BindingElement with object binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 1960 -
var-ary-ptrn-elem-obj-prop-id-init.js --- description: BindingElement with object binding pattern and initializer is used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2133 -
var-ary-ptrn-elem-obj-prop-id.js --- description: BindingElement with object binding pattern and initializer is not used (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPatternInitializer opt [...] 2. If iteratorRecord.[[done]] is true, let v be undefined. 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be ? GetValue(defaultValue). 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. --- 2158 -
var-ary-ptrn-elem-obj-val-null.js --- description: Nested object destructuring with a null value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPattern Initializeropt 1. If iteratorRecord.[[done]] is false, then [...] e. Else i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ObjectBindingPattern 1. Let valid be RequireObjectCoercible(value). 2. ReturnIfAbrupt(valid). --- 1831 -
var-ary-ptrn-elem-obj-val-undef.js --- description: Nested object destructuring with a value of `undefined` (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingElement : BindingPattern Initializeropt 1. If iteratorRecord.[[done]] is false, then [...] e. Else i. Let v be IteratorValue(next). [...] 4. Return the result of performing BindingInitialization of BindingPattern with v and environment as the arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ObjectBindingPattern 1. Let valid be RequireObjectCoercible(value). 2. ReturnIfAbrupt(valid). --- 1838 -
var-ary-ptrn-elision-exhausted.js --- description: Elision accepts exhausted iterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elision ] 1. Return the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. 12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation Elision : , 1. If iteratorRecord.[[done]] is false, then [...] 2. Return NormalCompletion(empty). --- 1804 -
var-ary-ptrn-elision-iter-close.js --- description: The iterator is properly consumed by the destructuring pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] --- 1416 -
var-ary-ptrn-elision-step-err.js --- description: Elision advances iterator and forwards abrupt completions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elision ] 1. Return the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. 12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation Elision : , 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). --- 2033 -
var-ary-ptrn-elision.js --- description: Elision advances iterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elision ] 1. Return the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. 12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation Elision : , 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. 2. Return NormalCompletion(empty). --- 2117 -
var-ary-ptrn-empty.js --- description: No iteration occurs for an "empty" array binding pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ ] 1. Return NormalCompletion(empty). --- 1565 -
var-ary-ptrn-init-err.js --- esid: sec-iteration-statements description: > Initializer is not allowed in head's ForBinding position. info: | IterationStatement: for (var ForBinding of AssignmentExpression) Statement negative: phase: parse type: SyntaxError --- 461 -
var-ary-ptrn-rest-ary-elem.js --- description: Rest element containing an array BindingElementList pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. e. Else, [...] i. Let v be IteratorValue(next). ii. If v is an abrupt completion, set iteratorRecord.[[done]] to true. iii. ReturnIfAbrupt(v). 5. If iteratorRecord.[[done]] is true, let v be undefined. [...] 8. Return InitializeReferencedBinding(lhs, v). --- 2552 -
var-ary-ptrn-rest-ary-elision.js --- description: Rest element containing an elision (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elision ] 1. Return the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. 12.14.5.3 Runtime Semantics: IteratorDestructuringAssignmentEvaluation Elision : , 1. If iteratorRecord.[[done]] is false, then a. Let next be IteratorStep(iteratorRecord.[[iterator]]). b. If next is an abrupt completion, set iteratorRecord.[[done]] to true. c. ReturnIfAbrupt(next). d. If next is false, set iteratorRecord.[[done]] to true. 2. Return NormalCompletion(empty). --- 2521 -
var-ary-ptrn-rest-ary-empty.js --- description: Rest element containing an "empty" array pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ ] 1. Return NormalCompletion(empty). --- 1952 -
var-ary-ptrn-rest-ary-rest.js --- description: Rest element containing a rest element (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] --- 1903 -
var-ary-ptrn-rest-id-direct.js --- description: Lone rest element (direct binding) (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] includes: [compareArray.js] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingIdentifier [...] 2. Let A be ! ArrayCreate(0). 3. Let n be 0. 4. Repeat, [...] f. Perform ! CreateDataPropertyOrThrow(A, ! ToString(n), nextValue). g. Set n to n + 1. --- 1691 -
var-ary-ptrn-rest-id-elision-next-err.js --- description: Rest element following elision elements (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elisionopt BindingRestElement ] 1. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. ReturnIfAbrupt(status). 2. Return the result of performing IteratorBindingInitialization for BindingRestElement with iteratorRecord and environment as arguments. --- 1846 -
var-ary-ptrn-rest-id-elision.js --- description: Rest element following elision elements (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ Elisionopt BindingRestElement ] 1. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. ReturnIfAbrupt(status). 2. Return the result of performing IteratorBindingInitialization for BindingRestElement with iteratorRecord and environment as arguments. --- 2030 -
var-ary-ptrn-rest-id-exhausted.js --- description: RestElement applied to an exhausted iterator (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingIdentifier 1. Let lhs be ResolveBinding(StringValue of BindingIdentifier, environment). 2. ReturnIfAbrupt(lhs). 3. Let A be ArrayCreate(0). 4. Let n=0. 5. Repeat, [...] b. If iteratorRecord.[[done]] is true, then i. If environment is undefined, return PutValue(lhs, A). ii. Return InitializeReferencedBinding(lhs, A). --- 1869 -
var-ary-ptrn-rest-id-iter-close.js --- description: The iterator is properly consumed by the destructuring pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] --- 1419 -
var-ary-ptrn-rest-id-iter-step-err.js --- description: Error forwarding when IteratorStep returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingIdentifier 1. Let lhs be ResolveBinding(StringValue of BindingIdentifier, environment). 2. ReturnIfAbrupt(lhs). 3. Let A be ArrayCreate(0). 4. Let n=0. 5. Repeat, a. If iteratorRecord.[[done]] is false, i. Let next be IteratorStep(iteratorRecord.[[iterator]]). ii. If next is an abrupt completion, set iteratorRecord.[[done]] to true. iii. ReturnIfAbrupt(next). --- 2074 -
var-ary-ptrn-rest-id-iter-val-err.js --- description: Error forwarding when IteratorValue returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingIdentifier 1. Let lhs be ResolveBinding(StringValue of BindingIdentifier, environment). 2. ReturnIfAbrupt(lhs). 3. Let A be ArrayCreate(0). 4. Let n=0. 5. Repeat, [...] c. Let nextValue be IteratorValue(next). d. If nextValue is an abrupt completion, set iteratorRecord.[[done]] to true. e. ReturnIfAbrupt(nextValue). --- 2025 -
var-ary-ptrn-rest-id.js --- description: Lone rest element (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingIdentifier [...] 3. Let A be ArrayCreate(0). [...] 5. Repeat [...] f. Let status be CreateDataProperty(A, ToString (n), nextValue). [...] --- 1751 -
var-ary-ptrn-rest-init-ary.js --- description: Rest element (nested array pattern) does not support initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1666 -
var-ary-ptrn-rest-init-id.js --- description: Rest element (identifier) does not support initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1651 -
var-ary-ptrn-rest-init-obj.js --- description: Rest element (nested object pattern) does not support initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1667 -
var-ary-ptrn-rest-not-final-ary.js --- description: Rest element (array binding pattern) may not be followed by any element (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1681 -
var-ary-ptrn-rest-not-final-id.js --- description: Rest element (identifier) may not be followed by any element (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1667 -
var-ary-ptrn-rest-not-final-obj.js --- description: Rest element (object binding pattern) may not be followed by any element (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1684 -
var-ary-ptrn-rest-obj-id.js --- description: Rest element containing an object binding pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] --- 1743 -
var-ary-ptrn-rest-obj-prop-id.js --- description: Rest element containing an object binding pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.6 Runtime Semantics: IteratorBindingInitialization BindingRestElement : ... BindingPattern 1. Let A be ArrayCreate(0). [...] 3. Repeat [...] b. If iteratorRecord.[[done]] is true, then i. Return the result of performing BindingInitialization of BindingPattern with A and environment as the arguments. [...] --- 1990 -
var-obj-init-null.js --- description: Value specifed for object binding pattern must be object coercible (null) (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1398 -
var-obj-init-undefined.js --- description: Value specifed for object binding pattern must be object coercible (undefined) (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1413 -
var-obj-ptrn-empty.js --- description: No property access occurs for an "empty" object binding pattern (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1591 -
var-obj-ptrn-id-get-value-err.js --- description: Error thrown when accessing the corresponding property of the value object (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. Let v be GetV(value, propertyName). 5. ReturnIfAbrupt(v). --- 1637 -
var-obj-ptrn-id-init-fn-name-arrow.js --- description: SingleNameBinding assigns `name` to arrow functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer 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, bindingId). --- 1860 -
var-obj-ptrn-id-init-fn-name-class.js --- description: SingleNameBinding assigns `name` to "anonymous" classes (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer 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, bindingId). --- 1999 -
var-obj-ptrn-id-init-fn-name-cover.js --- description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer 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, bindingId). --- 1974 -
var-obj-ptrn-id-init-fn-name-fn.js --- description: SingleNameBinding assigns name to "anonymous" functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer 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, bindingId). --- 1921 -
var-obj-ptrn-id-init-fn-name-gen.js --- description: SingleNameBinding assigns name to "anonymous" generator functions (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer 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, bindingId). --- 1953 -
var-obj-ptrn-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then [...] [...] --- 1846 -
var-obj-ptrn-id-init-throws.js --- description: Error thrown when evaluating the initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). --- 1656 -
var-obj-ptrn-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). 6.2.3.1 GetValue (V) 1. ReturnIfAbrupt(V). 2. If Type(V) is not Reference, return V. 3. Let base be GetBase(V). 4. If IsUnresolvableReference(V), throw a ReferenceError exception. --- 1836 -
var-obj-ptrn-id-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1533 -
var-obj-ptrn-init-err.js --- esid: sec-iteration-statements description: > Initializer is not allowed in head's ForBinding position. info: | IterationStatement: for (var ForBinding of AssignmentExpression) Statement negative: phase: parse type: SyntaxError --- 461 -
var-obj-ptrn-list-err.js --- description: Binding property list evaluation is interrupted by an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.5 Runtime Semantics: BindingInitialization BindingPropertyList : BindingPropertyList , BindingProperty 1. Let status be the result of performing BindingInitialization for BindingPropertyList using value and environment as arguments. 2. ReturnIfAbrupt(status). --- 1714 -
var-obj-ptrn-prop-ary-init.js --- description: Object binding pattern with "nested" array binding pattern using initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 1899 -
var-obj-ptrn-prop-ary-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1545 -
var-obj-ptrn-prop-ary-value-null.js --- description: Object binding pattern with "nested" array binding pattern taking the `null` value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then [...] 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 1606 -
var-obj-ptrn-prop-ary.js --- description: Object binding pattern with "nested" array binding pattern not using initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then [...] 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 1808 -
var-obj-ptrn-prop-eval-err.js --- description: Evaluation of property name returns an abrupt completion (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.5 Runtime Semantics: BindingInitialization BindingProperty : PropertyName : BindingElement 1. Let P be the result of evaluating PropertyName 2. ReturnIfAbrupt(P). --- 1529 -
var-obj-ptrn-prop-id-get-value-err.js --- description: Error thrown when accessing the corresponding property of the value object (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt 1. Let v be GetV(value, propertyName). 2. ReturnIfAbrupt(v). --- 1707 -
var-obj-ptrn-prop-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt [...] 3. If Initializer is present and v is undefined, then [...] --- 2077 -
var-obj-ptrn-prop-id-init-throws.js --- description: Error thrown when evaluating the initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt [...] 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). --- 1657 -
var-obj-ptrn-prop-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt [...] 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). 6.2.3.1 GetValue (V) 1. ReturnIfAbrupt(V). 2. If Type(V) is not Reference, return V. 3. Let base be GetBase(V). 4. If IsUnresolvableReference(V), throw a ReferenceError exception. --- 1838 -
var-obj-ptrn-prop-id-init.js --- description: Binding as specified via property name, identifier, and initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 8. Return InitializeReferencedBinding(lhs, v). --- 1607 -
var-obj-ptrn-prop-id-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1600 -
var-obj-ptrn-prop-id.js --- description: Binding as specified via property name and identifier (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 8. Return InitializeReferencedBinding(lhs, v). --- 1589 -
var-obj-ptrn-prop-obj-init.js --- description: Object binding pattern with "nested" object binding pattern using initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then a. Let defaultValue be the result of evaluating Initializer. b. Let v be GetValue(defaultValue). c. ReturnIfAbrupt(v). 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 1927 -
var-obj-ptrn-prop-obj-value-null.js --- description: Object binding pattern with "nested" object binding pattern taking the `null` value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then [...] 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 1620 -
var-obj-ptrn-prop-obj-value-undef.js --- description: Object binding pattern with "nested" object binding pattern taking the `null` value (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then [...] 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 1602 -
var-obj-ptrn-prop-obj.js --- description: Object binding pattern with "nested" object binding pattern not using initializer (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] 13.3.3.7 Runtime Semantics: KeyedBindingInitialization [...] 3. If Initializer is present and v is undefined, then [...] 4. Return the result of performing BindingInitialization for BindingPattern passing v and environment as arguments. --- 1828 -
var-obj-ptrn-rest-getter.js --- description: Getter is called when obj is being deconstructed to a rest Object (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] --- 1564 -
var-obj-ptrn-rest-skip-non-enumerable.js --- description: Rest object doesn't contain non-enumerable properties (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] --- 1734 -
var-obj-ptrn-rest-val-obj.js --- description: Rest object contains just unextracted data (for-of statement) esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement [...] 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, varBinding, labelSet). 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation [...] 3. Let destructuring be IsDestructuring of lhs. [...] 5. Repeat [...] h. If destructuring is false, then [...] i. Else i. If lhsKind is assignment, then [...] ii. Else if lhsKind is varBinding, then 1. Assert: lhs is a ForBinding. 2. Let status be the result of performing BindingInitialization for lhs passing nextValue and undefined as the arguments. [...] --- 1693 -