tor-browser

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

Frame-this-15.js (686B)


      1 // Test that Debugger.Frame.prototype.this works on a suspended async
      2 // function.
      3 
      4 load(libdir + "asserts.js");
      5 
      6 const g = newGlobal({ newCompartment: true });
      7 const dbg = new Debugger();
      8 const gDO = dbg.addDebuggee(g);
      9 
     10 g.eval(`
     11 var context = {};
     12 var f = async function() {
     13  await Promise.resolve();
     14  return this;
     15 }.bind(context);
     16 `);
     17 
     18 let frame;
     19 dbg.onEnterFrame = f => {
     20  frame = f;
     21  assertEq(frame.this, gDO.makeDebuggeeValue(g.context));
     22  dbg.onEnterFrame = undefined;
     23 };
     24 
     25 (async () => {
     26  const promise = g.f();
     27 
     28  assertEq(!!frame, true);
     29  assertEq(frame.this, gDO.makeDebuggeeValue(g.context));
     30 
     31  await promise;
     32 
     33  assertThrowsInstanceOf(() => frame.this, Error);
     34 })();