Source code
Revision control
Copy as Markdown
Other Tools
// Basic Script.prototype.getBreakpoints tests.
var g = newGlobal({newCompartment: true});
g.eval("var line0 = Error().lineNumber;\n" +
"function f(x) {\n" + // line0 + 1
" if (x < 0)\n" + // line0 + 2
" return -x;\n" + // line0 + 3
" return x;\n" +
"}");
var s;
var offsets = [];
var handlers = [];
var dbg = Debugger(g);
dbg.onDebuggerStatement = function (frame) {
s = frame.eval("f").return.script;
var off;
for (var i = 0; i < 3; i++) {
var off = s.getLineOffsets(g.line0 + 2 + i)[0];
assertEq(typeof off, 'number');
handlers[i] = {};
s.setBreakpoint(off, handlers[i]);
offsets[i] = off;
}
};
g.eval("debugger;");
// getBreakpoints without an offset gets all breakpoints in the script.
var bps = s.getBreakpoints();
assertEq(bps.length, handlers.length);
for (var i = 0; i < bps.length; i++)
assertEq(bps.indexOf(handlers[i]) !== -1, true);
// getBreakpoints with an offset finds only breakpoints at that offset.
for (var i = 0; i < offsets.length; i++) {
var bps = s.getBreakpoints(offsets[i]);
assertEq(bps.length, 1);
assertEq(bps[0], handlers[i]);
}