// Copyright (C) 2019 Leo Balter. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: prod-DestructuringAssignmentTarget
desc: >
  It is a Syntax Error if LeftHandSideExpression of an DestructuringAssignmentTarget is neither an
  ObjectLiteral nor an ArrayLiteral and AssignmentTargetType(LeftHandSideExpression) is not simple
  Using Object
  (MemberExpression OptionalChain .IdentifierName Initializer)
info: |
  Syntax

  AssignmentElement : DestructuringAssignmentTarget Initializer_opt
  DestructuringAssignmentTarget : LeftHandSideExpression

  Static Semantics: Early Errors

  OptionalExpression:
    MemberExpression OptionalChain
    CallExpression OptionalChain
    OptionalExpression OptionalChain

  OptionalChain:
    ?. [ Expression ]
    ?. IdentifierName
    ?. Arguments 
    ?. TemplateLiteral
    OptionalChain [ Expression ]
    OptionalChain .IdentifierName
    OptionalChain Arguments 
    OptionalChain TemplateLiteral

  DestructuringAssignmentTarget : LeftHandSideExpression

  - It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and IsValidSimpleAssignmentTarget(LeftHandSideExpression) is not true.

  Static Semantics: IsValidSimpleAssignmentTarget

  LeftHandSideExpression : OptionalExpression
    1. Return false.
features: [optional-chaining]
template: syntax
negative:
  phase: parse
  type: SyntaxError
---*/

//- setup
$DONOTEVALUATE();
var x = {};
//- elems
[x?.y = 42]
//- vals
[23]
