testGeneratorDieButScopeAlive.js (519B)
1 var g = newGlobal({newCompartment: true}); 2 var dbg = new Debugger(g); 3 4 var hits = 0; 5 dbg.onDebuggerStatement = function(frame) { 6 ++hits; 7 frame.older.eval("escaped = function() { return y }"); 8 } 9 10 var arr = []; 11 const N = 10; 12 13 for (var i = 0; i < N; ++i) { 14 g.escaped = undefined; 15 g.eval("function h() { debugger }"); 16 g.eval("(function* () { var y = {p:42}; h(); yield })().next();"); 17 assertEq(g.eval("escaped().p"), 42); 18 arr.push(g.escaped); 19 } 20 21 gc(); 22 23 for (var i = 0; i < N; ++i) 24 arr[i]();