tor-browser

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

Environment-module-02.js (722B)


      1 // Debug environments for module environments should be able to access closed
      2 // over variables after the module script has executed.
      3 
      4 var g = newGlobal({newCompartment: true});
      5 var dbg = Debugger(g);
      6 
      7 const m = g.parseModule(`
      8  var x = 42;
      9  export function foo() { return x; }
     10  foo();
     11 `);
     12 moduleLink(m);
     13 
     14 let fooFunction;
     15 dbg.onEnterFrame = function (frame) {
     16  fooFunction = frame.callee;
     17 };
     18 
     19 moduleEvaluate(m);
     20 assertEq(fooFunction instanceof Debugger.Object, true);
     21 
     22 dbg.onEnterFrame = function (frame) {
     23  const env = frame.environment.parent;
     24  assertEq(env.names().join(','), "foo,x");
     25  assertEq(env.getVariable('x'), 42);
     26  env.setVariable('x', 3);
     27  assertEq(env.getVariable('x'), 3);
     28 };
     29 
     30 fooFunction.call();