tor-browser

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

promise-rejection-tracking.js (864B)


      1 // |reftest| skip-if(!xulRuntime.shell) -- needs setPromiseRejectionTrackerCallback
      2 
      3 const UNHANDLED = 0;
      4 const HANDLED   = 1;
      5 
      6 let rejections = new Map();
      7 function rejectionTracker(promise, state) {
      8    rejections.set(promise, state);
      9 }
     10 setPromiseRejectionTrackerCallback(rejectionTracker);
     11 
     12 // Unhandled rejections are tracked.
     13 let reject;
     14 let p = new Promise((res_, rej_) => (reject = rej_));
     15 assertEq(rejections.has(p), false);
     16 reject('reason');
     17 assertEq(rejections.get(p), UNHANDLED);
     18 // Later handling updates the tracking.
     19 p.then(_=>_, _=>_);
     20 assertEq(rejections.get(p), HANDLED);
     21 
     22 rejections.clear();
     23 
     24 // Handled rejections aren't tracked at all.
     25 p = new Promise((res_, rej_) => (reject = rej_));
     26 assertEq(rejections.has(p), false);
     27 p.then(_=>_, _=>_);
     28 reject('reason');
     29 assertEq(rejections.has(p), false);
     30 
     31 this.reportCompare && reportCompare(true,true);