tor-browser

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

S25.4.4.5_A3.1_T1.js (1295B)


      1 // |reftest| async
      2 // Copyright 2014 Cubane Canada, Inc.  All rights reserved.
      3 // See LICENSE for details.
      4 
      5 /*---
      6 info: |
      7   Promise.resolve
      8 es6id: S25.4.4.5_A3.1_T1
      9 author: Sam Mikes
     10 description: Promise.resolve delegates to foreign thenable
     11 includes: [promiseHelper.js]
     12 flags: [async]
     13 ---*/
     14 
     15 var sequence = [];
     16 
     17 var thenable = {
     18  then: function(onResolve, onReject) {
     19    sequence.push(3);
     20    assert.sameValue(sequence.length, 3);
     21    checkSequence(sequence, "thenable.then called");
     22 
     23    assert.sameValue(this, thenable);
     24 
     25    onResolve('resolved');
     26 
     27    sequence.push(4);
     28    assert.sameValue(sequence.length, 4);
     29    checkSequence(sequence, "after resolved");
     30 
     31    throw new Error('interrupt flow');
     32 
     33    sequence.push(4);
     34    assert.sameValue(sequence.length, 4);
     35    checkSequence(sequence, "duplicate sequence point not pushed");
     36  }
     37 };
     38 
     39 sequence.push(1);
     40 assert.sameValue(sequence.length, 1);
     41 checkSequence(sequence, "no async calls yet");
     42 
     43 var p1 = Promise.resolve(thenable);
     44 
     45 sequence.push(2);
     46 assert.sameValue(sequence.length, 2);
     47 checkSequence(sequence, "thenable.then queued but not yet called");
     48 
     49 p1.then(function(q) {
     50  sequence.push(5);
     51  assert.sameValue(sequence.length, 5);
     52  checkSequence(sequence, "all done");
     53 
     54  assert.sameValue(q, 'resolved');
     55 
     56 }).then($DONE, $DONE);