captured-free-vars.js (1042B)
1 // Copyright (C) 2013 the V8 project authors. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 /*--- 4 es6id: 25.2 5 description: > 6 Free variables captured within the GeneratorFunction closure are valid 7 yield expression operands. 8 features: [generators] 9 ---*/ 10 11 var a = 1; 12 var b = 2; 13 var c = 3; 14 function* g() { 15 yield a; 16 yield b; 17 yield c; 18 } 19 var iter = g(); 20 var result; 21 22 result = iter.next(); 23 assert.sameValue(result.value, 1, 'First result `value`'); 24 assert.sameValue(result.done, false, 'First result `done` flag'); 25 26 result = iter.next(); 27 assert.sameValue(result.value, 2, 'Second result `value`'); 28 assert.sameValue(result.done, false, 'Second result `done` flag'); 29 30 result = iter.next(); 31 assert.sameValue(result.value, 3, 'Third result `value`'); 32 assert.sameValue(result.done, false, 'Third result `done` flag'); 33 34 result = iter.next(); 35 assert.sameValue(result.value, undefined, 'Final result `value`'); 36 assert.sameValue(result.done, true, 'Final result `done` flag'); 37 38 reportCompare(0, 0);