resumption-07.js (803B)
1 // Return resumption values to non-debuggee frames. 2 3 load(libdir + 'asserts.js'); 4 5 var g = newGlobal({newCompartment: true}); 6 var dbg = new Debugger; 7 8 var log; 9 10 function handlerWithResumption(resumption) { 11 return function (frame) { 12 log += 'd'; 13 dbg.removeDebuggee(g); 14 return resumption; 15 }; 16 } 17 18 log = ''; 19 dbg.onDebuggerStatement = handlerWithResumption(undefined); 20 dbg.addDebuggee(g); 21 assertEq(g.eval('debugger; 42;'), 42); 22 assertEq(log, 'd'); 23 24 log = ''; 25 dbg.onDebuggerStatement = handlerWithResumption({ return: 1729 }); 26 dbg.addDebuggee(g); 27 assertEq(g.eval('debugger; 42;'), 1729); 28 assertEq(log, 'd'); 29 30 log = ''; 31 dbg.onDebuggerStatement = handlerWithResumption(null); 32 dbg.addDebuggee(g); 33 assertEq(g.evaluate('debugger; 42;', { catchTermination: true }), 'terminated'); 34 assertEq(log, 'd');