Source code

Revision control

Copy as Markdown

Other Tools

// When the debugger is triggered from different stack frames that happen to
// occupy the same memory, it delivers different Debugger.Frame objects.
var g = newGlobal({newCompartment: true});
var dbg = Debugger(g);
var hits;
var a = [];
dbg.onDebuggerStatement = function (frame) {
for (var i = 0; i < a.length; i++)
assertEq(a[i] === frame, false);
a.push(frame);
hits++;
};
g.eval("function f() { debugger; }");
g.eval("function h() { debugger; f(); }");
hits = 0;
g.eval("for (var i = 0; i < 4; i++) h();");
assertEq(hits, 8);