tor-browser

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

Object-getPromiseReactions-01.js (933B)


      1 // Debugger.Object.prototype.getPromiseReactions throws on non-promises, but
      2 // works on wrappers of promises.
      3 
      4 load(libdir + 'asserts.js');
      5 load(libdir + 'array-compare.js');
      6 
      7 var g = newGlobal({ newCompartment: true });
      8 var dbg = new Debugger;
      9 var DOg = dbg.addDebuggee(g);
     10 
     11 assertThrowsInstanceOf(() => DOg.getPromiseReactions(), TypeError);
     12 
     13 // Try retrieving an empty reaction list from an actual promise.
     14 g.eval(`var p = Promise.resolve();`);
     15 var DOgp = DOg.makeDebuggeeValue(g.p);
     16 assertEq(true, arraysEqual(DOgp.getPromiseReactions(), []));
     17 
     18 // Try a Debugger.Object of a cross-compartment wrapper of a promise. This
     19 // should still work: the promise accessors generally do checked unwraps of
     20 // their arguments.
     21 var g2 = newGlobal({ newCompartment: true });
     22 DOg2 = dbg.addDebuggee(g2);
     23 var DOg2gp = DOg2.makeDebuggeeValue(g.p);
     24 assertEq(DOgp, DOg2gp.unwrap());
     25 assertEq(true, arraysEqual(DOg2gp.getPromiseReactions(), []));