tor-browser

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

Environment-methods-toPrimitive.js (663B)


      1 // removeDebuggee can be called through ToPrimitive while converting the argument
      2 // passed to Debugger.Environment.{find,getVariable,setVariable} to string.
      3 
      4 var g = newGlobal({newCompartment: true});
      5 g.eval("function f() { debugger; }");
      6 var dbg = new Debugger();
      7 var oddball = {[Symbol.toPrimitive]: () => dbg.removeDebuggee(g)};
      8 
      9 for (var method of ["find", "getVariable", "setVariable"]) {
     10  dbg.addDebuggee(g);
     11  dbg.onDebuggerStatement = frame => {
     12    var ex;
     13    try {
     14      frame.environment[method](oddball, oddball);
     15    } catch (e) {
     16      ex = e;
     17    }
     18    assertEq(ex.message, "Debugger.Environment is not a debuggee environment");
     19  };
     20  g.f();
     21 }