michael@0: var g = newGlobal(); michael@0: var dbg = new Debugger(g); michael@0: michael@0: var hits = 0; michael@0: dbg.onDebuggerStatement = function(frame) { michael@0: ++hits; michael@0: frame.older.eval("escaped = function() { return y }"); michael@0: } michael@0: michael@0: var arr = []; michael@0: const N = 10; michael@0: michael@0: for (var i = 0; i < N; ++i) { michael@0: g.escaped = undefined; michael@0: g.eval("function h() { debugger }"); michael@0: g.eval("(function () { var y = {p:42}; h(); yield })().next();"); michael@0: assertEq(g.eval("escaped().p"), 42); michael@0: arr.push(g.escaped); michael@0: } michael@0: michael@0: gc(); michael@0: michael@0: for (var i = 0; i < N; ++i) michael@0: arr[i]();