iterclose-generator.js (446B)
1 var finallyCount = 0; 2 3 function* gen(o) { 4 try { 5 yield 1; 6 yield 2; 7 yield 3; 8 } finally { 9 finallyCount++; 10 } 11 } 12 13 function closeIter(o) { 14 for (var x of o) { 15 if (x == 2) { 16 break; 17 } 18 } 19 } 20 21 function test() { 22 with ({}) {} 23 finallyCount = 0; 24 25 for (var i = 0; i < 100; i++) { 26 closeIter(gen()); 27 } 28 assertEq(finallyCount, 100); 29 } 30 31 with ({}) {} 32 33 test(); 34 35 // Force an IC in Ion. 36 closeIter([1,2,3,4,5]); 37 38 test();