summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Environment-gc-03.js
blob: 3243ec65badb0fabd562ea4681bd3ad0d7ae3ede (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 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();