|
1 // Q: But who shall debug the debuggers? A: jimb |
|
2 |
|
3 var log = ''; |
|
4 |
|
5 function addDebug(g, id) { |
|
6 var debuggerGlobal = newGlobal(); |
|
7 debuggerGlobal.debuggee = g; |
|
8 debuggerGlobal.id = id; |
|
9 debuggerGlobal.print = function (s) { log += s; }; |
|
10 debuggerGlobal.eval( |
|
11 'var dbg = new Debugger(debuggee);\n' + |
|
12 'dbg.onDebuggerStatement = function () { print(id); debugger; print(id); };\n'); |
|
13 return debuggerGlobal; |
|
14 } |
|
15 |
|
16 var base = newGlobal(); |
|
17 var top = base; |
|
18 for (var i = 0; i < 8; i++) // why have 2 debuggers when you can have 8 |
|
19 top = addDebug(top, i); |
|
20 base.eval("debugger;"); |
|
21 assertEq(log, '0123456776543210'); |