tor-browser

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

reject-ignored-deferred.js (1321B)


      1 // |reftest| async
      2 // Copyright (C) 2019 Leo Balter. All rights reserved.
      3 // This code is governed by the BSD license found in the LICENSE file.
      4 
      5 /*---
      6 description: >
      7  Resolved promises ignore rejections through deferred invocation of the
      8    provided resolving function
      9 esid: sec-promise.allsettled
     10 info: |
     11  6. Let result be PerformPromiseAllSettled(iteratorRecord, C, promiseCapability).
     12 
     13  Runtime Semantics: PerformPromiseAllSettled
     14  
     15  6. Repeat
     16    ...
     17    z. Perform ? Invoke(nextPromise, "then", « resolveElement, rejectElement »).
     18 flags: [async]
     19 features: [Promise.allSettled]
     20 ---*/
     21 
     22 var simulation = {};
     23 
     24 var fulfiller = {
     25  then(resolve) {
     26    new Promise(function(resolve) {
     27        resolve();
     28      })
     29      .then(function() {
     30        resolve(42);
     31      });
     32  }
     33 };
     34 var rejector = {
     35  then(resolve, reject) {
     36    new Promise(function(resolve) {
     37        resolve();
     38      })
     39      .then(function() {
     40        resolve(simulation);
     41        reject();
     42      });
     43  }
     44 };
     45 
     46 Promise.allSettled([fulfiller, rejector])
     47  .then((settleds) => {
     48    assert.sameValue(settleds.length, 2);
     49    assert.sameValue(settleds[0].status, 'fulfilled');
     50    assert.sameValue(settleds[0].value, 42);
     51    assert.sameValue(settleds[1].status, 'fulfilled');
     52    assert.sameValue(settleds[1].value, simulation);
     53  }).then($DONE, $DONE);