12345678910111213141516171819202122232425262728 |
- // Copyright 2019 Google, Inc. All rights reserved.
- // This code is governed by the BSD license found in the LICENSE file.
- /*---
- esid: prod-OptionalExpression
- description: >
- optional chain expansions in an async context
- info: |
- Left-Hand-Side Expressions
- OptionalExpression
- MemberExpression [PrimaryExpression Identifier] OptionalChain
- OptionalChain OptionalChain ?.[Expression]
- features: [optional-chaining]
- flags: [async]
- ---*/
- async function checkAssertions() {
- assert.sameValue(await {a: [11]}?.a[0], 11);
- const b = {c: [22, 33]};
- assert.sameValue(b?.c[await Promise.resolve(1)], 33);
- function e(val) {
- return val;
- }
- assert.sameValue({d: e}?.d(await Promise.resolve([44, 55]))[1], 55);
- assert.sameValue(undefined?.arr[
- await Promise.reject(new Error('unreachable'))
- ], undefined);
- }
- checkAssertions().then($DONE, $DONE);
|