S25.4.4.3_A7.2_T1.js (1189B)
1 // |reftest| async 2 // Copyright 2014 Cubane Canada, Inc. All rights reserved. 3 // See LICENSE for details. 4 5 /*--- 6 es6id: S25.4.4.3_A7.2_T1 7 author: Sam Mikes 8 description: Promise.race([p1, p2]) settles when first settles 9 includes: [promiseHelper.js] 10 flags: [async] 11 ---*/ 12 13 var sequence = []; 14 15 var p1 = Promise.reject(1), 16 p2 = Promise.resolve(2), 17 p = Promise.race([p1, p2]); 18 19 sequence.push(1); 20 21 p.then(function() { 22 throw new Test262Error("Should not be fulfilled - expected rejection."); 23 }, function(result) { 24 assert.sameValue(result, 1, 'The value of result is expected to be 1'); 25 26 sequence.push(4); 27 assert.sameValue(sequence.length, 4, 'The value of sequence.length is expected to be 4'); 28 checkSequence(sequence, "This happens second"); 29 }).catch($DONE); 30 31 Promise.resolve().then(function() { 32 sequence.push(3); 33 assert.sameValue(sequence.length, 3, 'The value of sequence.length is expected to be 3'); 34 checkSequence(sequence, "This happens first"); 35 }).then(function() { 36 sequence.push(5); 37 assert.sameValue(sequence.length, 5, 'The value of sequence.length is expected to be 5'); 38 checkSequence(sequence, "This happens third"); 39 }).then($DONE, $DONE); 40 41 sequence.push(2);