tor-browser

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

while-dynamic-evaluation.js (961B)


      1 // |reftest| module 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  Evaluate Await expression for IfStatement
      8 info: |
      9  ModuleItem:
     10    StatementListItem[~Yield, +Await, ~Return]
     11 
     12  ...
     13 
     14  UnaryExpression[Yield, Await]
     15    [+Await]AwaitExpression[?Yield]
     16 
     17  AwaitExpression[Yield]:
     18    await UnaryExpression[?Yield, +Await]
     19 esid: prod-AwaitExpression
     20 flags: [module, async]
     21 features: [top-level-await]
     22 ---*/
     23 
     24 var values = [];
     25 var p = Promise.resolve().then(() => {
     26  // Replaces p!
     27  p = Promise.resolve().then(() => {
     28    p = Promise.resolve().then(() => {
     29      values.push(3);
     30      return false;
     31    });
     32 
     33    values.push(2);
     34    return true;
     35  })
     36 
     37  values.push(1);
     38 
     39  return true;
     40 });
     41 
     42 while (await p) {}
     43 
     44 assert.sameValue(values.length, 3);
     45 assert.sameValue(values[0], 1);
     46 assert.sameValue(values[1], 2);
     47 assert.sameValue(values[2], 3);
     48 
     49 $DONE();