tor-browser

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

inspect-wrapped-promise.js (4296B)


      1 load(libdir + "asserts.js");
      2 
      3 ignoreUnhandledRejections();
      4 
      5 let g = newGlobal({newCompartment: true});
      6 let dbg = new Debugger();
      7 let gw = dbg.addDebuggee(g);
      8 
      9 g.promise1 = new Promise(() => {});
     10 g.promise2 = Promise.resolve(42);
     11 g.promise3 = Promise.reject(42);
     12 g.promise4 = new Object();
     13 g.promise5 = Promise.prototype;
     14 
     15 let promiseDO1 = gw.getOwnPropertyDescriptor('promise1').value;
     16 let promiseDO2 = gw.getOwnPropertyDescriptor('promise2').value;
     17 let promiseDO3 = gw.getOwnPropertyDescriptor('promise3').value;
     18 let promiseDO4 = gw.getOwnPropertyDescriptor('promise4').value;
     19 let promiseDO5 = gw.getOwnPropertyDescriptor('promise5').value;
     20 
     21 assertEq(promiseDO1.isPromise, true);
     22 assertEq(promiseDO2.isPromise, true);
     23 assertEq(promiseDO3.isPromise, true);
     24 assertEq(promiseDO4.isPromise, false);
     25 assertEq(promiseDO5.isPromise, false);
     26 
     27 assertEq(promiseDO1.promiseState, "pending");
     28 assertEq(promiseDO2.promiseState, "fulfilled");
     29 assertEq(promiseDO3.promiseState, "rejected");
     30 assertThrowsInstanceOf(function () { promiseDO4.promiseState }, TypeError);
     31 assertThrowsInstanceOf(function () { promiseDO5.promiseState }, TypeError);
     32 
     33 assertThrowsInstanceOf(function () { promiseDO1.promiseValue }, TypeError);
     34 assertEq(promiseDO2.promiseValue, 42);
     35 assertThrowsInstanceOf(function () { promiseDO3.promiseValue }, TypeError);
     36 assertThrowsInstanceOf(function () { promiseDO4.promiseValue }, TypeError);
     37 assertThrowsInstanceOf(function () { promiseDO5.promiseValue }, TypeError);
     38 
     39 assertThrowsInstanceOf(function () { promiseDO1.promiseReason }, TypeError);
     40 assertThrowsInstanceOf(function () { promiseDO2.promiseReason }, TypeError);
     41 assertEq(promiseDO3.promiseReason, 42);
     42 assertThrowsInstanceOf(function () { promiseDO4.promiseReason }, TypeError);
     43 assertThrowsInstanceOf(function () { promiseDO5.promiseReason }, TypeError);
     44 
     45 // Depending on whether async stacks are activated, this can be null, which
     46 // has typeof null.
     47 assertEq(typeof promiseDO1.promiseAllocationSite === "object", true);
     48 assertEq(typeof promiseDO2.promiseAllocationSite === "object", true);
     49 assertEq(typeof promiseDO3.promiseAllocationSite === "object", true);
     50 assertThrowsInstanceOf(function () { promiseDO4.promiseAllocationSite }, TypeError);
     51 assertThrowsInstanceOf(function () { promiseDO5.promiseAllocationSite }, TypeError);
     52 
     53 // Depending on whether async stacks are activated, this can be null, which
     54 // has typeof null.
     55 assertThrowsInstanceOf(function () { promiseDO1.promiseResolutionSite }, TypeError);
     56 assertEq(typeof promiseDO2.promiseResolutionSite === "object", true);
     57 assertEq(typeof promiseDO3.promiseResolutionSite === "object", true);
     58 assertThrowsInstanceOf(function () { promiseDO4.promiseResolutionSite }, TypeError);
     59 assertThrowsInstanceOf(function () { promiseDO5.promiseResolutionSite }, TypeError);
     60 
     61 assertEq(promiseDO1.promiseID, 1);
     62 assertEq(promiseDO2.promiseID, 2);
     63 assertEq(promiseDO3.promiseID, 3);
     64 assertThrowsInstanceOf(function () { promiseDO4.promiseID }, TypeError);
     65 assertThrowsInstanceOf(function () { promiseDO5.promiseID }, TypeError);
     66 
     67 assertEq(typeof promiseDO1.promiseDependentPromises, "object");
     68 assertEq(typeof promiseDO2.promiseDependentPromises, "object");
     69 assertEq(typeof promiseDO3.promiseDependentPromises, "object");
     70 assertThrowsInstanceOf(function () { promiseDO4.promiseDependentPromises }, TypeError);
     71 assertThrowsInstanceOf(function () { promiseDO5.promiseDependentPromises }, TypeError);
     72 
     73 assertEq(promiseDO1.promiseDependentPromises.length, 0);
     74 assertEq(promiseDO2.promiseDependentPromises.length, 0);
     75 assertEq(promiseDO3.promiseDependentPromises.length, 0);
     76 
     77 assertEq(typeof promiseDO1.promiseLifetime, "number");
     78 assertEq(typeof promiseDO2.promiseLifetime, "number");
     79 assertEq(typeof promiseDO3.promiseLifetime, "number");
     80 assertThrowsInstanceOf(function () { promiseDO4.promiseLifetime }, TypeError);
     81 assertThrowsInstanceOf(function () { promiseDO5.promiseLifetime }, TypeError);
     82 
     83 assertThrowsInstanceOf(function () { promiseDO1.promiseTimeToResolution }, TypeError);
     84 assertEq(typeof promiseDO2.promiseTimeToResolution, "number");
     85 assertEq(typeof promiseDO3.promiseTimeToResolution, "number");
     86 assertThrowsInstanceOf(function () { promiseDO4.promiseTimeToResolution }, TypeError);
     87 assertThrowsInstanceOf(function () { promiseDO5.promiseTimeToResolution }, TypeError);