Source code

Revision control

Copy as Markdown

Other Tools

// A garbage collection in the debugger compartment does not disturb onPop
// handlers.
var g = newGlobal({newCompartment: true});
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)');