Source code

Revision control

Copy as Markdown

Other Tools

// frame.onStep can coexist with breakpoints.
var g = newGlobal({newCompartment: true});
var dbg = Debugger(g);
var log = '';
dbg.onEnterFrame = function (frame) {
var handler = {hit: function () { log += 'B'; }};
var lines = frame.script.getAllOffsets();
for (var line in lines) {
line = Number(line);
var offs = lines[line];
for (var i = 0; i < offs.length; i++)
frame.script.setBreakpoint(offs[i], handler);
}
frame.onStep = function () { log += 's'; };
};
g.eval("one = 1;\n" +
"two = 2;\n" +
"three = 3;\n" +
"four = 4;\n");
assertEq(g.four, 4);
// Breakpoints hit on all four lines, plus the final line.
assertEq(log.replace(/[^B]/g, ''), 'BBBBB');
// onStep was called between each pair of breakpoints.
assertEq(/BB/.exec(log), null);