tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

Environment-getVariable-10.js (784B)


      1 // getVariable works on a heavyweight environment after control leaves its scope.
      2 
      3 var g = newGlobal({newCompartment: true});
      4 var dbg = Debugger(g);
      5 var envs = [];
      6 dbg.onDebuggerStatement = function (frame) {
      7    envs.push(frame.environment);
      8 };
      9 g.eval("var f;\n" +
     10       "for (var x = 0; x < 3; x++) {\n" +
     11       "    (function (x) {\n" +
     12       "        for (var y = 0; y < 3; y++) {\n" +
     13       "            (function (z) {\n" +
     14       "                eval(z); // force heavyweight\n" +
     15       "                debugger;\n" +
     16       "            })(x + y);\n" +
     17       "        }\n" +
     18       "    })(x);\n" +
     19       "}");
     20 
     21 var i = 0;
     22 for (var x = 0; x < 3; x++) {
     23    for (var y = 0; y < 3; y++) {
     24        var e = envs[i++];
     25        assertEq(e.getVariable("z"), x + y);
     26    }
     27 }