tor-browser

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

Debugger-onNewPromise-06.js (1152B)


      1 // Resumption values from onNewPromise 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.onNewPromise = function (g) { log += 'n'; return undefined; };
     10 log = '';
     11 assertEq(typeof new g.Promise(function (){}), "object");
     12 assertEq(log, 'n');
     13 
     14 dbg.uncaughtExceptionHook = function (ex) { assertEq(/disallowed/.test(ex), true); log += 'u'; }
     15 dbg.onNewPromise = function (g) { log += 'n'; return { return: "snoo" }; };
     16 log = '';
     17 assertEq(typeof new g.Promise(function (){}), "object");
     18 assertEq(log, 'nu');
     19 
     20 dbg.onNewPromise = function (g) { log += 'n'; return { throw: "snoo" }; };
     21 log = '';
     22 assertEq(typeof new g.Promise(function (){}), "object");
     23 assertEq(log, 'nu');
     24 
     25 dbg.onNewPromise = function (g) { log += 'n'; return null; };
     26 log = '';
     27 assertEq(typeof new g.Promise(function (){}), "object");
     28 assertEq(log, 'nu');
     29 
     30 dbg.uncaughtExceptionHook = function (ex) { assertEq(/foopy/.test(ex), true); log += 'u'; }
     31 dbg.onNewPromise = function (g) { log += 'n'; throw "foopy"; };
     32 log = '';
     33 assertEq(typeof new g.Promise(function (){}), "object");
     34 assertEq(log, 'nu');