diff options
Diffstat (limited to 'js/src/tests/test262/language/optional-chaining/optional-chain-async-optional-chain-square-brackets.js')
-rw-r--r-- | js/src/tests/test262/language/optional-chaining/optional-chain-async-optional-chain-square-brackets.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/optional-chaining/optional-chain-async-optional-chain-square-brackets.js b/js/src/tests/test262/language/optional-chaining/optional-chain-async-optional-chain-square-brackets.js new file mode 100644 index 0000000000..b47b2aeeed --- /dev/null +++ b/js/src/tests/test262/language/optional-chaining/optional-chain-async-optional-chain-square-brackets.js @@ -0,0 +1,29 @@ +// |reftest| async +// 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); |