tor-browser

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

Environment-setVariable-WouldRun.js (728B)


      1 // setVariable triggering a setter throws WouldRunDebuggee.
      2 
      3 load(libdir + "asserts.js");
      4 
      5 function test(code) {
      6    var g = newGlobal({newCompartment: true});
      7    g.eval("function d() { debugger; }");
      8    var dbg = Debugger(g);
      9    var hits = 0;
     10    dbg.onDebuggerStatement = function (frame) {
     11        var env = frame.older.environment.find("x");
     12        assertThrowsInstanceOf(
     13            () => env.setVariable("x", 0),
     14            Debugger.DebuggeeWouldRun);
     15        hits++;
     16    };
     17    g.eval(code);
     18    assertEq(hits, 1);
     19 }
     20 
     21 test("Object.defineProperty(this, 'x', {set: function (v) {}}); d();");
     22 test("Object.defineProperty(Object.prototype, 'x', {set: function (v) {}}); d();");
     23 test("with ({set x(v) {}}) eval(d());");