Script-getBreakpoints-01.js (1203B)
1 // Basic Script.prototype.getBreakpoints tests. 2 3 var g = newGlobal({newCompartment: true}); 4 g.eval("var line0 = Error().lineNumber;\n" + 5 "function f(x) {\n" + // line0 + 1 6 " if (x < 0)\n" + // line0 + 2 7 " return -x;\n" + // line0 + 3 8 " return x;\n" + 9 "}"); 10 11 var s; 12 var offsets = []; 13 var handlers = []; 14 var dbg = Debugger(g); 15 dbg.onDebuggerStatement = function (frame) { 16 s = frame.eval("f").return.script; 17 var off; 18 19 for (var i = 0; i < 3; i++) { 20 var off = s.getLineOffsets(g.line0 + 2 + i)[0]; 21 assertEq(typeof off, 'number'); 22 handlers[i] = {}; 23 s.setBreakpoint(off, handlers[i]); 24 offsets[i] = off; 25 } 26 }; 27 g.eval("debugger;"); 28 29 // getBreakpoints without an offset gets all breakpoints in the script. 30 var bps = s.getBreakpoints(); 31 assertEq(bps.length, handlers.length); 32 for (var i = 0; i < bps.length; i++) 33 assertEq(bps.indexOf(handlers[i]) !== -1, true); 34 35 // getBreakpoints with an offset finds only breakpoints at that offset. 36 for (var i = 0; i < offsets.length; i++) { 37 var bps = s.getBreakpoints(offsets[i]); 38 assertEq(bps.length, 1); 39 assertEq(bps[0], handlers[i]); 40 }