blob: 953e231ad524c5ae00ccca2c6765796f870af5dc [file] [log] [blame]
// If one Debugger's onPop handler causes another Debugger to create a
// Debugger.Frame instance referring to the same frame, that frame still
// gets marked as not live after all the onPop handlers have run.
var g = newGlobal();
var dbg1 = new Debugger(g);
var dbg2 = new Debugger(g);
var log;
var frame2;
dbg1.onEnterFrame = function handleEnter(frame) {
log += '(';
frame.onPop = function handlerPop1(c) {
log += ')';
frame2 = dbg2.getNewestFrame();
assertEq(frame2.live, true);
frame2.onPop = function handlePop2(c) {
assertEq("late frame's onPop handler ran",
"late frame's onPop handler should not run");
};
};
};
log = '';
assertEq(g.eval('40 + 2'), 42);
assertEq(log, '()');
assertEq(frame2.live, false);