Name Description Size Coverage
12.6.3_2-3-a-ii-1.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-1 description: > The for Statement - (normal, V, empty) will be returned when first Expression is an Object with value false --- 685 -
12.6.3_2-3-a-ii-2.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-2 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a Boolean object --- 684 -
12.6.3_2-3-a-ii-3.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-3 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a Number object (value is NaN) --- 693 -
12.6.3_2-3-a-ii-4.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-4 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a Number object (value is +0) --- 691 -
12.6.3_2-3-a-ii-5.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-5 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a Number object (value is -0) --- 691 -
12.6.3_2-3-a-ii-6.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-6 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a Number object (value is a positive) --- 699 -
12.6.3_2-3-a-ii-7.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-7 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a String object (value is empty string) --- 701 -
12.6.3_2-3-a-ii-8.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-8 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a String object (value is 'undefined') --- 709 -
12.6.3_2-3-a-ii-9.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-9 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a String object (value is 'null') --- 699 -
12.6.3_2-3-a-ii-10.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-10 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a String object (value is '1') --- 694 -
12.6.3_2-3-a-ii-11.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-11 description: > The for Statement - (normal, V, empty) will be returned when first Expression is undefined --- 602 -
12.6.3_2-3-a-ii-12.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-12 description: > The for Statement - (normal, V, empty) will be returned when first Expression is null --- 592 -
12.6.3_2-3-a-ii-13.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-13 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a boolean (value is false) --- 615 -
12.6.3_2-3-a-ii-14.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-14 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a number (value is NaN) --- 610 -
12.6.3_2-3-a-ii-15.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-15 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a number (value is +0) --- 608 -
12.6.3_2-3-a-ii-16.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-16 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a number (value is -0) --- 608 -
12.6.3_2-3-a-ii-17.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-17 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a number (value is a positive) --- 651 -
12.6.3_2-3-a-ii-18.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-18 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a string (value is empty string) --- 618 -
12.6.3_2-3-a-ii-19.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-19 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a string (value is 'undefined') --- 662 -
12.6.3_2-3-a-ii-20.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-20 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a string (value is 'null') --- 652 -
12.6.3_2-3-a-ii-21.js --- info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement is evaluated as follows: es5id: 12.6.3_2-3-a-ii-21 description: > The for Statement - (normal, V, empty) will be returned when first Expression is a string (value is '1') --- 646 -
cptn-decl-expr-iter.js --- es6id: 13.7.4.7 description: > Completion value when head has a declaration and a "test" expression and iteration occurs info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(varDcl). 3. Return ForBodyEvaluation(the first Expression, the second Expression, Statement, « », labelSet). 13.7.4.8 Runtime Semantics: ForBodyEvaluation 1. Let V = undefined. [...] 4. Repeat a. If test is not [empty], then i. Let testRef be the result of evaluating test. ii. Let testValue be GetValue(testRef). iii. ReturnIfAbrupt(testValue). iv. If ToBoolean(testValue) is false, return NormalCompletion(V). --- 1153 -
cptn-decl-expr-no-iter.js --- es6id: 13.7.4.7 description: > Completion value when head has a declaration and a "test" expression and no iteration occurs info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(varDcl). 3. Return ForBodyEvaluation(the first Expression, the second Expression, Statement, « », labelSet). 13.7.4.8 Runtime Semantics: ForBodyEvaluation 1. Let V = undefined. [...] 4. Repeat a. If test is not [empty], then i. Let testRef be the result of evaluating test. ii. Let testValue be GetValue(testRef). iii. ReturnIfAbrupt(testValue). iv. If ToBoolean(testValue) is false, return NormalCompletion(V). --- 1130 -
cptn-expr-expr-iter.js --- es6id: 13.7.4.7 description: > Completion value when head has no declaration and a "test" expression and iteration occurs info: | IterationStatement : for ( Expressionopt ; Expressionopt ; Expressionopt ) Statement 1. If the first Expression is present, then a. Let exprRef be the result of evaluating the first Expression. b. Let exprValue be GetValue(exprRef). c. ReturnIfAbrupt(exprValue). 2. Return ForBodyEvaluation(the second Expression, the third Expression, Statement, « », labelSet). 13.7.4.8 Runtime Semantics: ForBodyEvaluation 1. Let V = undefined. [...] 4. Repeat a. If test is not [empty], then i. Let testRef be the result of evaluating test. ii. Let testValue be GetValue(testRef). iii. ReturnIfAbrupt(testValue). iv. If ToBoolean(testValue) is false, return NormalCompletion(V). --- 1257 -
cptn-expr-expr-no-iter.js --- es6id: 13.7.4.7 description: > Completion value when head has no declaration and a "test" expression and no iteration occurs info: | IterationStatement : for ( Expressionopt ; Expressionopt ; Expressionopt ) Statement 1. If the first Expression is present, then a. Let exprRef be the result of evaluating the first Expression. b. Let exprValue be GetValue(exprRef). c. ReturnIfAbrupt(exprValue). 2. Return ForBodyEvaluation(the second Expression, the third Expression, Statement, « », labelSet). 13.7.4.8 Runtime Semantics: ForBodyEvaluation 1. Let V = undefined. [...] 4. Repeat a. If test is not [empty], then i. Let testRef be the result of evaluating test. ii. Let testValue be GetValue(testRef). iii. ReturnIfAbrupt(testValue). iv. If ToBoolean(testValue) is false, return NormalCompletion(V). --- 1194 -
decl-async-fun.js --- esid: sec-for-statement description: > AsyncFunctionDeclaration is not allowed in statement position info: | ExpressionStatement[Yield, Await] : [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: phase: parse type: SyntaxError features: [async-functions] --- 593 -
decl-async-gen.js --- esid: sec-for-statement description: > AsyncGeneratorDeclaration is not allowed in statement position info: | ExpressionStatement[Yield, Await] : [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: phase: parse type: SyntaxError features: [async-iteration] --- 595 -
decl-cls.js --- description: Class declaration not allowed in statement position esid: sec-for-statement es6id: 13.7.4 negative: phase: parse type: SyntaxError --- 386 -
decl-const.js --- description: Lexical declaration (const) not allowed in statement position esid: sec-for-statement es6id: 13.7.4 negative: phase: parse type: SyntaxError --- 401 -
decl-fun.js --- description: Function declaration not allowed in statement position esid: sec-for-statement es6id: 13.7.4 negative: phase: parse type: SyntaxError --- 394 -
decl-gen.js --- description: Generator declaration not allowed in statement position esid: sec-for-statement es6id: 13.7.4 negative: phase: parse type: SyntaxError features: [generators] --- 419 -
decl-let.js --- description: Lexical declaration (let) not allowed in statement position esid: sec-for-statement es6id: 13.7.4 negative: phase: parse type: SyntaxError --- 390 -
dstr-const-ary-init-iter-close.js --- description: Iterator is closed when not exhausted by pattern evaluation (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern [...] 4. If iteratorRecord.[[done]] is false, return ? IteratorClose(iterator, result). [...] --- 1984 -
dstr-const-ary-init-iter-get-err.js --- description: Abrupt completion returned by GetIterator (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1675 -
dstr-const-ary-init-iter-no-close.js --- description: Iterator is not closed when exhausted by pattern evaluation (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern [...] 4. If iteratorRecord.[[done]] is false, return ? IteratorClose(iterator, result). [...] --- 1986 -
dstr-const-ary-name-iter-val.js --- description: SingleNameBinding with normal value iteration (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2300 -
dstr-const-ary-ptrn-elem-ary-elem-init.js --- description: BindingElement with array binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2073 -
dstr-const-ary-ptrn-elem-ary-elem-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2044 -
dstr-const-ary-ptrn-elem-ary-elision-init.js --- description: BindingElement with array binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2148 -
dstr-const-ary-ptrn-elem-ary-elision-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2053 -
dstr-const-ary-ptrn-elem-ary-empty-init.js --- description: BindingElement with array binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2190 -
dstr-const-ary-ptrn-elem-ary-empty-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2031 -
dstr-const-ary-ptrn-elem-ary-rest-init.js --- description: BindingElement with array binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2195 -
dstr-const-ary-ptrn-elem-ary-rest-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2242 -
dstr-const-ary-ptrn-elem-ary-val-null.js --- description: Nested array destructuring with a null value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1962 -
dstr-const-ary-ptrn-elem-id-init-exhausted.js --- description: Destructuring initializer with an exhausted iterator (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2000 -
dstr-const-ary-ptrn-elem-id-init-fn-name-arrow.js --- description: SingleNameBinding does assign name to arrow functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2068 -
dstr-const-ary-ptrn-elem-id-init-fn-name-class.js --- description: SingleNameBinding assigns `name` to "anonymous" classes (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2205 -
dstr-const-ary-ptrn-elem-id-init-fn-name-cover.js --- description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2181 -
dstr-const-ary-ptrn-elem-id-init-fn-name-fn.js --- description: SingleNameBinding assigns name to "anonymous" functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2127 -
dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js --- description: SingleNameBinding assigns name to "anonymous" generator functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2159 -
dstr-const-ary-ptrn-elem-id-init-hole.js --- description: Destructuring initializer with a "hole" (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1933 -
dstr-const-ary-ptrn-elem-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2093 -
dstr-const-ary-ptrn-elem-id-init-throws.js --- description: Destructuring initializer returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1804 -
dstr-const-ary-ptrn-elem-id-init-undef.js --- description: Destructuring initializer with an undefined value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1939 -
dstr-const-ary-ptrn-elem-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1984 -
dstr-const-ary-ptrn-elem-id-iter-complete.js --- description: SingleNameBinding when value iteration completes (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2087 -
dstr-const-ary-ptrn-elem-id-iter-done.js --- description: SingleNameBinding when value iteration was completed previously (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1840 -
dstr-const-ary-ptrn-elem-id-iter-step-err.js --- description: Error forwarding when IteratorStep returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1930 -
dstr-const-ary-ptrn-elem-id-iter-val-err.js --- description: Error forwarding when IteratorValue returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2294 -
dstr-const-ary-ptrn-elem-id-iter-val.js --- description: SingleNameBinding when value iteration was completed previously (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2326 -
dstr-const-ary-ptrn-elem-obj-id-init.js --- description: BindingElement with object binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2091 -
dstr-const-ary-ptrn-elem-obj-id.js --- description: BindingElement with object binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2113 -
dstr-const-ary-ptrn-elem-obj-prop-id-init.js --- description: BindingElement with object binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2286 -
dstr-const-ary-ptrn-elem-obj-prop-id.js --- description: BindingElement with object binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2311 -
dstr-const-ary-ptrn-elem-obj-val-null.js --- description: Nested object destructuring with a null value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1971 -
dstr-const-ary-ptrn-elem-obj-val-undef.js --- description: Nested object destructuring with a value of `undefined` (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1978 -
dstr-const-ary-ptrn-elision-exhausted.js --- description: Elision accepts exhausted iterator (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1957 -
dstr-const-ary-ptrn-elision-iter-close.js --- description: The iterator is properly consumed by the destructuring pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. --- 1555 -
dstr-const-ary-ptrn-elision-step-err.js --- description: Elision advances iterator and forwards abrupt completions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2173 -
dstr-const-ary-ptrn-elision.js --- description: Elision advances iterator (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2270 -
dstr-const-ary-ptrn-empty.js --- description: No iteration occurs for an "empty" array binding pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ ] 1. Return NormalCompletion(empty). --- 1718 -
dstr-const-ary-ptrn-rest-ary-elem.js --- description: Rest element containing an array BindingElementList pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2705 -
dstr-const-ary-ptrn-rest-ary-elision.js --- description: Rest element containing an elision (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2674 -
dstr-const-ary-ptrn-rest-ary-empty.js --- description: Rest element containing an "empty" array pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2105 -
dstr-const-ary-ptrn-rest-ary-rest.js --- description: Rest element containing a rest element (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. [...] --- 2056 -
dstr-const-ary-ptrn-rest-id-elision-next-err.js --- description: Rest element following elision elements (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1986 -
dstr-const-ary-ptrn-rest-id-elision.js --- description: Rest element following elision elements (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2183 -
dstr-const-ary-ptrn-rest-id-exhausted.js --- description: RestElement applied to an exhausted iterator (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2022 -
dstr-const-ary-ptrn-rest-id-iter-close.js --- description: The iterator is properly consumed by the destructuring pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. --- 1558 -
dstr-const-ary-ptrn-rest-id-iter-step-err.js --- description: Error forwarding when IteratorStep returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2214 -
dstr-const-ary-ptrn-rest-id-iter-val-err.js --- description: Error forwarding when IteratorValue returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2165 -
dstr-const-ary-ptrn-rest-id.js --- description: Lone rest element (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). [...] --- 1904 -
dstr-const-ary-ptrn-rest-init-ary.js --- description: Reset element (nested array pattern) does not support initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1851 -
dstr-const-ary-ptrn-rest-init-id.js --- description: Reset element (identifier) does not support initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1836 -
dstr-const-ary-ptrn-rest-init-obj.js --- description: Reset element (nested object pattern) does not support initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1852 -
dstr-const-ary-ptrn-rest-not-final-ary.js --- description: Rest element (array binding pattern) may not be followed by any element (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1865 -
dstr-const-ary-ptrn-rest-not-final-id.js --- description: Rest element (identifier) may not be followed by any element (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1851 -
dstr-const-ary-ptrn-rest-not-final-obj.js --- description: Rest element (object binding pattern) may not be followed by any element (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1868 -
dstr-const-ary-ptrn-rest-obj-id.js --- description: Rest element containing an object binding pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. [...] --- 1896 -
dstr-const-ary-ptrn-rest-obj-prop-id.js --- description: Rest element containing an object binding pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. [...] --- 2143 -
dstr-const-obj-init-null.js --- description: Value specifed for object binding pattern must be object coercible (null) (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1538 -
dstr-const-obj-init-undefined.js --- description: Value specifed for object binding pattern must be object coercible (undefined) (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1553 -
dstr-const-obj-ptrn-empty.js --- description: No property access occurs for an "empty" object binding pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1744 -
dstr-const-obj-ptrn-id-get-value-err.js --- description: Error thrown when accessing the corresponding property of the value object (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. Let v be GetV(value, propertyName). 5. ReturnIfAbrupt(v). --- 1777 -
dstr-const-obj-ptrn-id-init-fn-name-arrow.js --- description: SingleNameBinding assigns `name` to arrow functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2013 -
dstr-const-obj-ptrn-id-init-fn-name-class.js --- description: SingleNameBinding assigns `name` to "anonymous" classes (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2152 -
dstr-const-obj-ptrn-id-init-fn-name-cover.js --- description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2127 -
dstr-const-obj-ptrn-id-init-fn-name-fn.js --- description: SingleNameBinding assigns name to "anonymous" functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2074 -
dstr-const-obj-ptrn-id-init-fn-name-gen.js --- description: SingleNameBinding assigns name to "anonymous" generator functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2106 -
dstr-const-obj-ptrn-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then [...] [...] --- 1999 -
dstr-const-obj-ptrn-id-init-throws.js --- description: Error thrown when evaluating the initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1796 -
dstr-const-obj-ptrn-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1976 -
dstr-const-obj-ptrn-id-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1686 -
dstr-const-obj-ptrn-list-err.js --- description: Binding property list evaluation is interrupted by an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1854 -
dstr-const-obj-ptrn-prop-ary-init.js --- description: Object binding pattern with "nested" array binding pattern using initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2052 -
dstr-const-obj-ptrn-prop-ary-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1698 -
dstr-const-obj-ptrn-prop-ary-value-null.js --- description: Object binding pattern with "nested" array binding pattern taking the `null` value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1746 -
dstr-const-obj-ptrn-prop-ary.js --- description: Object binding pattern with "nested" array binding pattern not using initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1961 -
dstr-const-obj-ptrn-prop-eval-err.js --- description: Evaluation of property name returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1669 -
dstr-const-obj-ptrn-prop-id-get-value-err.js --- description: Error thrown when accessing the corresponding property of the value object (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt 1. Let v be GetV(value, propertyName). 2. ReturnIfAbrupt(v). --- 1847 -
dstr-const-obj-ptrn-prop-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt [...] 3. If Initializer is present and v is undefined, then [...] --- 2230 -
dstr-const-obj-ptrn-prop-id-init-throws.js --- description: Error thrown when evaluating the initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1797 -
dstr-const-obj-ptrn-prop-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1978 -
dstr-const-obj-ptrn-prop-id-init.js --- description: Binding as specified via property name, identifier, and initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 8. Return InitializeReferencedBinding(lhs, v). --- 1760 -
dstr-const-obj-ptrn-prop-id-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1753 -
dstr-const-obj-ptrn-prop-id.js --- description: Binding as specified via property name and identifier (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 8. Return InitializeReferencedBinding(lhs, v). --- 1742 -
dstr-const-obj-ptrn-prop-obj-init.js --- description: Object binding pattern with "nested" object binding pattern using initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2080 -
dstr-const-obj-ptrn-prop-obj-value-null.js --- description: Object binding pattern with "nested" object binding pattern taking the `null` value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1760 -
dstr-const-obj-ptrn-prop-obj-value-undef.js --- description: Object binding pattern with "nested" object binding pattern taking the `null` value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1742 -
dstr-const-obj-ptrn-prop-obj.js --- description: Object binding pattern with "nested" object binding pattern not using initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1981 -
dstr-const-obj-ptrn-rest-getter.js --- description: Getter is called when obj is being deconstructed to a rest Object (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. --- 1717 -
dstr-const-obj-ptrn-rest-skip-non-enumerable.js --- description: Rest object doesn't contain non-enumerable properties (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. --- 1887 -
dstr-const-obj-ptrn-rest-val-obj.js --- description: Rest object contains just unextracted data (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. --- 1846 -
dstr-let-ary-init-iter-close.js --- description: Iterator is closed when not exhausted by pattern evaluation (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern [...] 4. If iteratorRecord.[[done]] is false, return ? IteratorClose(iterator, result). [...] --- 1980 -
dstr-let-ary-init-iter-get-err.js --- description: Abrupt completion returned by GetIterator (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1671 -
dstr-let-ary-init-iter-no-close.js --- description: Iterator is not closed when exhausted by pattern evaluation (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern [...] 4. If iteratorRecord.[[done]] is false, return ? IteratorClose(iterator, result). [...] --- 1982 -
dstr-let-ary-name-iter-val.js --- description: SingleNameBinding with normal value iteration (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2296 -
dstr-let-ary-ptrn-elem-ary-elem-init.js --- description: BindingElement with array binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2069 -
dstr-let-ary-ptrn-elem-ary-elem-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2040 -
dstr-let-ary-ptrn-elem-ary-elision-init.js --- description: BindingElement with array binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2144 -
dstr-let-ary-ptrn-elem-ary-elision-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2049 -
dstr-let-ary-ptrn-elem-ary-empty-init.js --- description: BindingElement with array binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2186 -
dstr-let-ary-ptrn-elem-ary-empty-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2027 -
dstr-let-ary-ptrn-elem-ary-rest-init.js --- description: BindingElement with array binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2191 -
dstr-let-ary-ptrn-elem-ary-rest-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2238 -
dstr-let-ary-ptrn-elem-ary-val-null.js --- description: Nested array destructuring with a null value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1958 -
dstr-let-ary-ptrn-elem-id-init-exhausted.js --- description: Destructuring initializer with an exhausted iterator (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1996 -
dstr-let-ary-ptrn-elem-id-init-fn-name-arrow.js --- description: SingleNameBinding does assign name to arrow functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2064 -
dstr-let-ary-ptrn-elem-id-init-fn-name-class.js --- description: SingleNameBinding assigns `name` to "anonymous" classes (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2201 -
dstr-let-ary-ptrn-elem-id-init-fn-name-cover.js --- description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2177 -
dstr-let-ary-ptrn-elem-id-init-fn-name-fn.js --- description: SingleNameBinding assigns name to "anonymous" functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2123 -
dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js --- description: SingleNameBinding assigns name to "anonymous" generator functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2155 -
dstr-let-ary-ptrn-elem-id-init-hole.js --- description: Destructuring initializer with a "hole" (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1929 -
dstr-let-ary-ptrn-elem-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2089 -
dstr-let-ary-ptrn-elem-id-init-throws.js --- description: Destructuring initializer returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1800 -
dstr-let-ary-ptrn-elem-id-init-undef.js --- description: Destructuring initializer with an undefined value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1935 -
dstr-let-ary-ptrn-elem-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1980 -
dstr-let-ary-ptrn-elem-id-iter-complete.js --- description: SingleNameBinding when value iteration completes (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2083 -
dstr-let-ary-ptrn-elem-id-iter-done.js --- description: SingleNameBinding when value iteration was completed previously (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1836 -
dstr-let-ary-ptrn-elem-id-iter-step-err.js --- description: Error forwarding when IteratorStep returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1926 -
dstr-let-ary-ptrn-elem-id-iter-val-err.js --- description: Error forwarding when IteratorValue returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2290 -
dstr-let-ary-ptrn-elem-id-iter-val.js --- description: SingleNameBinding when value iteration was completed previously (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2322 -
dstr-let-ary-ptrn-elem-obj-id-init.js --- description: BindingElement with object binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2087 -
dstr-let-ary-ptrn-elem-obj-id.js --- description: BindingElement with object binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2109 -
dstr-let-ary-ptrn-elem-obj-prop-id-init.js --- description: BindingElement with object binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2282 -
dstr-let-ary-ptrn-elem-obj-prop-id.js --- description: BindingElement with object binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2307 -
dstr-let-ary-ptrn-elem-obj-val-null.js --- description: Nested object destructuring with a null value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1967 -
dstr-let-ary-ptrn-elem-obj-val-undef.js --- description: Nested object destructuring with a value of `undefined` (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1974 -
dstr-let-ary-ptrn-elision-exhausted.js --- description: Elision accepts exhausted iterator (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1953 -
dstr-let-ary-ptrn-elision-iter-close.js --- description: The iterator is properly consumed by the destructuring pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. --- 1551 -
dstr-let-ary-ptrn-elision-step-err.js --- description: Elision advances iterator and forwards abrupt completions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2169 -
dstr-let-ary-ptrn-elision.js --- description: Elision advances iterator (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2266 -
dstr-let-ary-ptrn-empty.js --- description: No iteration occurs for an "empty" array binding pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ ] 1. Return NormalCompletion(empty). --- 1714 -
dstr-let-ary-ptrn-rest-ary-elem.js --- description: Rest element containing an array BindingElementList pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2701 -
dstr-let-ary-ptrn-rest-ary-elision.js --- description: Rest element containing an elision (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2670 -
dstr-let-ary-ptrn-rest-ary-empty.js --- description: Rest element containing an "empty" array pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2101 -
dstr-let-ary-ptrn-rest-ary-rest.js --- description: Rest element containing a rest element (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. [...] --- 2052 -
dstr-let-ary-ptrn-rest-id-elision-next-err.js --- description: Rest element following elision elements (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1982 -
dstr-let-ary-ptrn-rest-id-elision.js --- description: Rest element following elision elements (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2179 -
dstr-let-ary-ptrn-rest-id-exhausted.js --- description: RestElement applied to an exhausted iterator (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2018 -
dstr-let-ary-ptrn-rest-id-iter-close.js --- description: The iterator is properly consumed by the destructuring pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. --- 1554 -
dstr-let-ary-ptrn-rest-id-iter-step-err.js --- description: Error forwarding when IteratorStep returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2210 -
dstr-let-ary-ptrn-rest-id-iter-val-err.js --- description: Error forwarding when IteratorValue returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2161 -
dstr-let-ary-ptrn-rest-id.js --- description: Lone rest element (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). [...] --- 1900 -
dstr-let-ary-ptrn-rest-init-ary.js --- description: Reset element (nested array pattern) does not support initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1847 -
dstr-let-ary-ptrn-rest-init-id.js --- description: Reset element (identifier) does not support initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1832 -
dstr-let-ary-ptrn-rest-init-obj.js --- description: Reset element (nested object pattern) does not support initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1848 -
dstr-let-ary-ptrn-rest-not-final-ary.js --- description: Rest element (array binding pattern) may not be followed by any element (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1861 -
dstr-let-ary-ptrn-rest-not-final-id.js --- description: Rest element (identifier) may not be followed by any element (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1847 -
dstr-let-ary-ptrn-rest-not-final-obj.js --- description: Rest element (object binding pattern) may not be followed by any element (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1864 -
dstr-let-ary-ptrn-rest-obj-id.js --- description: Rest element containing an object binding pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. [...] --- 1892 -
dstr-let-ary-ptrn-rest-obj-prop-id.js --- description: Rest element containing an object binding pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. [...] --- 2139 -
dstr-let-obj-init-null.js --- description: Value specifed for object binding pattern must be object coercible (null) (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1534 -
dstr-let-obj-init-undefined.js --- description: Value specifed for object binding pattern must be object coercible (undefined) (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1549 -
dstr-let-obj-ptrn-empty.js --- description: No property access occurs for an "empty" object binding pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1740 -
dstr-let-obj-ptrn-id-get-value-err.js --- description: Error thrown when accessing the corresponding property of the value object (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. Let v be GetV(value, propertyName). 5. ReturnIfAbrupt(v). --- 1773 -
dstr-let-obj-ptrn-id-init-fn-name-arrow.js --- description: SingleNameBinding assigns `name` to arrow functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2009 -
dstr-let-obj-ptrn-id-init-fn-name-class.js --- description: SingleNameBinding assigns `name` to "anonymous" classes (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2148 -
dstr-let-obj-ptrn-id-init-fn-name-cover.js --- description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2123 -
dstr-let-obj-ptrn-id-init-fn-name-fn.js --- description: SingleNameBinding assigns name to "anonymous" functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2070 -
dstr-let-obj-ptrn-id-init-fn-name-gen.js --- description: SingleNameBinding assigns name to "anonymous" generator functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 2102 -
dstr-let-obj-ptrn-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then [...] [...] --- 1995 -
dstr-let-obj-ptrn-id-init-throws.js --- description: Error thrown when evaluating the initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1792 -
dstr-let-obj-ptrn-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1972 -
dstr-let-obj-ptrn-id-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1682 -
dstr-let-obj-ptrn-list-err.js --- description: Binding property list evaluation is interrupted by an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1850 -
dstr-let-obj-ptrn-prop-ary-init.js --- description: Object binding pattern with "nested" array binding pattern using initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2048 -
dstr-let-obj-ptrn-prop-ary-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1694 -
dstr-let-obj-ptrn-prop-ary-value-null.js --- description: Object binding pattern with "nested" array binding pattern taking the `null` value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1742 -
dstr-let-obj-ptrn-prop-ary.js --- description: Object binding pattern with "nested" array binding pattern not using initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1957 -
dstr-let-obj-ptrn-prop-eval-err.js --- description: Evaluation of property name returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1665 -
dstr-let-obj-ptrn-prop-id-get-value-err.js --- description: Error thrown when accessing the corresponding property of the value object (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt 1. Let v be GetV(value, propertyName). 2. ReturnIfAbrupt(v). --- 1843 -
dstr-let-obj-ptrn-prop-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt [...] 3. If Initializer is present and v is undefined, then [...] --- 2226 -
dstr-let-obj-ptrn-prop-id-init-throws.js --- description: Error thrown when evaluating the initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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). --- 1793 -
dstr-let-obj-ptrn-prop-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1974 -
dstr-let-obj-ptrn-prop-id-init.js --- description: Binding as specified via property name, identifier, and initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 8. Return InitializeReferencedBinding(lhs, v). --- 1756 -
dstr-let-obj-ptrn-prop-id-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1749 -
dstr-let-obj-ptrn-prop-id.js --- description: Binding as specified via property name and identifier (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 8. Return InitializeReferencedBinding(lhs, v). --- 1738 -
dstr-let-obj-ptrn-prop-obj-init.js --- description: Object binding pattern with "nested" object binding pattern using initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 2076 -
dstr-let-obj-ptrn-prop-obj-value-null.js --- description: Object binding pattern with "nested" object binding pattern taking the `null` value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1756 -
dstr-let-obj-ptrn-prop-obj-value-undef.js --- description: Object binding pattern with "nested" object binding pattern taking the `null` value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1738 -
dstr-let-obj-ptrn-prop-obj.js --- description: Object binding pattern with "nested" object binding pattern not using initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env 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. --- 1977 -
dstr-let-obj-ptrn-rest-getter.js --- description: Getter is called when obj is being deconstructed to a rest Object (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. --- 1713 -
dstr-let-obj-ptrn-rest-skip-non-enumerable.js --- description: Rest object doesn't contain non-enumerable properties (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. --- 1883 -
dstr-let-obj-ptrn-rest-val-obj.js --- description: Rest object contains just unextracted data (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement [...] 7. Let forDcl be the result of evaluating LexicalDeclaration. [...] LexicalDeclaration : LetOrConst BindingList ; 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return NormalCompletion(empty). BindingList : BindingList , LexicalBinding 1. Let next be the result of evaluating BindingList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating LexicalBinding. LexicalBinding : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let value be GetValue(rhs). 3. ReturnIfAbrupt(value). 4. Let env be the running execution context’s LexicalEnvironment. 5. Return the result of performing BindingInitialization for BindingPattern using value and env as the arguments. --- 1842 -
dstr-var-ary-init-iter-close.js --- description: Iterator is closed when not exhausted by pattern evaluation (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern [...] 4. If iteratorRecord.[[done]] is false, return ? IteratorClose(iterator, result). [...] --- 1832 -
dstr-var-ary-init-iter-get-err.js --- description: Abrupt completion returned by GetIterator (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1537 -
dstr-var-ary-init-iter-no-close.js --- description: Iterator is not closed when exhausted by pattern evaluation (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ArrayBindingPattern [...] 4. If iteratorRecord.[[done]] is false, return ? IteratorClose(iterator, result). [...] --- 1834 -
dstr-var-ary-name-iter-val.js --- description: SingleNameBinding with normal value iteration (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 2148 -
dstr-var-ary-ptrn-elem-ary-elem-init.js --- description: BindingElement with array binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1921 -
dstr-var-ary-ptrn-elem-ary-elem-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1892 -
dstr-var-ary-ptrn-elem-ary-elision-init.js --- description: BindingElement with array binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1996 -
dstr-var-ary-ptrn-elem-ary-elision-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1901 -
dstr-var-ary-ptrn-elem-ary-empty-init.js --- description: BindingElement with array binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 2038 -
dstr-var-ary-ptrn-elem-ary-empty-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1879 -
dstr-var-ary-ptrn-elem-ary-rest-init.js --- description: BindingElement with array binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 2043 -
dstr-var-ary-ptrn-elem-ary-rest-iter.js --- description: BindingElement with array binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 2090 -
dstr-var-ary-ptrn-elem-ary-val-null.js --- description: Nested array destructuring with a null value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1824 -
dstr-var-ary-ptrn-elem-id-init-exhausted.js --- description: Destructuring initializer with an exhausted iterator (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1848 -
dstr-var-ary-ptrn-elem-id-init-fn-name-arrow.js --- description: SingleNameBinding does assign name to arrow functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1916 -
dstr-var-ary-ptrn-elem-id-init-fn-name-class.js --- description: SingleNameBinding assigns `name` to "anonymous" classes (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 2053 -
dstr-var-ary-ptrn-elem-id-init-fn-name-cover.js --- description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 2029 -
dstr-var-ary-ptrn-elem-id-init-fn-name-fn.js --- description: SingleNameBinding assigns name to "anonymous" functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1975 -
dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js --- description: SingleNameBinding assigns name to "anonymous" generator functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 2007 -
dstr-var-ary-ptrn-elem-id-init-hole.js --- description: Destructuring initializer with a "hole" (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1781 -
dstr-var-ary-ptrn-elem-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1941 -
dstr-var-ary-ptrn-elem-id-init-throws.js --- description: Destructuring initializer returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1666 -
dstr-var-ary-ptrn-elem-id-init-undef.js --- description: Destructuring initializer with an undefined value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1787 -
dstr-var-ary-ptrn-elem-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1846 -
dstr-var-ary-ptrn-elem-id-iter-complete.js --- description: SingleNameBinding when value iteration completes (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1935 -
dstr-var-ary-ptrn-elem-id-iter-done.js --- description: SingleNameBinding when value iteration was completed previously (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1688 -
dstr-var-ary-ptrn-elem-id-iter-step-err.js --- description: Error forwarding when IteratorStep returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1792 -
dstr-var-ary-ptrn-elem-id-iter-val-err.js --- description: Error forwarding when IteratorValue returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 2156 -
dstr-var-ary-ptrn-elem-id-iter-val.js --- description: SingleNameBinding when value iteration was completed previously (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 2174 -
dstr-var-ary-ptrn-elem-obj-id-init.js --- description: BindingElement with object binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1939 -
dstr-var-ary-ptrn-elem-obj-id.js --- description: BindingElement with object binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1961 -
dstr-var-ary-ptrn-elem-obj-prop-id-init.js --- description: BindingElement with object binding pattern and initializer is used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 2134 -
dstr-var-ary-ptrn-elem-obj-prop-id.js --- description: BindingElement with object binding pattern and initializer is not used (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 2159 -
dstr-var-ary-ptrn-elem-obj-val-null.js --- description: Nested object destructuring with a null value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1833 -
dstr-var-ary-ptrn-elem-obj-val-undef.js --- description: Nested object destructuring with a value of `undefined` (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1840 -
dstr-var-ary-ptrn-elision-exhausted.js --- description: Elision accepts exhausted iterator (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1805 -
dstr-var-ary-ptrn-elision-iter-close.js --- description: The iterator is properly consumed by the destructuring pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1404 -
dstr-var-ary-ptrn-elision-step-err.js --- description: Elision advances iterator and forwards abrupt completions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 2035 -
dstr-var-ary-ptrn-elision.js --- description: Elision advances iterator (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 2118 -
dstr-var-ary-ptrn-empty.js --- description: No iteration occurs for an "empty" array binding pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3.6 Runtime Semantics: IteratorBindingInitialization ArrayBindingPattern : [ ] 1. Return NormalCompletion(empty). --- 1566 -
dstr-var-ary-ptrn-rest-ary-elem.js --- description: Rest element containing an array BindingElementList pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 2553 -
dstr-var-ary-ptrn-rest-ary-elision.js --- description: Rest element containing an elision (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 2522 -
dstr-var-ary-ptrn-rest-ary-empty.js --- description: Rest element containing an "empty" array pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1953 -
dstr-var-ary-ptrn-rest-ary-rest.js --- description: Rest element containing a rest element (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. [...] --- 1904 -
dstr-var-ary-ptrn-rest-id-elision-next-err.js --- description: Rest element following elision elements (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1848 -
dstr-var-ary-ptrn-rest-id-elision.js --- description: Rest element following elision elements (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 2031 -
dstr-var-ary-ptrn-rest-id-exhausted.js --- description: RestElement applied to an exhausted iterator (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1870 -
dstr-var-ary-ptrn-rest-id-iter-close.js --- description: The iterator is properly consumed by the destructuring pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1407 -
dstr-var-ary-ptrn-rest-id-iter-step-err.js --- description: Error forwarding when IteratorStep returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 2076 -
dstr-var-ary-ptrn-rest-id-iter-val-err.js --- description: Error forwarding when IteratorValue returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 2027 -
dstr-var-ary-ptrn-rest-id.js --- description: Lone rest element (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). [...] --- 1752 -
dstr-var-ary-ptrn-rest-init-ary.js --- description: Reset element (nested array pattern) does not support initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1699 -
dstr-var-ary-ptrn-rest-init-id.js --- description: Reset element (identifier) does not support initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1684 -
dstr-var-ary-ptrn-rest-init-obj.js --- description: Reset element (nested object pattern) does not support initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1700 -
dstr-var-ary-ptrn-rest-not-final-ary.js --- description: Rest element (array binding pattern) may not be followed by any element (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1713 -
dstr-var-ary-ptrn-rest-not-final-id.js --- description: Rest element (identifier) may not be followed by any element (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1699 -
dstr-var-ary-ptrn-rest-not-final-obj.js --- description: Rest element (object binding pattern) may not be followed by any element (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3 Destructuring Binding Patterns ArrayBindingPattern[Yield] : [ Elisionopt BindingRestElement[?Yield]opt ] [ BindingElementList[?Yield] ] [ BindingElementList[?Yield] , Elisionopt BindingRestElement[?Yield]opt ] --- 1716 -
dstr-var-ary-ptrn-rest-obj-id.js --- description: Rest element containing an object binding pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. [...] --- 1744 -
dstr-var-ary-ptrn-rest-obj-prop-id.js --- description: Rest element containing an object binding pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. [...] --- 1991 -
dstr-var-obj-init-null.js --- description: Value specifed for object binding pattern must be object coercible (null) (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1400 -
dstr-var-obj-init-undefined.js --- description: Value specifed for object binding pattern must be object coercible (undefined) (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1415 -
dstr-var-obj-ptrn-empty.js --- description: No property access occurs for an "empty" object binding pattern (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Runtime Semantics: BindingInitialization ObjectBindingPattern : { } 1. Return NormalCompletion(empty). --- 1592 -
dstr-var-obj-ptrn-id-get-value-err.js --- description: Error thrown when accessing the corresponding property of the value object (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 4. Let v be GetV(value, propertyName). 5. ReturnIfAbrupt(v). --- 1639 -
dstr-var-obj-ptrn-id-init-fn-name-arrow.js --- description: SingleNameBinding assigns `name` to arrow functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1861 -
dstr-var-obj-ptrn-id-init-fn-name-class.js --- description: SingleNameBinding assigns `name` to "anonymous" classes (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 2000 -
dstr-var-obj-ptrn-id-init-fn-name-cover.js --- description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1975 -
dstr-var-obj-ptrn-id-init-fn-name-fn.js --- description: SingleNameBinding assigns name to "anonymous" functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1922 -
dstr-var-obj-ptrn-id-init-fn-name-gen.js --- description: SingleNameBinding assigns name to "anonymous" generator functions (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [generators, destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1954 -
dstr-var-obj-ptrn-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 6. If Initializer is present and v is undefined, then [...] [...] --- 1847 -
dstr-var-obj-ptrn-id-init-throws.js --- description: Error thrown when evaluating the initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1658 -
dstr-var-obj-ptrn-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1838 -
dstr-var-obj-ptrn-id-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1534 -
dstr-var-obj-ptrn-list-err.js --- description: Binding property list evaluation is interrupted by an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1716 -
dstr-var-obj-ptrn-prop-ary-init.js --- description: Object binding pattern with "nested" array binding pattern using initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1900 -
dstr-var-obj-ptrn-prop-ary-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1546 -
dstr-var-obj-ptrn-prop-ary-value-null.js --- description: Object binding pattern with "nested" array binding pattern taking the `null` value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1608 -
dstr-var-obj-ptrn-prop-ary.js --- description: Object binding pattern with "nested" array binding pattern not using initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1809 -
dstr-var-obj-ptrn-prop-eval-err.js --- description: Evaluation of property name returns an abrupt completion (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3.5 Runtime Semantics: BindingInitialization BindingProperty : PropertyName : BindingElement 1. Let P be the result of evaluating PropertyName 2. ReturnIfAbrupt(P). --- 1531 -
dstr-var-obj-ptrn-prop-id-get-value-err.js --- description: Error thrown when accessing the corresponding property of the value object (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt 1. Let v be GetV(value, propertyName). 2. ReturnIfAbrupt(v). --- 1709 -
dstr-var-obj-ptrn-prop-id-init-skipped.js --- description: Destructuring initializer is not evaluated when value is not `undefined` (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization BindingElement : BindingPattern Initializeropt [...] 3. If Initializer is present and v is undefined, then [...] --- 2078 -
dstr-var-obj-ptrn-prop-id-init-throws.js --- description: Error thrown when evaluating the initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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). --- 1659 -
dstr-var-obj-ptrn-prop-id-init-unresolvable.js --- description: Destructuring initializer is an unresolvable reference (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1840 -
dstr-var-obj-ptrn-prop-id-init.js --- description: Binding as specified via property name, identifier, and initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 8. Return InitializeReferencedBinding(lhs, v). --- 1608 -
dstr-var-obj-ptrn-prop-id-trailing-comma.js --- description: Trailing comma is allowed following BindingPropertyList (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3 Destructuring Binding Patterns ObjectBindingPattern[Yield] : { } { BindingPropertyList[?Yield] } { BindingPropertyList[?Yield] , } --- 1601 -
dstr-var-obj-ptrn-prop-id.js --- description: Binding as specified via property name and identifier (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 13.3.3.7 Runtime Semantics: KeyedBindingInitialization SingleNameBinding : BindingIdentifier Initializeropt [...] 8. Return InitializeReferencedBinding(lhs, v). --- 1590 -
dstr-var-obj-ptrn-prop-obj-init.js --- description: Object binding pattern with "nested" object binding pattern using initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1928 -
dstr-var-obj-ptrn-prop-obj-value-null.js --- description: Object binding pattern with "nested" object binding pattern taking the `null` value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1622 -
dstr-var-obj-ptrn-prop-obj-value-undef.js --- description: Object binding pattern with "nested" object binding pattern taking the `null` value (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1604 -
dstr-var-obj-ptrn-prop-obj.js --- description: Object binding pattern with "nested" object binding pattern not using initializer (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined 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. --- 1829 -
dstr-var-obj-ptrn-rest-getter.js --- description: Getter is called when obj is being deconstructed to a rest Object (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1565 -
dstr-var-obj-ptrn-rest-skip-non-enumerable.js --- description: Rest object doesn't contain non-enumerable properties (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1735 -
dstr-var-obj-ptrn-rest-val-obj.js --- description: Rest object contains just unextracted data (for statement) esid: sec-for-statement-runtime-semantics-labelledevaluation es6id: 13.7.4.7 features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement 1. Let varDcl be the result of evaluating VariableDeclarationList. [...] 13.3.2.4 Runtime Semantics: Evaluation VariableDeclarationList : VariableDeclarationList , VariableDeclaration 1. Let next be the result of evaluating VariableDeclarationList. 2. ReturnIfAbrupt(next). 3. Return the result of evaluating VariableDeclaration. VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1694 -
head-const-bound-names-in-stmt.js --- description: The body may not re-declare variables declared in the head info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement It is a Syntax Error if any element of the BoundNames of LexicalDeclaration also occurs in the VarDeclaredNames of Statement. negative: phase: parse type: SyntaxError esid: sec-for-statement es6id: 13.7.4 --- 644 -
head-const-fresh-binding-per-iteration.js --- es6id: 13.6.4.13 description: > const ForDeclaration: creates a fresh binding per iteration --- 368 -
head-let-bound-names-in-stmt.js --- description: The body may not re-declare variables declared in the head info: | IterationStatement : for ( LexicalDeclaration Expressionopt ; Expressionopt ) Statement It is a Syntax Error if any element of the BoundNames of LexicalDeclaration also occurs in the VarDeclaredNames of Statement. negative: phase: parse type: SyntaxError esid: sec-for-statement es6id: 13.7.4 --- 642 -
head-let-destructuring.js --- esid: sec-iteration-statements es6id: 13.7 description: > The token sequence `let [`is interpreted as the beginning of a destructuring binding pattern info: | Syntax IterationStatement[Yield, Return]: for ( [lookahead ∉ { let [ } ] Expression[~In, ?Yield]opt ; Expression[+In, ?Yield]opt ; Expression[+In, ?Yield]opt ) Statement[?Yield, ?Return] for ( LexicalDeclaration[~In, ?Yield] Expression[+In, ?Yield]opt ; Expression[+In, ?Yield]opt) Statement[?Yield, ?Return] --- 819 -
head-let-fresh-binding-per-iteration.js --- es6id: 13.6.4.13 description: > let ForDeclaration: creates a fresh binding per iteration --- 364 -
head-lhs-let.js --- esid: sec-iteration-statements es6id: 13.7 description: > The `let` token is interpreted as an Identifier when it is not followed by a `[` token info: | Syntax IterationStatement[Yield, Return]: for ( [lookahead ∉ { let [ } ] Expression[~In, ?Yield]opt ; Expression[+In, ?Yield]opt ; Expression[+In, ?Yield]opt ) Statement[?Yield, ?Return] for ( LexicalDeclaration[~In, ?Yield] Expression[+In, ?Yield]opt ; Expression[+In, ?Yield]opt) Statement[?Yield, ?Return] flags: [noStrict] --- 938 -
head-var-bound-names-in-stmt.js --- description: The body may re-declare variables declared in the head esid: sec-for-statement es6id: 13.7.4 --- 393 -
labelled-fn-stmt-const.js --- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. --- 642 -
labelled-fn-stmt-expr.js --- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. --- 636 -
labelled-fn-stmt-let.js --- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. --- 640 -
labelled-fn-stmt-var.js --- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. --- 640 -
let-array-with-newline.js --- esid: sec-for-statement description: > ExpressionStatement has a lookahead restriction for `let [`. info: | ExpressionStatement[Yield, Await] : [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: phase: parse type: SyntaxError flags: [noStrict] --- 572 -
let-block-with-newline.js --- esid: sec-for-statement description: > ExpressionStatement doesn't have a lookahead restriction for `let {`. info: | ExpressionStatement[Yield, Await] : [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; flags: [noStrict] --- 478 -
let-identifier-with-newline.js --- esid: sec-for-statement description: > ExpressionStatement doesn't have a lookahead restriction for `let <binding-identifier>`. info: | ExpressionStatement[Yield, Await] : [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; flags: [noStrict] --- 501 -
S12.6.3_A1.js --- info: | The "for {;;}" for Statement with empty expressions is allowed and leads to performing an infinite loop es5id: 12.6.3_A1 description: Breaking an infinite loop by throwing exception --- 975 -
S12.6.3_A2.1.js --- info: | While evaluating "for (ExpressionNoIn ; ; Expression) Statement", Statement is evaulated first es5id: 12.6.3_A2.1 description: Using "(function(){throw "NoInExpression"})()" as ExpressionNoIn --- 891 -
S12.6.3_A2.2.js --- info: | While evaluating "for (ExpressionNoIn;;) Statement", Statement is evaulated first es5id: 12.6.3_A2.2 description: Using "(function(){throw "NoInExpression"})()" as ExpressionNoIn --- 826 -
S12.6.3_A2.js --- info: | While evaluating "for (ExpressionNoIn; Expression; Expression) Statement", ExpressionNoIn is evaulated first es5id: 12.6.3_A2 description: Using "(function(){throw "NoInExpression"})()" as ExpressionNoIn --- 1231 -
S12.6.3_A3.js --- info: | While evaluating "for (ExpressionNoIn; FirstExpression; SecondExpression) Statement", ExpressionNoIn is evaulated first, FirstExpressoin is evaluated second es5id: 12.6.3_A3 description: Using "(function(){throw "FirstExpression"})()" as FirstExpression --- 1824 -
S12.6.3_A4.1.js --- info: | "in"-expression is not allowed as a ExpressionNoIn in "for (ExpressionNoIn; FirstExpression; SecondExpression) Statement" IterationStatement es5id: 12.6.3_A4.1 description: Checking if execution of "for (var a in arr;1;){}" fails negative: phase: parse type: SyntaxError --- 727 -
S12.6.3_A4_T1.js --- info: | "in"-expression is not allowed as a ExpressionNoIn in "for (ExpressionNoIn; FirstExpression; SecondExpression) Statement" IterationStatement es5id: 12.6.3_A4_T1 description: Checking if execution of "for (a in arr;1;){}" fails negative: phase: parse type: SyntaxError --- 720 -
S12.6.3_A4_T2.js --- info: | "in"-expression is not allowed as a ExpressionNoIn in "for (ExpressionNoIn; FirstExpression; SecondExpression) Statement" IterationStatement es5id: 12.6.3_A4_T2 description: Checking if execution of "for (1 in arr;1;){}" fails negative: phase: parse type: SyntaxError --- 720 -
S12.6.3_A5.js --- info: | "in"-expression wrapped into "eval" statement is allowed as a ExpressionNoIn in "for (ExpressionNoIn; FirstExpression; SecondExpression) Statement" IterationStatement es5id: 12.6.3_A5 description: Using eval "for(eval("i in arr");1;)" --- 1423 -
S12.6.3_A6.js --- info: | While evaluating "for ( ; ; Expression) Statement", Statement is evaluated first and then Expression is evaluated es5id: 12.6.3_A6 description: Using "(function(){throw "SecondExpression";})()" as an Expression --- 1183 -
S12.6.3_A7.1_T1.js --- info: | Only three expressions and two semicolons in "for(with var)" braces are allowed. Appearing of for (ExpressionNoIn_opt ; Expression_opt ; Expression_opt; Expression_opt; Expression_opt;) statement leads to SyntaxError es5id: 12.6.3_A7.1_T1 description: > Checking if execution of "for(var index=0; index<10; index++; index--)" fails negative: phase: parse type: SyntaxError --- 823 -
S12.6.3_A7.1_T2.js --- info: | Only three expressions and two semicolons in "for(with var)" braces are allowed. Appearing of for (ExpressionNoIn_opt ; Expression_opt ; Expression_opt; Expression_opt; Expression_opt;) statement leads to SyntaxError es5id: 12.6.3_A7.1_T2 description: > Checking if execution of "for(var index=0; index<10; index+=4; index++; index--)" fails negative: phase: parse type: SyntaxError --- 844 -
S12.6.3_A7_T1.js --- info: | Only three expressions and two semicolons in "for" braces are allowed. Appearing of for (ExpressionNoIn_opt ; Expression_opt ; Expression_opt; Expression_opt; Expression_opt;) statement leads to SyntaxError es5id: 12.6.3_A7_T1 description: > Checking if execution of "for(index=0; index<10; index++; index--)" fails negative: phase: parse type: SyntaxError --- 804 -
S12.6.3_A7_T2.js --- info: | Only three expressions and two semicolons in "for" braces are allowed. Appearing of for (ExpressionNoIn_opt ; Expression_opt ; Expression_opt; Expression_opt; Expression_opt;) statement leads to SyntaxError es5id: 12.6.3_A7_T2 description: > Checking if execution of "for(index=0; index<10; index+=4; index++; index--)" fails negative: phase: parse type: SyntaxError --- 824 -
S12.6.3_A8.1_T1.js --- info: Blocks within "for(with var)" braces are not allowed es5id: 12.6.3_A8.1_T1 description: > Checking if execution of "for(var index=0; index<100; {index++; index*2;}) { arr.add(""+index);}" fails negative: phase: parse type: SyntaxError --- 717 -
S12.6.3_A8.1_T2.js --- info: Blocks within "for(with var)" braces are not allowed es5id: 12.6.3_A8.1_T2 description: > Checking if execution of "for(var index=0; {index++;index<100;}; index*2;) { arr.add(""+index);}" fails negative: phase: parse type: SyntaxError --- 717 -
S12.6.3_A8.1_T3.js --- info: Blocks within "for(with var)" braces are not allowed es5id: 12.6.3_A8.1_T3 description: > Checking if execution of "for({var index=0; index+=1;} index++<=10; index*2;) { arr.add(""+index);}" fails negative: phase: parse type: SyntaxError --- 722 -
S12.6.3_A8_T1.js --- info: Blocks within "for" braces are not allowed es5id: 12.6.3_A8_T1 description: > Checking if execution of "for(index=0; index<100; {index++; index*2;}) { arr.add(""+index);}" fails negative: phase: parse type: SyntaxError --- 697 -
S12.6.3_A8_T2.js --- info: Blocks within "for" braces are not allowed es5id: 12.6.3_A8_T2 description: > Checking if execution of "for(index=0; {index++;index<100;}; index*2;) { arr.add(""+index);}" fails negative: phase: parse type: SyntaxError --- 697 -
S12.6.3_A8_T3.js --- info: Blocks within "for" braces are not allowed es5id: 12.6.3_A8_T3 description: > Checking if execution of "for({index=0; index+=1;} index++<=10; index*2;) { arr.add(""+index);}" fails negative: phase: parse type: SyntaxError --- 702 -
S12.6.3_A9.1.js --- info: | The result of evaluating "for( ExpNoIn;Exp;Exp)" loop is returning (normal, evalValue, empty) es5id: 12.6.3_A9.1 description: Using eval --- 858 -
S12.6.3_A9.js --- info: | The result of evaluating "for(var ExpNoIn;Exp;Exp)" loop is returning (normal, evalValue, empty) es5id: 12.6.3_A9 description: Using eval --- 860 -
S12.6.3_A10.1_T1.js --- info: Nested "var-loops" nine blocks depth is evaluated properly es5id: 12.6.3_A10.1 description: > Checking if executing nested "var-loops" nine blocks depth is evaluated properly flags: [noStrict] --- 3594 -
S12.6.3_A10.1_T2.js --- info: Nested "var-loops" nine blocks depth is evaluated properly es5id: 12.6.3_A10.1 description: > Checking if executing nested "var-loops" nine blocks depth is evaluated properly --- 3612 -
S12.6.3_A10_T1.js --- info: Nested "var-loops" nine blocks depth is evaluated properly es5id: 12.6.3_A10 description: > Checking if executing nested "var-loops" nine blocks depth is evaluated properly flags: [noStrict] --- 1904 -
S12.6.3_A10_T2.js --- info: Nested "var-loops" nine blocks depth is evaluated properly es5id: 12.6.3_A10 description: > Checking if executing nested "var-loops" nine blocks depth is evaluated properly --- 1970 -
S12.6.3_A11.1_T1.js --- info: | If (Evaluate Statement).type is "continue" and (Evaluate Statement).target is in the current label set, iteration of labeled "var-loop" breaks es5id: 12.6.3_A11.1_T1 description: Using "continue" in order to continue a loop --- 579 -
S12.6.3_A11.1_T2.js --- info: | If (Evaluate Statement).type is "continue" and (Evaluate Statement).target is in the current label set, iteration of labeled "var-loop" breaks es5id: 12.6.3_A11.1_T2 description: Embedded loops --- 1807 -
S12.6.3_A11.1_T3.js --- info: | If (Evaluate Statement).type is "continue" and (Evaluate Statement).target is in the current label set, iteration of labeled "var-loop" breaks es5id: 12.6.3_A11.1_T3 description: Trying to continue non-existent label negative: phase: parse type: SyntaxError --- 856 -
S12.6.3_A11_T1.js --- info: | If (Evaluate Statement).type is "continue" and (Evaluate Statement).target is in the current label set, iteration of labeled loop breaks es5id: 12.6.3_A11_T1 description: Simple test of continue loop with using "continue" --- 580 -
S12.6.3_A11_T2.js --- info: | If (Evaluate Statement).type is "continue" and (Evaluate Statement).target is in the current label set, iteration of labeled loop breaks es5id: 12.6.3_A11_T2 description: Embedded loops --- 1791 -
S12.6.3_A11_T3.js --- info: | If (Evaluate Statement).type is "continue" and (Evaluate Statement).target is in the current label set, iteration of labeled loop breaks es5id: 12.6.3_A11_T3 description: Trying to continue non-existent label negative: phase: parse type: SyntaxError --- 839 -
S12.6.3_A12.1_T1.js --- info: | If (Evaluate Statement).type is "break" and (Evaluate Statement).target is in the current label set, (normal, (Evaluate Statement), empty) is returned while evaluating a "var-loop" es5id: 12.6.3_A12.1_T1 description: Breaking a loop with "break" --- 600 -
S12.6.3_A12.1_T2.js --- info: | If (Evaluate Statement).type is "break" and (Evaluate Statement).target is in the current label set, (normal, (Evaluate Statement), empty) is returned while evaluating a "var-loop" es5id: 12.6.3_A12.1_T2 description: Embedded loops --- 1809 -
S12.6.3_A12.1_T3.js --- info: | If (Evaluate Statement).type is "break" and (Evaluate Statement).target is in the current label set, (normal, (Evaluate Statement), empty) is returned while evaluating a "var-loop" es5id: 12.6.3_A12.1_T3 description: Trying to break non-existent label negative: phase: parse type: SyntaxError --- 888 -
S12.6.3_A12_T1.js --- info: | If (Evaluate Statement).type is "break" and (Evaluate Statement).target is in the current label set, (normal, (Evaluate Statement), empty) is returned while evaluating a loop es5id: 12.6.3_A12_T1 description: Breaking a loop with "break" --- 592 -
S12.6.3_A12_T2.js --- info: | If (Evaluate Statement).type is "break" and (Evaluate Statement).target is in the current label set, (normal, (Evaluate Statement), empty) is returned while evaluating a loop es5id: 12.6.3_A12_T2 description: Embedded loops --- 1793 -
S12.6.3_A12_T3.js --- info: | If (Evaluate Statement).type is "break" and (Evaluate Statement).target is in the current label set, (normal, (Evaluate Statement), empty) is returned while evaluating a loop es5id: 12.6.3_A12_T3 description: Trying to break non-existent label negative: phase: parse type: SyntaxError --- 873 -
S12.6.3_A13.js --- info: | VariableDeclaration in "var VariableDeclarationListNoIn" of for IterationStatement is allowed es5id: 12.6.3_A13 description: Declaring variable in "for" ExpressionNoIn --- 693 -
S12.6.3_A14.js --- info: | The production IterationStatement: "for (var VariableDeclarationListNoIn; Expression; Expression) Statement" es5id: 12.6.3_A14 description: Using +,*,/, as the second Expression --- 1110 -
S12.6.3_A15.js --- info: | The production IterationStatement: "for (var VariableDeclarationListNoIn; Expression; Expression) Statement" es5id: 12.6.3_A15 description: Statement must be evaluated before second Expression is evaluated --- 557 -
scope-body-lex-boundary.js --- esid: sec-for-statement-runtime-semantics-labelledevaluation description: > Creation of new lexical environment for each evaluation of the statement body info: | [...] 11. Let bodyResult be ForBodyEvaluation(the first Expression, the second Expression, Statement, perIterationLets, labelSet). [...] 13.7.4.8 Runtime Semantics: ForBodyEvaluation [...] 3. Repeat [...] b. Let result be the result of evaluating stmt. [...] e. Perform ? CreatePerIterationEnvironment(perIterationBindings). [...] 13.7.4.9 Runtime Semantics: CreatePerIterationEnvironment 1. If perIterationBindings has any elements, then [...] e. Let thisIterationEnv be NewDeclarativeEnvironment(outer). f. Let thisIterationEnvRec be thisIterationEnv's EnvironmentRecord. features: [let] --- 1308 -
scope-body-lex-open.js --- esid: sec-for-statement-runtime-semantics-labelledevaluation description: > Creation of new lexical environment for the initial evaluation of the statement body info: | [...] 11. Let bodyResult be ForBodyEvaluation(the first Expression, the second Expression, Statement, perIterationLets, labelSet). [...] 13.7.4.8 Runtime Semantics: ForBodyEvaluation [...] 2. Perform ? CreatePerIterationEnvironment(perIterationBindings). 3. Repeat [...] b. Let result be the result of evaluating stmt. [...] [...] 13.7.4.9 Runtime Semantics: CreatePerIterationEnvironment 1. If perIterationBindings has any elements, then [...] e. Let thisIterationEnv be NewDeclarativeEnvironment(outer). f. Let thisIterationEnvRec be thisIterationEnv's EnvironmentRecord. features: [let] --- 1590 -
scope-body-var-none.js --- esid: sec-for-statement-runtime-semantics-labelledevaluation description: > No variable environment is created for each evaluation of the statement body info: | [...] 11. Let bodyResult be ForBodyEvaluation(the first Expression, the second Expression, Statement, perIterationLets, labelSet). [...] 13.7.4.8 Runtime Semantics: ForBodyEvaluation [...] 2. Perform ? CreatePerIterationEnvironment(perIterationBindings). 3. Repeat [...] b. Let result be the result of evaluating stmt. [...] e. Perform ? CreatePerIterationEnvironment(perIterationBindings). [...] 13.7.4.9 Runtime Semantics: CreatePerIterationEnvironment 1. If perIterationBindings has any elements, then [...] e. Let thisIterationEnv be NewDeclarativeEnvironment(outer). f. Let thisIterationEnvRec be thisIterationEnv's EnvironmentRecord. flags: [noStrict] --- 2834 -
scope-head-lex-close.js --- esid: sec-for-statement-runtime-semantics-labelledevaluation description: Removal of lexical environment for the statement "head" info: | [...] 2. Let loopEnv be NewDeclarativeEnvironment(oldEnv). 3. Let loopEnvRec be loopEnv's EnvironmentRecord. 4. Let isConst be the result of performing IsConstantDeclaration of LexicalDeclaration. 5. Let boundNames be the BoundNames of LexicalDeclaration. 6. For each element dn of boundNames do a. If isConst is true, then i. Perform ! loopEnvRec.CreateImmutableBinding(dn, true). b. Else, i. Perform ! loopEnvRec.CreateMutableBinding(dn, false). 7. Set the running execution context's LexicalEnvironment to loopEnv. [...] 12. Set the running execution context's LexicalEnvironment to oldEnv. 13. Return Completion(bodyResult). features: [let] --- 1527 -
scope-head-lex-open.js --- esid: sec-for-statement-runtime-semantics-labelledevaluation description: Creation of new lexical environment for the statement "head" info: | [...] 2. Let loopEnv be NewDeclarativeEnvironment(oldEnv). 3. Let loopEnvRec be loopEnv's EnvironmentRecord. 4. Let isConst be the result of performing IsConstantDeclaration of LexicalDeclaration. 5. Let boundNames be the BoundNames of LexicalDeclaration. 6. For each element dn of boundNames do a. If isConst is true, then i. Perform ! loopEnvRec.CreateImmutableBinding(dn, true). b. Else, i. Perform ! loopEnvRec.CreateMutableBinding(dn, false). 7. Set the running execution context's LexicalEnvironment to loopEnv. [...] features: [let] --- 1606 -
scope-head-var-none.js --- esid: sec-for-statement-runtime-semantics-labelledevaluation description: No variable environment is created for the statement "head" info: | [...] 2. Let loopEnv be NewDeclarativeEnvironment(oldEnv). 3. Let loopEnvRec be loopEnv's EnvironmentRecord. 4. Let isConst be the result of performing IsConstantDeclaration of LexicalDeclaration. 5. Let boundNames be the BoundNames of LexicalDeclaration. 6. For each element dn of boundNames do a. If isConst is true, then i. Perform ! loopEnvRec.CreateImmutableBinding(dn, true). b. Else, i. Perform ! loopEnvRec.CreateMutableBinding(dn, false). 7. Set the running execution context's LexicalEnvironment to loopEnv. [...] 12. Set the running execution context's LexicalEnvironment to oldEnv. 13. Return Completion(bodyResult). flags: [noStrict] --- 1654 -
tco-const-body.js --- description: Statement within statement is a candidate for tail-call optimization. esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] --- 554 -
tco-let-body.js --- description: Statement within statement is a candidate for tail-call optimization. esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] --- 552 -
tco-lhs-body.js --- description: Statement within statement is a candidate for tail-call optimization. esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] --- 566 -
tco-var-body.js --- description: Statement within statement is a candidate for tail-call optimization. esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] --- 552 -