summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Debugger-multi-03.js
blob: cd89fdead1ab93202c2b97417fab3db4c2f390a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Q: But who shall debug the debuggers?  A: jimb

var log = '';

function addDebug(g, id) {
    var debuggerGlobal = newGlobal({newCompartment: true});
    debuggerGlobal.debuggee = g;
    debuggerGlobal.id = id;
    debuggerGlobal.print = function (s) { log += s; };
    debuggerGlobal.eval(
        'var dbg = new Debugger(debuggee);\n' +
        'dbg.onDebuggerStatement = function () { print(id); debugger; print(id); };\n');
    return debuggerGlobal;
}

var base = newGlobal({newCompartment: true});
var top = base;
for (var i = 0; i < 8; i++)  // why have 2 debuggers when you can have 8
    top = addDebug(top, i);
base.eval("debugger;");
assertEq(log, '0123456776543210');