Script-getBreakpoints-02.js (1234B)
1 // Script.prototype.getBreakpoints returns breakpoints for the current Debugger object only. 2 3 var g = newGlobal({newCompartment: true}); 4 5 var debuggers = []; 6 var hits = 0; 7 function attach(g, i) { 8 var dbg = Debugger(g); 9 dbg.onDebuggerStatement = function (frame) { 10 var s = frame.script; 11 var offs = s.getLineOffsets(g.line0 + 2); 12 var hitAny = false; 13 var handler = { 14 hit: function (frame) { 15 assertEq(this, handler); 16 assertEq(frame.script, s); 17 var bps = s.getBreakpoints(); 18 assertEq(bps.length, offs.length); 19 for (var i = 0; i < bps.length; i++) 20 assertEq(bps[i], handler); 21 22 if (!hitAny) { 23 hitAny = true; 24 hits++; 25 } 26 } 27 }; 28 for (var i = 0; i < offs.length; i++) 29 s.setBreakpoint(offs[i], handler); 30 hits++; 31 }; 32 debuggers[i] = dbg; 33 } 34 35 for (var i = 0; i < 3; i++) 36 attach(g, i); 37 g.done = false; 38 g.eval("var line0 = Error().lineNumber;\n" + 39 "debugger;\n" + // line0 + 1 40 "done = true;\n"); // line0 + 2 41 assertEq(hits, 6); 42 assertEq(g.done, true);