Debugger-onEnterFrame-resumption-03.js (711B)
1 // If debugger.onEnterFrame returns null, the debuggee is terminated immediately. 2 3 load(libdir + "asserts.js"); 4 5 var g = newGlobal({newCompartment: true}); 6 g.set = false; 7 8 var dbg = Debugger(g); 9 var savedFrame; 10 dbg.onDebuggerStatement = function (frame) { 11 var innerSavedFrame; 12 dbg.onEnterFrame = function (frame) { 13 innerSavedFrame = frame; 14 return null; 15 }; 16 // Using frame.eval lets us catch termination. 17 assertEq(frame.eval("set = true;"), null); 18 assertEq(innerSavedFrame.onStack, false); 19 savedFrame = frame; 20 return { return: "pass" }; 21 }; 22 23 savedFrame = undefined; 24 assertEq(g.eval("debugger;"), "pass"); 25 assertEq(savedFrame.onStack, false); 26 assertEq(g.set, false);