reject-ignored-immed.js (1121B)
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 immediate 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 resolve(42); 27 } 28 }; 29 30 var lateRejector = { 31 then(resolve, reject) { 32 resolve(simulation); 33 reject(); 34 } 35 }; 36 37 Promise.allSettled([fulfiller, lateRejector]) 38 .then((settleds) => { 39 assert.sameValue(settleds.length, 2); 40 assert.sameValue(settleds[0].status, 'fulfilled'); 41 assert.sameValue(settleds[0].value, 42); 42 assert.sameValue(settleds[1].status, 'fulfilled'); 43 assert.sameValue(settleds[1].value, simulation); 44 }).then($DONE, $DONE);