tor-browser

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

Debugger-onPromiseSettled-06.js (1141B)


      1 // Resumption values from onPromiseSettled handlers are disallowed.
      2 
      3 load(libdir + 'asserts.js');
      4 
      5 var g = newGlobal({newCompartment: true});
      6 var dbg = new Debugger(g);
      7 var log;
      8 
      9 dbg.onPromiseSettled = function (g) { log += 's'; return undefined; };
     10 log = '';
     11 g.settlePromiseNow(new g.Promise(function (){}));
     12 assertEq(log, 's');
     13 
     14 dbg.uncaughtExceptionHook = function (ex) { assertEq(/disallowed/.test(ex), true); log += 'u'; }
     15 dbg.onPromiseSettled = function (g) { log += 's'; return { return: "snoo" }; };
     16 log = '';
     17 g.settlePromiseNow(new g.Promise(function (){}));
     18 assertEq(log, 'su');
     19 
     20 dbg.onPromiseSettled = function (g) { log += 's'; return { throw: "snoo" }; };
     21 log = '';
     22 g.settlePromiseNow(new g.Promise(function (){}));
     23 assertEq(log, 'su');
     24 
     25 dbg.onPromiseSettled = function (g) { log += 's'; return null; };
     26 log = '';
     27 g.settlePromiseNow(new g.Promise(function (){}));
     28 assertEq(log, 'su');
     29 
     30 dbg.uncaughtExceptionHook = function (ex) { assertEq(/foopy/.test(ex), true); log += 'u'; }
     31 dbg.onPromiseSettled = function (g) { log += 's'; throw "foopy"; };
     32 log = '';
     33 g.settlePromiseNow(new g.Promise(function (){}));
     34 assertEq(log, 'su');