|
1 // A garbage collection in the debugger compartment does not disturb onPop |
|
2 // handlers. |
|
3 var g = newGlobal(); |
|
4 var dbg = new Debugger(g); |
|
5 var log; |
|
6 |
|
7 dbg.onEnterFrame = function handleEnter(frame) { |
|
8 log += '('; |
|
9 frame.onPop = function handlePop(completion) { |
|
10 log += ')'; |
|
11 }; |
|
12 }; |
|
13 |
|
14 dbg.onDebuggerStatement = function handleDebugger (frame) { |
|
15 log += 'd'; |
|
16 // GC in the debugger's compartment only. |
|
17 gc(dbg); |
|
18 }; |
|
19 |
|
20 log = ''; |
|
21 assertEq(g.eval('debugger; 42;'), 42); |
|
22 assertEq(log, '(d)'); |