tor-browser

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

Frame-older-02.js (804B)


      1 // An explicit async stack should interrupt a Debugger.Frame chain.
      2 
      3 var g = newGlobal({ newCompartment: true });
      4 var dbg = new Debugger(g);
      5 let done = false;
      6 dbg.onDebuggerStatement = function (frame) {
      7  // The frame has no "older" frame because the explicit async stack
      8  // attached to the async function takes priority over the real
      9  // parent frame that is tracked in the frame iterator.
     10  assertEq(!!frame.older, false);
     11 
     12  done = true;
     13 };
     14 
     15 g.eval(`
     16 let draining = false;
     17 async function run() {
     18  await Promise.resolve();
     19 
     20  // Make sure that the test is running within "drainJobQueue()".
     21  assertEq(draining, true);
     22  debugger;
     23 }
     24 
     25 (function main() {
     26  run();
     27 
     28  // Force resumption of the "run" function.
     29  draining = true;
     30  drainJobQueue();
     31  draining = false;
     32 })();
     33 `);
     34 assertEq(done, true);