tor-browser

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

Frame-onStep-async-gc-01.js (579B)


      1 // An onStep handler on a suspended async function frame keeps a Debugger alive.
      2 
      3 let g = newGlobal({newCompartment: true});
      4 g.eval(`
      5  async function f() {
      6    debugger;
      7    await Promise.resolve(0);
      8    return 'ok';
      9  }
     10 `);
     11 
     12 let dbg = Debugger(g);
     13 let hit = false;
     14 dbg.onDebuggerStatement = frame => {
     15    frame.onPop = completion => {
     16        frame.onStep = () => { hit = true; };
     17        frame.onPop = undefined;
     18    };
     19    dbg.onDebuggerStatement = undefined;
     20    dbg = null;
     21 };
     22 
     23 g.f();
     24 assertEq(dbg, null);
     25 gc();
     26 assertEq(hit, false);
     27 drainJobQueue();
     28 assertEq(hit, true);