let-ary-ptrn-rest-id-elision-next-err.js (1954B)
1 // This file was procedurally generated from the following sources: 2 // - src/dstr-binding/ary-ptrn-rest-id-elision-next-err.case 3 // - src/dstr-binding/error/for-of-let.template 4 /*--- 5 description: Rest element following elision elements (for-of statement) 6 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation 7 features: [generators, destructuring-binding] 8 flags: [generated] 9 info: | 10 IterationStatement : 11 for ( ForDeclaration of AssignmentExpression ) Statement 12 13 [...] 14 3. Return ForIn/OfBodyEvaluation(ForDeclaration, Statement, keyResult, 15 lexicalBinding, labelSet). 16 17 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation 18 19 [...] 20 3. Let destructuring be IsDestructuring of lhs. 21 [...] 22 5. Repeat 23 [...] 24 h. If destructuring is false, then 25 [...] 26 i. Else 27 i. If lhsKind is assignment, then 28 [...] 29 ii. Else if lhsKind is varBinding, then 30 [...] 31 iii. Else, 32 1. Assert: lhsKind is lexicalBinding. 33 2. Assert: lhs is a ForDeclaration. 34 3. Let status be the result of performing BindingInitialization 35 for lhs passing nextValue and iterationEnv as arguments. 36 [...] 37 38 13.3.3.6 Runtime Semantics: IteratorBindingInitialization 39 ArrayBindingPattern : [ Elisionopt BindingRestElement ] 40 1. If Elision is present, then 41 a. Let status be the result of performing 42 IteratorDestructuringAssignmentEvaluation of Elision with 43 iteratorRecord as the argument. 44 b. ReturnIfAbrupt(status). 45 2. Return the result of performing IteratorBindingInitialization for 46 BindingRestElement with iteratorRecord and environment as arguments. 47 48 ---*/ 49 var iter = (function*() { throw new Test262Error(); })(); 50 51 assert.throws(Test262Error, function() { 52 for (let [, ...x] of [iter]) { 53 return; 54 } 55 }); 56 57 reportCompare(0, 0);