test262/src/dstr-assignment/array-elem-nested-memberexpr-optchain-prop-ref-init.case

56 lines
1.5 KiB
Plaintext

// 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]