tor-browser

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

Frame-eval-22.js (870B)


      1 // Debugger.Frame preserves Ion frame identity
      2 
      3 load(libdir + "jitopts.js");
      4 
      5 if (!jitTogglesMatch(Opts_Ion2NoOffthreadCompilation))
      6  quit();
      7 
      8 withJitOptions(Opts_Ion2NoOffthreadCompilation, function () {
      9  var g = newGlobal({newCompartment: true});
     10  var dbg1 = new Debugger;
     11  var dbg2 = new Debugger;
     12 
     13  g.toggle = function toggle(x, d) {
     14    if (d) {
     15      dbg1.addDebuggee(g);
     16      dbg2.addDebuggee(g);
     17      var frame1 = dbg1.getNewestFrame();
     18      assertEq(frame1.environment.getVariable("x"), x);
     19      assertEq(frame1.implementation, "ion");
     20      frame1.environment.setVariable("x", "not 42");
     21      assertEq(dbg2.getNewestFrame().environment.getVariable("x"), "not 42");
     22    }
     23  };
     24 
     25  g.eval("" + function f(x, d) { toggle(x, d); });
     26 
     27  g.eval("(" + function test() {
     28    for (var i = 0; i < 5; i++)
     29      f(42, false);
     30    f(42, true);
     31  } + ")();");
     32 });