// A garbage collection in the debugger compartment does not disturb onPop | |
// handlers. | |
var g = newGlobal(); | |
var dbg = new Debugger(g); | |
var log; | |
dbg.onEnterFrame = function handleEnter(frame) { | |
log += '('; | |
frame.onPop = function handlePop(completion) { | |
log += ')'; | |
}; | |
}; | |
dbg.onDebuggerStatement = function handleDebugger (frame) { | |
log += 'd'; | |
// GC in the debugger's compartment only. | |
gc(dbg); | |
}; | |
log = ''; | |
assertEq(g.eval('debugger; 42;'), 42); | |
assertEq(log, '(d)'); |