Source code
Revision control
Copy as Markdown
Other Tools
// Test that block scopes cannot be resurrected by onStep.
var g = newGlobal({newCompartment: true});
var dbg = new Debugger(g);
dbg.onDebuggerStatement = function(frame) {
frame.onStep = (function() {
frame.environment;
});
};
g.eval("debugger; for (let i = 0; i < 1; i++) (function(){});");
// If the last freshened block scope was incorrectly resurrected by onStep
// above, GCing will assert.
gc();
g.eval("debugger; { let i = 0; (function(){ i = 42; }); }");
gc();
g.eval("debugger; try { throw 42; } catch (e) { };");
gc();