// Trying to set an onPop handler on a dead frame throws an exception. var g = newGlobal(); g.eval("function f() { }"); g.eval("function g() { f(); }"); g.eval("function h() { g(); }"); g.eval("function i() { h(); }"); var dbg = new Debugger(g); var log; var frames = []; dbg.onEnterFrame = function handleEnter(f) { log += "("; assertEq(f.live, true); frames.push(f); }; log = ''; g.i(); assertEq(log, "(((("); assertEq(frames.length, 4); for (i = 0; i < frames.length; i++) { assertEq(frames[i].live, false); var set = false; try { frames[i].onPop = function unappreciated() { }; set = true; // don't assert in a 'try' block } catch (x) { assertEq(x instanceof Error, true); } assertEq(set, false); }