tor-browser

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

Frame-eval-24.js (710B)


      1 // Make sure the getVariable/setVariable/eval functions work correctly with
      2 // unaliased locals.
      3 var g = newGlobal({newCompartment: true});
      4 g.eval(`
      5 function g() { debugger; };
      6 function f(arg) {
      7    var y = arg - 3;
      8    var a1 = 1;
      9    var a2 = 1;
     10    var b = arg + 9;
     11    var z = function() { return a1 + a2; };
     12    g();
     13    return y * b; // To prevent the JIT from optimizing out y and b.
     14 };`);
     15 
     16 var dbg = new Debugger(g);
     17 
     18 dbg.onDebuggerStatement = function handleDebugger(frame) {
     19    assertEq(frame.older.eval("y + b").return, 26);
     20    assertEq(frame.older.environment.getVariable("y"), 7);
     21    frame.older.environment.setVariable("b", 4);
     22    assertEq(frame.older.eval("y + b").return, 11);
     23 };
     24 
     25 g.f(10);