diff options
Diffstat (limited to 'test/language/expressions/optional-chaining/optional-chain-prod-identifiername.js')
-rw-r--r-- | test/language/expressions/optional-chaining/optional-chain-prod-identifiername.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/language/expressions/optional-chaining/optional-chain-prod-identifiername.js b/test/language/expressions/optional-chaining/optional-chain-prod-identifiername.js new file mode 100644 index 000000000..768af6beb --- /dev/null +++ b/test/language/expressions/optional-chaining/optional-chain-prod-identifiername.js @@ -0,0 +1,38 @@ +// Copyright 2020 Salesforce.com, Inc. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: prod-OptionalExpression +description: > + Productions for ?. IdentifierName +info: | + OptionalChain[Yield, Await]: + ?. IdentifierName +features: [optional-chaining] +---*/ + +const arr = [10, 11]; +const obj = { + a: 'hello' +}; + +assert.sameValue(obj?.a, 'hello'); +assert.sameValue(obj?.\u0061, 'hello'); +assert.sameValue(obj?.\u{0061}, 'hello'); + +assert.sameValue(obj?.\u0062, undefined); +assert.sameValue(obj?.\u{0062}, undefined); + +assert.sameValue(arr ?. length, 2); +assert.sameValue(arr ?. l\u0065ngth, 2); +assert.sameValue(arr ?. l\u{0065}ngth, 2); + +assert.sameValue(obj?.$, undefined); + +obj.$ = 42; +assert.sameValue(obj?.$, 42); + +assert.sameValue(obj?._, undefined); + +obj._ = 39; +assert.sameValue(obj?._, 39); |