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');
|