cptn-decl-itr.js (1165B)
1 // Copyright (C) 2016 the V8 project authors. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 /*--- 4 es6id: 13.7.5.11 5 description: > 6 Completion value when head has a declaration and iteration occurs 7 info: | 8 IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement 9 10 1. Let keyResult be the result of performing ForIn/OfHeadEvaluation( « », 11 AssignmentExpression, iterate). 12 2. ReturnIfAbrupt(keyResult). 13 3. Return ForIn/OfBodyEvaluation(ForBinding, Statement, keyResult, 14 varBinding, labelSet). 15 16 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation 17 18 [...] 19 2. Let V = undefined. 20 [...] 21 5. Repeat 22 a. Let nextResult be IteratorStep(iterator). 23 b. ReturnIfAbrupt(nextResult). 24 c. If nextResult is false, return NormalCompletion(V). 25 [...] 26 k. Let result be the result of evaluating stmt. 27 [...] 28 n. If result.[[value]] is not empty, let V be result.[[value]]. 29 ---*/ 30 31 assert.sameValue(eval('1; for (var a of [0]) { }'), undefined); 32 assert.sameValue(eval('2; for (var b of [0]) { 3; }'), 3); 33 34 reportCompare(0, 0);