tor-browser

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

await-expr-reject-throws.js (1519B)


      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  AwaitExpression evaluates to abrupt completions in promise rejections
      8 info: |
      9  ModuleItem:
     10    StatementListItem[~Yield, +Await, ~Return]
     11 
     12  ...
     13 
     14  UnaryExpression[Yield, Await]
     15    void UnaryExpression[?Yield, ?Await]
     16    [+Await]AwaitExpression[?Yield]
     17 
     18  AwaitExpression[Yield]:
     19    await UnaryExpression[?Yield, +Await]
     20 esid: prod-AwaitExpression
     21 flags: [module, async]
     22 features: [top-level-await]
     23 ---*/
     24 
     25 var x;
     26 
     27 try {
     28  await Promise.reject(42);
     29 } catch (e) {
     30  x = e;
     31 }
     32 assert.sameValue(x, 42, 'number');
     33 
     34 try {
     35  await Promise.reject('');
     36 } catch (e) {
     37  x = e;
     38 }
     39 assert.sameValue(x, '', 'string');
     40 
     41 try {
     42  var s = Symbol();
     43  await Promise.reject(s);
     44 } catch (e) {
     45  x = e;
     46 }
     47 assert.sameValue(x, s, 'symbol');
     48 
     49 try {
     50  await Promise.reject(false);
     51 } catch (e) {
     52  x = e;
     53 }
     54 assert.sameValue(x, false, 'false');
     55 
     56 try {
     57  await Promise.reject(true);
     58 } catch (e) {
     59  x = e;
     60 }
     61 assert.sameValue(x, true, 'true');
     62 
     63 try {
     64  await Promise.reject(NaN);
     65 } catch (e) {
     66  x = e;
     67 }
     68 assert.sameValue(x, NaN, 'NaN');
     69 
     70 try {
     71  await Promise.reject(null);
     72 } catch (e) {
     73  x = e;
     74 }
     75 assert.sameValue(x, null, 'null');
     76 
     77 try {
     78  await Promise.reject(undefined);
     79 } catch (e) {
     80  x = e;
     81 }
     82 assert.sameValue(x, undefined, 'undefined');
     83 
     84 try {
     85  var obj = {};
     86  await Promise.reject(obj);
     87 } catch (e) {
     88  x = e;
     89 }
     90 assert.sameValue(x, obj, 'object');
     91 
     92 $DONE();