optional-expression.js 644 B

123456789101112131415161718192021222324252627
  1. // Copyright 2019 Google, Inc. All rights reserved.
  2. // This code is governed by the BSD license found in the LICENSE file.
  3. /*---
  4. esid: prod-OptionalExpression
  5. description: >
  6. optional chain on recursive optional expression
  7. info: |
  8. Left-Hand-Side Expressions
  9. OptionalExpression:
  10. OptionalExpression OptionalChain
  11. features: [optional-chaining]
  12. ---*/
  13. const obj = {
  14. a: {
  15. b: 22
  16. }
  17. };
  18. function fn () {
  19. return {};
  20. }
  21. // OptionalExpression (MemberExpression OptionalChain) OptionalChain
  22. assert.sameValue(22, obj?.a?.b);
  23. // OptionalExpression (CallExpression OptionalChain) OptionalChain
  24. assert.sameValue(undefined, fn()?.a?.b);