tor-browser

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

Debugger-onPromiseSettled-05.js (551B)


      1 // Settling a promise within an onPromiseSettled handler causes a recursive
      2 // handler invocation.
      3 
      4 var g = newGlobal({newCompartment: true});
      5 var dbg = new Debugger();
      6 var gw = dbg.addDebuggee(g);
      7 var log;
      8 var depth;
      9 
     10 dbg.onPromiseSettled = function (promise) {
     11  log += '('; depth++;
     12 
     13  assertEq(promise.seen, undefined);
     14  promise.seen = true;
     15 
     16  if (depth < 3) {
     17    gw.executeInGlobal(`settlePromiseNow(new Promise(_=>{}));`);
     18  }
     19  log += ')'; depth--;
     20 };
     21 
     22 log = '';
     23 depth = 0;
     24 g.settlePromiseNow(new g.Promise(_=>{}));
     25 assertEq(log, '((()))');