Source code
Revision control
Copy as Markdown
Other Tools
// Return resumption values to non-debuggee frames.
load(libdir + 'asserts.js');
var g = newGlobal({newCompartment: true});
var dbg = new Debugger;
var log;
function handlerWithResumption(resumption) {
return function (frame) {
log += 'd';
dbg.removeDebuggee(g);
return resumption;
};
}
log = '';
dbg.onDebuggerStatement = handlerWithResumption(undefined);
dbg.addDebuggee(g);
assertEq(g.eval('debugger; 42;'), 42);
assertEq(log, 'd');
log = '';
dbg.onDebuggerStatement = handlerWithResumption({ return: 1729 });
dbg.addDebuggee(g);
assertEq(g.eval('debugger; 42;'), 1729);
assertEq(log, 'd');
log = '';
dbg.onDebuggerStatement = handlerWithResumption(null);
dbg.addDebuggee(g);
assertEq(g.evaluate('debugger; 42;', { catchTermination: true }), 'terminated');
assertEq(log, 'd');