summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Environment-getVariable-10.js
blob: 57273cc628136dc01e096378d1badc0f736fb3f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// getVariable works on a heavyweight environment after control leaves its scope.

var g = newGlobal({newCompartment: true});
var dbg = Debugger(g);
var envs = [];
dbg.onDebuggerStatement = function (frame) {
    envs.push(frame.environment);
};
g.eval("var f;\n" +
       "for (var x = 0; x < 3; x++) {\n" +
       "    (function (x) {\n" +
       "        for (var y = 0; y < 3; y++) {\n" +
       "            (function (z) {\n" +
       "                eval(z); // force heavyweight\n" +
       "                debugger;\n" +
       "            })(x + y);\n" +
       "        }\n" +
       "    })(x);\n" +
       "}");

var i = 0;
for (var x = 0; x < 3; x++) {
    for (var y = 0; y < 3; y++) {
        var e = envs[i++];
        assertEq(e.getVariable("z"), x + y);
    }
}