resumption-05.js (966B)
1 // null resumption value means terminate the debuggee 2 3 var g = newGlobal({newCompartment: true}); 4 g.debuggeeGlobal = this; 5 g.eval("(" + function () { 6 var dbg = new Debugger(debuggeeGlobal); 7 dbg.onDebuggerStatement = function (frame) { 8 if (frame.callee === null) { 9 // The first debugger statement below. 10 debuggeeGlobal.log += "1"; 11 var cv = frame.eval("f();"); 12 assertEq(cv, null); 13 debuggeeGlobal.log += "2"; 14 } else { 15 // The second debugger statement. 16 debuggeeGlobal.log += "3"; 17 assertEq(frame.callee.name, "f"); 18 return null; 19 } 20 }; 21 } + ")()"); 22 23 var log = ""; 24 debugger; 25 26 function f() { 27 log += "4"; 28 try { 29 debugger; // the debugger terminates us here 30 } finally { 31 log += "5"; // this should not execute 32 } 33 } 34 35 assertEq(log, "1432");