summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Environment-01.js
blob: 40f3b035703c84a55d813c8904865b4d4282535e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// A live Environment can observe the new variables introduced by ES5 non-strict direct eval.

var g = newGlobal({newCompartment: true});
g.eval("var x = 'global'; function f(s) { h(); eval(s); h(); }");
g.eval("function h() { debugger; }");
var dbg = Debugger(g);
var env = undefined;
var hits = 0;
dbg.onDebuggerStatement = function (hframe) {
    if (env === undefined) {
        // First debugger statement.
        env = hframe.older.environment;
        assertEq(env.find("x") !== env, true);
        assertEq(env.names().indexOf("x"), -1);
    } else {
        // Second debugger statement, post-eval.
        assertEq(env.find("x"), env);
        assertEq(env.names().indexOf("x") >= 0, true);
    }
    hits++;
};
g.f("var x = 'local';");
assertEq(hits, 2);