breakpoint-04.js (771B)
1 // Hitting a breakpoint with no hit method does nothing. 2 3 var g = newGlobal({newCompartment: true}); 4 g.s = ''; 5 g.eval("var line0 = Error().lineNumber;\n" + 6 "function f() {\n" + // line0 + 1 7 " debugger;\n" + // line0 + 2 8 " s += 'x';\n" + // line0 + 3 9 "}\n") 10 var dbg = Debugger(g); 11 var bp = []; 12 dbg.onDebuggerStatement = function (frame) { 13 g.s += 'D'; 14 var arr = frame.script.getLineOffsets(g.line0 + 3); 15 for (var i = 0; i < arr.length; i++) { 16 var obj = {}; 17 bp[i] = obj; 18 frame.script.setBreakpoint(arr[i], obj); 19 } 20 }; 21 22 g.f(); 23 assertEq(g.s, "Dx"); 24 25 dbg.onDebuggerStatement = undefined; 26 27 for (var i = 0; i < bp.length; i++) 28 bp[i].hit = function () { g.s += 'B'; }; 29 g.f(); 30 assertEq(g.s, "DxBx");