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();