Debugger-onEnterFrame-resumption-02.js (673B)
1 // If debugger.onEnterFrame returns {throw:val}, an exception is thrown in the debuggee. 2 3 load(libdir + "asserts.js"); 4 5 var g = newGlobal({newCompartment: true}); 6 g.set = false; 7 g.eval("function f() {\n" + 8 " set = true;\n" + 9 " return 'fail';\n" + 10 "}\n"); 11 12 var dbg = Debugger(g); 13 var savedFrame; 14 dbg.onEnterFrame = function (frame) { 15 savedFrame = frame; 16 return {throw: "pass"}; 17 }; 18 19 savedFrame = undefined; 20 assertThrowsValue(g.f, "pass"); 21 assertEq(savedFrame.onStack, false); 22 assertEq(g.set, false); 23 24 savedFrame = undefined; 25 assertThrowsValue(function () { new g.f; }, "pass"); 26 assertEq(savedFrame.onStack, false); 27 assertEq(g.set, false);