Name Description Size Coverage
array-elem-init-assignment.js --- description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1157 -
array-elem-init-evaluation.js --- description: The Initializer should only be evaluated if v is undefined. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 958 -
array-elem-init-fn-name-arrow.js --- description: Assignment of function `name` attribute (ArrowFunction) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and value is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(v, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(v, GetReferencedName(lref)). --- 1468 -
array-elem-init-fn-name-class.js --- description: Assignment of function `name` attribute (ClassExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [class, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and value is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(v, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(v, GetReferencedName(lref)). --- 1600 -
array-elem-init-fn-name-cover.js --- description: Assignment of function `name` attribute (CoverParenthesizedExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and value is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(v, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(v, GetReferencedName(lref)). --- 1562 -
array-elem-init-fn-name-fn.js --- description: Assignment of function `name` attribute (FunctionExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [class, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and value is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(v, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(v, GetReferencedName(lref)). --- 1527 -
array-elem-init-fn-name-gen.js --- description: Assignment of function `name` attribute (GeneratorExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and value is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(v, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(v, GetReferencedName(lref)). --- 1554 -
array-elem-init-in.js --- description: The Initializer in an AssignmentElement may be an `in` expression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 865 -
array-elem-init-let.js --- description: Value retrieval of Initializer obeys `let` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [let, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 807 -
array-elem-init-order.js --- description: Initializer values should be assigned in left-to-right order. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 930 -
array-elem-init-simple-no-strict.js --- description: Identifiers that appear as the DestructuringAssignmentTarget in an AssignmentElement should take on the iterated value corresponding to their position in the ArrayAssignmentPattern. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1056 -
array-elem-init-yield-expr.js --- description: When a `yield` token appears within the Initializer of an AssignmentElement within a generator function body, it behaves as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1320 -
array-elem-init-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the Initializer of an AssignmentElement outside of a generator function body, it behaves as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 955 -
array-elem-init-yield-ident-valid.js --- description: When a `yield` token appears within the Initializer of an AssignmentElement outside of a generator function body, it behaves as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 982 -
array-elem-iter-get-err.js --- description: Abrupt completion returned from GetIterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1030 -
array-elem-iter-nrml-close-err.js --- description: Abrupt completion returned from IteratorClose (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). --- 1435 -
array-elem-iter-nrml-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). 9. If Type(innerResult.[[value]]) is not Object, throw a TypeError exception. --- 1717 -
array-elem-iter-nrml-close-skip.js --- description: IteratorClose is not called when assignment evaluation has exhausted the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. --- 1395 -
array-elem-iter-nrml-close.js --- description: IteratorClose is called when assignment evaluation has not exhausted the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 1885 -
array-elem-iter-rtrn-close-err.js --- description: IteratorClose is called when reference evaluation produces a "return" completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 1800 -
array-elem-iter-rtrn-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). 9. If Type(innerResult.[[value]]) is not Object, throw a TypeError exception. --- 2067 -
array-elem-iter-rtrn-close.js --- description: IteratorClose is called when reference evaluation produces a "return" completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2292 -
array-elem-iter-thrw-close-err.js --- description: IteratorClose is called when reference evaluation produces a "throw" completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. --- 1518 -
array-elem-iter-thrw-close-skip.js --- description: IteratorClose is not called when iteration produces an abrupt completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. --- 1357 -
array-elem-iter-thrw-close.js --- description: IteratorClose is called when reference evaluation produces a "throw" completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList ] [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 1799 -
array-elem-nested-array-invalid.js --- description: It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using AssignmentPattern as the goal symbol. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1019 -
array-elem-nested-array-null.js --- description: When DestructuringAssignmentTarget is an array literal and the value is `null`, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 856 -
array-elem-nested-array-undefined-hole.js --- description: When DestructuringAssignmentTarget is an array literal and the value is a "hole", a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 867 -
array-elem-nested-array-undefined-own.js --- description: When DestructuringAssignmentTarget is an array literal and the value is `undefined`, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 875 -
array-elem-nested-array-undefined.js --- description: When DestructuringAssignmentTarget is an array literal and no value is defined, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 857 -
array-elem-nested-array-yield-expr.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of a nested destructuring assignment and within a generator function body, it behaves as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1393 -
array-elem-nested-array-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of a nested destructuring assignment outside of strict mode, it behaves as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 981 -
array-elem-nested-array-yield-ident-valid.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of a nested destructuring assignment outside of strict mode, it behaves as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1026 -
array-elem-nested-array.js --- description: When DestructuringAssignmentTarget is an array literal, it should be parsed parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 954 -
array-elem-nested-memberexpr-optchain-prop-ref-init.js --- description: 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) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [optional-chaining, destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 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. --- 2016 -
array-elem-nested-obj-invalid.js --- description: It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using AssignmentPattern as the goal symbol. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1023 -
array-elem-nested-obj-null.js --- description: When DestructuringAssignmentTarget is an object literal and the value is `null`, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 855 -
array-elem-nested-obj-undefined-hole.js --- description: When DestructuringAssignmentTarget is an object literal and the value is a "hole", a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 866 -
array-elem-nested-obj-undefined-own.js --- description: When DestructuringAssignmentTarget is an object literal and the value is `undefined`, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 874 -
array-elem-nested-obj-undefined.js --- description: When DestructuringAssignmentTarget is an object literal and no value is defined, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 856 -
array-elem-nested-obj-yield-expr.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and within a generator function body, it behaves as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1330 -
array-elem-nested-obj-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment outside of a generator function body, it behaves as a IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 977 -
array-elem-nested-obj-yield-ident-valid.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment outside of a generator function body, it behaves as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1005 -
array-elem-nested-obj.js --- description: When DestructuringAssignmentTarget is an object literal, it should be parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 953 -
array-elem-put-const.js --- description: The assignment target should obey `const` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [const, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 802 -
array-elem-put-let.js --- description: The assignment target should obey `let` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [let, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 792 -
array-elem-put-obj-literal-optchain-prop-ref-init.js --- description: 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 (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [optional-chaining, destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 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. --- 2030 -
array-elem-put-obj-literal-prop-ref-init-active.js --- description: The DestructuringAssignmentTarget of an AssignmentElement can extend to LHSExpressions if it is neither an ObjectLiteral nor an ArrayLiteral and its AssignmentTargetTyp is simple. Using MemberExpression (ObjLiteral + identifier) with activated initializer. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Syntax AssignmentPattern : ArrayAssignmentPattern ArrayAssignmentPattern : [ AssignmentElementList ] AssignmentElementList : AssignmentElisionElement AssignmentElisionElement : Elision_opt AssignmentElement AssignmentElement : DestructuringAssignmentTarget Initializer_opt DestructuringAssignmentTarget : LeftHandSideExpression Static Semantics: Early Errors DestructuringAssignmentTarget : LeftHandSideExpression - It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if LeftHandSideExpression is not covering an AssignmentPattern. - It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and AssignmentTargetType(LeftHandSideExpression) is not simple. Runtime Semantics: DestructuringAssignmentEvaluation ArrayAssignmentPattern : [ AssignmentElementList ] 1. Let iteratorRecord be ? GetIterator(value). 2. Let result be IteratorDestructuringAssignmentEvaluation of AssignmentElementList with argument iteratorRecord. 3. If iteratorRecord.[[Done]] is false, return ? IteratorClose(iteratorRecord, result). 4. Return result. Runtime Semantics: IteratorDestructuringAssignmentEvaluation AssignmentElement : DestructuringAssignmentTarget Initializer 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. ... 7. Return ? PutValue(lref, v). --- 2759 -
array-elem-put-obj-literal-prop-ref-init.js --- description: The DestructuringAssignmentTarget of an AssignmentElement can extend to LHSExpressions if it is neither an ObjectLiteral nor an ArrayLiteral and its AssignmentTargetTyp is simple. Using MemberExpression (ObjLiteral + identifier) with initializer. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Syntax AssignmentPattern : ArrayAssignmentPattern ArrayAssignmentPattern : [ AssignmentElementList ] AssignmentElementList : AssignmentElisionElement AssignmentElisionElement : Elision_opt AssignmentElement AssignmentElement : DestructuringAssignmentTarget Initializer_opt DestructuringAssignmentTarget : LeftHandSideExpression Static Semantics: Early Errors DestructuringAssignmentTarget : LeftHandSideExpression - It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if LeftHandSideExpression is not covering an AssignmentPattern. - It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and AssignmentTargetType(LeftHandSideExpression) is not simple. Runtime Semantics: DestructuringAssignmentEvaluation ArrayAssignmentPattern : [ AssignmentElementList ] 1. Let iteratorRecord be ? GetIterator(value). 2. Let result be IteratorDestructuringAssignmentEvaluation of AssignmentElementList with argument iteratorRecord. 3. If iteratorRecord.[[Done]] is false, return ? IteratorClose(iteratorRecord, result). 4. Return result. Runtime Semantics: IteratorDestructuringAssignmentEvaluation AssignmentElement : DestructuringAssignmentTarget Initializer 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. ... 7. Return ? PutValue(lref, v). --- 2735 -
array-elem-put-obj-literal-prop-ref.js --- description: The DestructuringAssignmentTarget of an AssignmentElement can extend to LHSExpressions if it is neither an ObjectLiteral nor an ArrayLiteral and its AssignmentTargetTyp is simple. Using MemberExpression (ObjLiteral + identifier). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Syntax AssignmentPattern : ArrayAssignmentPattern ArrayAssignmentPattern : [ AssignmentElementList ] AssignmentElementList : AssignmentElisionElement AssignmentElisionElement : Elision_opt AssignmentElement AssignmentElement : DestructuringAssignmentTarget Initializer_opt DestructuringAssignmentTarget : LeftHandSideExpression Static Semantics: Early Errors DestructuringAssignmentTarget : LeftHandSideExpression - It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if LeftHandSideExpression is not covering an AssignmentPattern. - It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and AssignmentTargetType(LeftHandSideExpression) is not simple. Runtime Semantics: DestructuringAssignmentEvaluation ArrayAssignmentPattern : [ AssignmentElementList ] 1. Let iteratorRecord be ? GetIterator(value). 2. Let result be IteratorDestructuringAssignmentEvaluation of AssignmentElementList with argument iteratorRecord. 3. If iteratorRecord.[[Done]] is false, return ? IteratorClose(iteratorRecord, result). 4. Return result. Runtime Semantics: IteratorDestructuringAssignmentEvaluation AssignmentElement : DestructuringAssignmentTarget Initializer 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. ... 7. Return ? PutValue(lref, v). --- 2708 -
array-elem-put-prop-ref-no-get.js --- description: If the DestructuringAssignmentTarget of an AssignmentElement is a PropertyReference, it should not be evaluated. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1060 -
array-elem-put-prop-ref-user-err.js --- description: Any error raised as a result of setting the value should be forwarded to the runtime. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 890 -
array-elem-put-prop-ref.js --- description: The DestructuringAssignmentTarget of an AssignmentElement may be a PropertyReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 881 -
array-elem-put-unresolvable-no-strict.js --- description: Outside of strict mode, if the the assignment target is an unresolvable reference, a new `var` binding should be created in the environment record. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 989 -
array-elem-put-unresolvable-strict-strict.js --- description: In strict mode, if the the assignment target is an unresolvable reference, a ReferenceError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 891 -
array-elem-target-identifier.js --- description: Identifiers that appear as the DestructuringAssignmentTarget in an AssignmentElement should take on the iterated value corresponding to their position in the ArrayAssignmentPattern. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1039 -
array-elem-target-simple-no-strict.js --- description: Identifiers that appear as the DestructuringAssignmentTarget in an AssignmentElement should take on the iterated value corresponding to their position in the ArrayAssignmentPattern. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1054 -
array-elem-target-simple-strict-strict.js --- description: It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and IsValidSimpleAssignmentTarget(LeftHandSideExpression) is false. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 960 -
array-elem-target-yield-expr.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement within a generator function body, it behaves as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1367 -
array-elem-target-yield-invalid-strict.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement and outside of a generator function body, it behaves as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 972 -
array-elem-target-yield-valid.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement outside of a generator function body, it behaves as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1013 -
array-elem-trlg-iter-elision-iter-abpt.js --- description: Abrupt completion returned during evaluation of elision (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 6. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. If status is an abrupt completion, then i. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). ii. Return Completion(status). --- 1845 -
array-elem-trlg-iter-elision-iter-nrml-close-err.js --- description: Abrupt completion returned from IteratorClose (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 6. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. If status is an abrupt completion, then [...] 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). --- 1771 -
array-elem-trlg-iter-elision-iter-nrml-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 6. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. If status is an abrupt completion, then [...] 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). 9. If Type(innerResult.[[value]]) is not Object, throw a TypeError exception. --- 2023 -
array-elem-trlg-iter-elision-iter-nrml-close-skip.js --- description: IteratorClose not invoked when elision exhausts the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 6. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. If status is an abrupt completion, then [...] 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 9. Return Completion(status). --- 1716 -
array-elem-trlg-iter-elision-iter-nrml-close.js --- description: IteratorClose invoked when elision does not exhaust the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 6. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. If status is an abrupt completion, then [...] 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 2175 -
array-elem-trlg-iter-get-err.js --- description: Abrupt completion returned from GetIterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1083 -
array-elem-trlg-iter-list-nrml-close-err.js --- description: Abrupt completion returned from IteratorClose (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). b. Return Completion(status). --- 1794 -
array-elem-trlg-iter-list-nrml-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). b. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). 9. If Type(innerResult.[[value]]) is not Object, throw a TypeError exception. --- 2087 -
array-elem-trlg-iter-list-nrml-close-skip.js --- description: IteratorClose is not invoked when evaluation of AssignmentElementList exhausts the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). b. Return Completion(status). --- 1825 -
array-elem-trlg-iter-list-nrml-close.js --- description: IteratorClose is invoked when evaluation of AssignmentElementList completes without exhausting the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). b. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 2281 -
array-elem-trlg-iter-list-rtrn-close-err.js --- description: IteratorClose is invoked when evaluation of AssignmentElementList returns a "return" completion and the iterator has not been marked as "done" (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2397 -
array-elem-trlg-iter-list-rtrn-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). b. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). 9. If Type(innerResult.[[value]]) is not Object, throw a TypeError exception. --- 2324 -
array-elem-trlg-iter-list-rtrn-close.js --- description: IteratorClose is invoked when evaluation of AssignmentElementList returns a "return" completion and the iterator has not been marked as "done" (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). b. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2737 -
array-elem-trlg-iter-list-thrw-close-err.js --- description: IteratorClose is invoked when evaluation of AssignmentElementList returns a "throw" completion and the iterator has not been marked as "done" (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 7.4.6 IteratorClose( iterator, completion ) [...] 7. If completion.[[type]] is throw, return Completion(completion). --- 2046 -
array-elem-trlg-iter-list-thrw-close-skip.js --- description: IteratorClose is not invoked when evaluation of AssignmentElementList returns an abrupt completion and the iterator has been marked as "done" (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). b. Return Completion(status). --- 1854 -
array-elem-trlg-iter-list-thrw-close.js --- description: IteratorClose is invoked when evaluation of AssignmentElementList returns a "throw" completion and the iterator has not been marked as "done" (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 3. Let iteratorRecord be Record {[[iterator]]: iterator, [[done]]: false}. 4. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentElementList using iteratorRecord as the argument. 5. If status is an abrupt completion, then a. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). b. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 2231 -
array-elem-trlg-iter-rest-nrml-close-skip.js --- description: IteratorClose is not called when rest element evaluation has exhausted the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 7. If AssignmentRestElement is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument. 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 9. Return Completion(status). --- 1818 -
array-elem-trlg-iter-rest-rtrn-close-err.js --- description: IteratorClose is called when AssignmentRestEvaluation produces a "return" completion due to reference evaluation (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 7. If AssignmentRestElement is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument. 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 9. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2368 -
array-elem-trlg-iter-rest-rtrn-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 7. If AssignmentRestElement is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument. 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 9. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2123 -
array-elem-trlg-iter-rest-rtrn-close.js --- description: IteratorClose is called when AssignmentRestEvaluation produces a "return" completion due to reference evaluation (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 7. If AssignmentRestElement is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument. 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 9. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2661 -
array-elem-trlg-iter-rest-thrw-close-err.js --- description: IteratorClose is called when AssignmentRestEvaluation produces a "throw" completion due to reference evaluation (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 7. If AssignmentRestElement is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument. 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 9. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 7. If completion.[[type]] is throw, return Completion(completion) --- 2092 -
array-elem-trlg-iter-rest-thrw-close-skip.js --- description: Abrupt completion returned during iteration for rest element (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 7. If AssignmentRestElement is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument. 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 9. Return Completion(status). --- 1814 -
array-elem-trlg-iter-rest-thrw-close.js --- description: IteratorClose is called when AssignmentRestEvaluation produces a "throw" completion due to reference evaluation (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ AssignmentElementList , Elisionopt AssignmentRestElementopt ] [...] 7. If AssignmentRestElement is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument. 8. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). 9. Return Completion(status). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 2243 -
array-elision-iter-abpt.js --- description: IteratorClose is not called when iteration produces an abrupt completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elision ] 1. Let iterator be GetIterator(value). [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). [...] --- 1359 -
array-elision-iter-get-err.js --- description: Abrupt completion returned from GetIterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elision ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1012 -
array-elision-iter-nrml-close-err.js --- description: Abrupt completion returned from IteratorClose (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elision ] 1. Let iterator be GetIterator(value). [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 6. Return result. --- 1489 -
array-elision-iter-nrml-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elision ] 1. Let iterator be GetIterator(value). [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). [...] 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). 9. If Type(innerResult.[[value]]) is not Object, throw a TypeError exception. --- 1730 -
array-elision-iter-nrml-close-skip.js --- description: IteratorClose is not called when iteration has exhausted the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elision ] 1. Let iterator be GetIterator(value). [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). [...] --- 1403 -
array-elision-iter-nrml-close.js --- description: IteratorClose is called when assignment evaluation has not exhausted the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elision ] 1. Let iterator be GetIterator(value). [...] 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). [...] 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 1898 -
array-elision-val-array.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 831 -
array-elision-val-bool.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values and throws for boolean values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 834 -
array-elision-val-null.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values and throws for `null`. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 826 -
array-elision-val-num.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values and throws for number values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 829 -
array-elision-val-string.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 846 -
array-elision-val-symbol.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values and throws for symbol values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 858 -
array-elision-val-undef.js --- description: An ArrayAssignmentPattern containing only Elisions requires iterable values and throws for `undefined`. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 837 -
array-empty-iter-close-err.js --- description: Abrupt completion returned from IteratorClose (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). 3. Return IteratorClose(iterator, NormalCompletion(empty)). --- 1337 -
array-empty-iter-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). 3. Return IteratorClose(iterator, NormalCompletion(empty)). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). 9. If Type(innerResult.[[value]]) is not Object, throw a TypeError exception. --- 1551 -
array-empty-iter-close.js --- description: Iterator is closed without iterating (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). 3. Return IteratorClose(iterator, NormalCompletion(empty)). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 1713 -
array-empty-iter-get-err.js --- description: Abrupt completion returned from GetIterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 999 -
array-empty-val-array.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 837 -
array-empty-val-bool.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values and throws for boolean values (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 838 -
array-empty-val-null.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values and throws for `null`. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 831 -
array-empty-val-num.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values and throws for number values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 834 -
array-empty-val-string.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 852 -
array-empty-val-symbol.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values and throws for Symbol values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 863 -
array-empty-val-undef.js --- description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values and throws for `undefined`. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 842 -
array-iteration.js --- description: Value iteration only proceeds for the number of elements in the ArrayAssignmentPattern. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 975 -
array-rest-after-element.js --- description: An AssignmentRestElement following an AssignmentElement consumes all remaining iterable values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 983 -
array-rest-after-elision.js --- description: An AssignmentRestElement following an elision consumes all remaining iterable values. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 945 -
array-rest-before-element.js --- description: An AssignmentElement may not follow an AssignmentRestElement in an AssignmentElementList. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 853 -
array-rest-before-elision.js --- description: An elision may not follow an AssignmentRestElement in an AssignmentElementList. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 841 -
array-rest-before-rest.js --- description: An AssignmentRestElement may not follow another AssignmentRestElement in an AssignmentElementList. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 862 -
array-rest-elision-invalid.js --- description: ArrayAssignmentPattern may not include elisions following an AssignmentRestElement in a AssignmentElementList. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 873 -
array-rest-elision-iter-abpt.js --- description: IteratorClose is not called when assignment evaluation produces an abrupt completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 4. If Elision is present, then a. Let status be the result of performing IteratorDestructuringAssignmentEvaluation of Elision with iteratorRecord as the argument. b. If status is an abrupt completion, then i. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, status). ii. Return Completion(status). --- 1656 -
array-rest-elision.js --- description: ArrayAssignmentPattern may include elisions at any position preceding a AssignmentRestElement in a AssignmentElementList. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1018 -
array-rest-init.js --- description: The AssignmentRestElement does not support an initializer. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 820 -
array-rest-iter-get-err.js --- description: Abrupt completion returned from GetIterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] 1. Let iterator be GetIterator(value). 2. ReturnIfAbrupt(iterator). --- 1042 -
array-rest-iter-nrml-close-skip.js --- description: IteratorClose is not called when assignment evaluation has exhausted the iterator (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). 7. Return result. --- 1564 -
array-rest-iter-rtrn-close-err.js --- description: IteratorClose is called when reference evaluation produces a "return" completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. b. ReturnIfAbrupt(lref). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2235 -
array-rest-iter-rtrn-close-null.js --- description: IteratorClose throws a TypeError when `return` returns a non-Object value (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. b. ReturnIfAbrupt(lref). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2148 -
array-rest-iter-rtrn-close.js --- description: IteratorClose is called when reference evaluation produces a "return" completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. b. ReturnIfAbrupt(lref). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). 7. If completion.[[type]] is throw, return Completion(completion). 8. If innerResult.[[type]] is throw, return Completion(innerResult). --- 2701 -
array-rest-iter-thrw-close-err.js --- description: IteratorClose is called when reference evaluation produces a "throw" completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. b. ReturnIfAbrupt(lref). --- 2069 -
array-rest-iter-thrw-close-skip.js --- description: IteratorClose is not called when iteration produces an abrupt completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). --- 1510 -
array-rest-iter-thrw-close.js --- description: IteratorClose is called when reference evaluation produces a "throw" completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. b. ReturnIfAbrupt(lref). 7.4.6 IteratorClose( iterator, completion ) [...] 6. Let innerResult be Call(return, iterator, « »). [...] --- 2349 -
array-rest-iteration.js --- description: In the presense of an AssignmentRestElement, value iteration exhausts the iterable value; (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 991 -
array-rest-lref-err.js --- description: IteratorClose is called when reference evaluation produces an abrupt completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. b. ReturnIfAbrupt(lref). --- 1847 -
array-rest-lref.js --- description: Reference is evaluated during assignment (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. b. ReturnIfAbrupt(lref). [...] --- 1849 -
array-rest-nested-array-invalid.js --- description: It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using AssignmentPattern as the goal symbol. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1022 -
array-rest-nested-array-iter-thrw-close-skip.js --- description: IteratorClose is not called when nested array pattern evaluation produces an abrupt completion (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget [...] 4. Repeat while iteratorRecord.[[done]] is false [...] d. If next is false, set iteratorRecord.[[done]] to true. [...] 7. Return the result of performing DestructuringAssignmentEvaluation of nestedAssignmentPattern with A as the argument. --- 1966 -
array-rest-nested-array-null.js --- description: When DestructuringAssignmentTarget is an array literal and the iterable emits `null` as the only value, an array with a single `null` element should be used as the value of the nested DestructuringAssignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1049 -
array-rest-nested-array-undefined-hole.js --- description: When DestructuringAssignmentTarget is an array literal and the iterable is an array with a "hole", an array with a single `undefined` element should be used as the value of the nested DestructuringAssignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1032 -
array-rest-nested-array-undefined-own.js --- description: When DestructuringAssignmentTarget is an array literal and the iterable emits `undefined` as the only value, an array with a single `undefined` element should be used as the value of the nested DestructuringAssignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1047 -
array-rest-nested-array-undefined.js --- description: When DestructuringAssignmentTarget is an array literal and the iterable is emits no values, an empty array should be used as the value of the nested DestructuringAssignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 989 -
array-rest-nested-array-yield-expr.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of a nested destructuring assignment and within a generator function body, it should behave as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1399 -
array-rest-nested-array-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1007 -
array-rest-nested-array-yield-ident-valid.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1052 -
array-rest-nested-array.js --- description: When DestructuringAssignmentTarget is an array literal, it should be parsed parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 961 -
array-rest-nested-obj-invalid.js --- description: It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using AssignmentPattern as the goal symbol. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1026 -
array-rest-nested-obj-null.js --- description: When DestructuringAssignmentTarget is an object literal and the iterable emits `null` as the only value, an array with a single `null` element should be used as the value of the nested DestructuringAssignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1060 -
array-rest-nested-obj-undefined-hole.js --- description: When DestructuringAssignmentTarget is an array literal and the iterable is an array with a "hole", an array with a single `undefined` element should be used as the value of the nested DestructuringAssignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1230 -
array-rest-nested-obj-undefined-own.js --- description: When DestructuringAssignmentTarget is an array literal and the iterable emits `undefined` as the only value, an array with a single `undefined` element should be used as the value of the nested DestructuringAssignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1245 -
array-rest-nested-obj-undefined.js --- description: When DestructuringAssignmentTarget is an obect literal and the iterable is emits no values, an empty array should be used as the value of the nested DestructuringAssignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1187 -
array-rest-nested-obj-yield-expr.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and within a generator function body, it should behave as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1339 -
array-rest-nested-obj-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 992 -
array-rest-nested-obj-yield-ident-valid.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1019 -
array-rest-nested-obj.js --- description: When DestructuringAssignmentTarget is an object literal, it should be parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 958 -
array-rest-put-const.js --- description: The assignment target should obey `const` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [const, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 805 -
array-rest-put-let.js --- description: The assignment target should obey `let` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [let, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 795 -
array-rest-put-prop-ref-no-get.js --- description: If the DestructuringAssignmentTarget of an AssignmentElement is a PropertyReference, it should not be evaluated. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1183 -
array-rest-put-prop-ref-user-err-iter-close-skip.js --- description: IteratorClose is not called when value assignment produces an abrupt completion. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol.iterator, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. ArrayAssignmentPattern : [ Elisionopt AssignmentRestElement ] [...] 5. Let result be the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument 6. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). AssignmentRestElement[Yield] : ... DestructuringAssignmentTarget [...] 4. Repeat while iteratorRecord.[[done]] is false [...] d. If next is false, set iteratorRecord.[[done]] to true. [...] 5. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Return PutValue(lref, A). --- 2007 -
array-rest-put-prop-ref-user-err.js --- description: Any error raised as a result of setting the value should be forwarded to the runtime. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 893 -
array-rest-put-prop-ref.js --- description: The DestructuringAssignmentTarget of an AssignmentElement may be a PropertyReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 984 -
array-rest-put-unresolvable-no-strict.js --- description: Outside of strict mode, if the the assignment target is an unresolvable reference, a new `var` binding should be created in the environment record. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 991 -
array-rest-put-unresolvable-strict-strict.js --- description: In strict mode, if the the assignment target is an unresolvable reference, a ReferenceError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 894 -
array-rest-yield-expr.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentRestElement and within the body of a generator function, it should behave as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1477 -
array-rest-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentRestElement and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 994 -
array-rest-yield-ident-valid.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentRestElement and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1140 -
browser.js 0 -
ident-name-prop-name-literal-break-escaped.js --- description: break is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1111 -
ident-name-prop-name-literal-case-escaped.js --- description: case is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1106 -
ident-name-prop-name-literal-catch-escaped.js --- description: catch is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1111 -
ident-name-prop-name-literal-class-escaped.js --- description: class is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1111 -
ident-name-prop-name-literal-const-escaped.js --- description: const is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1111 -
ident-name-prop-name-literal-continue-escaped.js --- description: continue is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1126 -
ident-name-prop-name-literal-debugger-escaped.js --- description: debugger is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1126 -
ident-name-prop-name-literal-default-escaped-ext.js --- description: default is a valid identifier name, using extended escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1134 -
ident-name-prop-name-literal-default-escaped.js --- description: default is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1121 -
ident-name-prop-name-literal-default.js --- description: default is a valid identifier name (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1094 -
ident-name-prop-name-literal-delete-escaped.js --- description: delete is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1116 -
ident-name-prop-name-literal-do-escaped.js --- description: do is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1096 -
ident-name-prop-name-literal-else-escaped.js --- description: else is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1106 -
ident-name-prop-name-literal-enum-escaped.js --- description: enum is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1106 -
ident-name-prop-name-literal-export-escaped.js --- description: export is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1116 -
ident-name-prop-name-literal-extends-escaped-ext.js --- description: extends is a valid identifier name, using extended escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1134 -
ident-name-prop-name-literal-extends-escaped.js --- description: extends is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1121 -
ident-name-prop-name-literal-extends.js --- description: extends is a valid identifier name (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1094 -
ident-name-prop-name-literal-finally-escaped.js --- description: finally is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1121 -
ident-name-prop-name-literal-for-escaped.js --- description: for is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1101 -
ident-name-prop-name-literal-function-escaped.js --- description: function is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1126 -
ident-name-prop-name-literal-if-escaped.js --- description: if is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1096 -
ident-name-prop-name-literal-implements-escaped.js --- description: implements is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1150 -
ident-name-prop-name-literal-import-escaped.js --- description: import is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1116 -
ident-name-prop-name-literal-in-escaped.js --- description: in is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1096 -
ident-name-prop-name-literal-instanceof-escaped.js --- description: instanceof is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1136 -
ident-name-prop-name-literal-interface-escaped.js --- description: interface is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1145 -
ident-name-prop-name-literal-let-escaped.js --- description: let is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1115 -
ident-name-prop-name-literal-new-escaped.js --- description: new is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1101 -
ident-name-prop-name-literal-package-escaped.js --- description: package is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1135 -
ident-name-prop-name-literal-private-escaped.js --- description: private is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1135 -
ident-name-prop-name-literal-protected-escaped.js --- description: protected is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1145 -
ident-name-prop-name-literal-public-escaped.js --- description: public is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1130 -
ident-name-prop-name-literal-return-escaped.js --- description: return is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1116 -
ident-name-prop-name-literal-static-escaped.js --- description: static is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1130 -
ident-name-prop-name-literal-super-escaped.js --- description: super is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1111 -
ident-name-prop-name-literal-switch-escaped.js --- description: switch is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1116 -
ident-name-prop-name-literal-this-escaped.js --- description: this is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1106 -
ident-name-prop-name-literal-throw-escaped.js --- description: throw is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1111 -
ident-name-prop-name-literal-try-escaped.js --- description: try is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1101 -
ident-name-prop-name-literal-typeof-escaped.js --- description: typeof is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1116 -
ident-name-prop-name-literal-var-escaped.js --- description: var is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1101 -
ident-name-prop-name-literal-void-escaped.js --- description: void is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1106 -
ident-name-prop-name-literal-while-escaped.js --- description: while is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1111 -
ident-name-prop-name-literal-with-escaped.js --- description: with is a valid identifier name, using escape (PropertyName of an ObjectAssignmentPattern) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, noStrict] info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement PropertyName: LiteralPropertyName ... LiteralPropertyName: IdentifierName ... Reserved Words A reserved word is an IdentifierName that cannot be used as an Identifier. --- 1106 -
obj-empty-bool.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (boolean value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 860 -
obj-empty-null.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (null value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 827 -
obj-empty-num.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (number value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 854 -
obj-empty-obj.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (object value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 855 -
obj-empty-string.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (string value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 858 -
obj-empty-symbol.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (symbol value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 883 -
obj-empty-undef.js --- description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (undefined value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 838 -
obj-id-identifier-resolution-first.js --- description: Evaluation of DestructuringAssignmentTarget (first of many) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 881 -
obj-id-identifier-resolution-last.js --- description: Evaluation of DestructuringAssignmentTarget (last of many) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 879 -
obj-id-identifier-resolution-lone.js --- description: Evaluation of DestructuringAssignmentTarget (lone identifier) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 873 -
obj-id-identifier-resolution-middle.js --- description: Evaluation of DestructuringAssignmentTarget (within many) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 886 -
obj-id-identifier-resolution-trlng.js --- description: Evaluation of DestructuringAssignmentTarget (lone identifier with trailing comma) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 893 -
obj-id-identifier-yield-expr.js --- description: yield is not a valid IdentifierReference in an AssignmentProperty within generator function bodies. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated, noStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 908 -
obj-id-identifier-yield-ident-invalid-strict.js --- description: yield is not a valid IdentifierReference in an AssignmentProperty within strict mode code. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 892 -
obj-id-identifier-yield-ident-valid.js --- description: yield is a valid IdentifierReference in an AssignmentProperty outside of strict mode and generator functions. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 941 -
obj-id-init-assignment-missing.js --- description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference (no corresponding property defined). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 969 -
obj-id-init-assignment-null.js --- description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference (null property value defined). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 972 -
obj-id-init-assignment-truthy.js --- description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference (truthy property value defined). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 970 -
obj-id-init-assignment-undef.js --- description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference ("undefined" property value defined). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 982 -
obj-id-init-evaluation.js --- description: The Initializer should only be evaluated if v is undefined. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 965 -
obj-id-init-fn-name-arrow.js --- description: Assignment of function `name` attribute (ArrowFunction) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentProperty : IdentifierReference Initializeropt [...] 6. If Initializeropt is present and v is undefined, then [...] d. If IsAnonymousFunctionDefinition(Initializer) is true, then i. Let hasNameProperty be HasOwnProperty(v, "name"). ii. ReturnIfAbrupt(hasNameProperty). iii. If hasNameProperty is false, perform SetFunctionName(v, P). --- 1382 -
obj-id-init-fn-name-class.js --- description: Assignment of function `name` attribute (ClassExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [class, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentProperty : IdentifierReference Initializeropt [...] 6. If Initializeropt is present and v is undefined, then [...] d. If IsAnonymousFunctionDefinition(Initializer) is true, then i. Let hasNameProperty be HasOwnProperty(v, "name"). ii. ReturnIfAbrupt(hasNameProperty). iii. If hasNameProperty is false, perform SetFunctionName(v, P). --- 1534 -
obj-id-init-fn-name-cover.js --- description: Assignment of function `name` attribute (CoverParenthesizedExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentProperty : IdentifierReference Initializeropt [...] 6. If Initializeropt is present and v is undefined, then [...] d. If IsAnonymousFunctionDefinition(Initializer) is true, then i. Let hasNameProperty be HasOwnProperty(v, "name"). ii. ReturnIfAbrupt(hasNameProperty). iii. If hasNameProperty is false, perform SetFunctionName(v, P). --- 1486 -
obj-id-init-fn-name-fn.js --- description: Assignment of function `name` attribute (FunctionExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentProperty : IdentifierReference Initializeropt [...] 6. If Initializeropt is present and v is undefined, then [...] d. If IsAnonymousFunctionDefinition(Initializer) is true, then i. Let hasNameProperty be HasOwnProperty(v, "name"). ii. ReturnIfAbrupt(hasNameProperty). iii. If hasNameProperty is false, perform SetFunctionName(v, P). --- 1444 -
obj-id-init-fn-name-gen.js --- description: Assignment of function `name` attribute (GeneratorExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentProperty : IdentifierReference Initializeropt [...] 6. If Initializeropt is present and v is undefined, then [...] d. If IsAnonymousFunctionDefinition(Initializer) is true, then i. Let hasNameProperty be HasOwnProperty(v, "name"). ii. ReturnIfAbrupt(hasNameProperty). iii. If hasNameProperty is false, perform SetFunctionName(v, P). --- 1468 -
obj-id-init-in.js --- description: The Initializer in an AssignmentProperty may be an `in` expression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 871 -
obj-id-init-let.js --- description: Value retrieval of Initializer obeys `let` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [let, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 803 -
obj-id-init-order.js --- description: Initializer values should be assigned in left-to-right order. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 926 -
obj-id-init-simple-no-strict.js --- description: Evaluation of DestructuringAssignmentTarget. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 918 -
obj-id-init-simple-strict-strict.js --- description: It is a Syntax Error if IsValidSimpleAssignmentTarget of IdentifierReference is false. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 879 -
obj-id-init-yield-expr.js --- description: When a `yield` token appears within the Initializer of an AssignmentProperty and within a generator function body, it should behave as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1310 -
obj-id-init-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the Initializer of an AssignmentProperty and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 962 -
obj-id-init-yield-ident-valid.js --- description: When a `yield` token appears within the Initializer of an AssignmentProperty and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 989 -
obj-id-put-const.js --- description: The assignment target should obey `const` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [const, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 803 -
obj-id-put-let.js --- description: The assignment target should obey `let` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [let, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 788 -
obj-id-put-unresolvable-no-strict.js --- description: Outside of strict mode, if the the assignment target is an unresolvable reference, a new `var` binding should be created in the environment record. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 985 -
obj-id-put-unresolvable-strict-strict.js --- description: In strict mode, if the the assignment target is an unresolvable reference, a ReferenceError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 887 -
obj-id-simple-no-strict.js --- description: Evaluation of DestructuringAssignmentTarget. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 930 -
obj-id-simple-strict-strict.js --- description: It is a Syntax Error if IsValidSimpleAssignmentTarget of IdentifierReference is false. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 870 -
obj-prop-elem-init-assignment-missing.js --- description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference (non-existent property) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 966 -
obj-prop-elem-init-assignment-null.js --- description: If the Initializer is present and v is not undefined, the Initializer should be evaluated and the result assigned to the target reference (null value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 968 -
obj-prop-elem-init-assignment-truthy.js --- description: If the Initializer is present and v is not undefined, the Initializer should be evaluated and the result assigned to the target reference (truthy value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 966 -
obj-prop-elem-init-assignment-undef.js --- description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference (undefined value) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 972 -
obj-prop-elem-init-evaluation.js --- description: The Initializer should only be evaluated if v is undefined. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1101 -
obj-prop-elem-init-fn-name-arrow.js --- description: Assignment of function `name` attribute (ArrowFunction) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and v is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(rhsValue, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(rhsValue, GetReferencedName(lref)). --- 1484 -
obj-prop-elem-init-fn-name-class.js --- description: Assignment of function `name` attribute (ClassExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [class, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and v is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(rhsValue, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(rhsValue, GetReferencedName(lref)). --- 1642 -
obj-prop-elem-init-fn-name-cover.js --- description: Assignment of function `name` attribute (CoverParenthesizedExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and v is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(rhsValue, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(rhsValue, GetReferencedName(lref)). --- 1591 -
obj-prop-elem-init-fn-name-fn.js --- description: Assignment of function `name` attribute (FunctionExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and v is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(rhsValue, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(rhsValue, GetReferencedName(lref)). --- 1549 -
obj-prop-elem-init-fn-name-gen.js --- description: Assignment of function `name` attribute (GeneratorExpression) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. AssignmentElement[Yield] : DestructuringAssignmentTarget Initializeropt [...] 7. If Initializer is present and v is undefined and IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then a. Let hasNameProperty be HasOwnProperty(rhsValue, "name"). b. ReturnIfAbrupt(hasNameProperty). c. If hasNameProperty is false, perform SetFunctionName(rhsValue, GetReferencedName(lref)). --- 1573 -
obj-prop-elem-init-in.js --- description: The Initializer in an AssignmentElement may be an `in` expression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 880 -
obj-prop-elem-init-let.js --- description: Value retrieval of Initializer obeys `let` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [let, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 813 -
obj-prop-elem-init-yield-expr.js --- description: When a `yield` token appears within the Initializer of an AssignmentElement and within a generator function body, it should behave as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1320 -
obj-prop-elem-init-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the Initializer of an AssignmentElement and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 971 -
obj-prop-elem-init-yield-ident-valid.js --- description: When a `yield` token appears within the Initializer of an AssignmentElement and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 998 -
obj-prop-elem-target-memberexpr-optchain-prop-ref-init.js --- description: 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) (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [optional-chaining, destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 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. --- 2029 -
obj-prop-elem-target-obj-literal-optchain-prop-ref-init.js --- description: 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 (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [optional-chaining, destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. 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. --- 2043 -
obj-prop-elem-target-obj-literal-prop-ref-init-active.js --- description: The DestructuringAssignmentTarget of an AssignmentElement can extend to LHSExpressions if it is neither an ObjectLiteral nor an ArrayLiteral and its AssignmentTargetTyp is simple. Using MemberExpression (ObjLiteral + identifier) with active initializer. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Syntax AssignmentPattern : ObjectAssignmentPattern ObjectAssignmentPattern : { AssignmentPropertyList } AssignmentPropertyList : AssignmentProperty AssignmentProperty : PropertyName : AssignmentElement AssignmentElement : DestructuringAssignmentTarget Initializer_opt DestructuringAssignmentTarget : LeftHandSideExpression Static Semantics: Early Errors DestructuringAssignmentTarget : LeftHandSideExpression - It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if LeftHandSideExpression is not covering an AssignmentPattern. - It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and AssignmentTargetType(LeftHandSideExpression) is not simple. Runtime Semantics: DestructuringAssignmentEvaluation ObjectAssignmentPattern : { AssignmentPropertyList } 1. Perform ? RequireObjectCoercible(value). 2. Perform ? PropertyDestructuringAssignmentEvaluation for AssignmentPropertyList using value as the argument. 3. Return NormalCompletion(empty). Runtime Semantics: PropertyDestructuringAssignmentEvaluation AssignmentProperty : PropertyName : AssignmentElement 1. Let name be the result of evaluating PropertyName. 2. ReturnIfAbrupt(name). 3. Perform ? KeyedDestructuringAssignmentEvaluation of AssignmentElement with value and name as the arguments. 4. Return a new List containing name. Runtime Semantics: KeyedDestructuringAssignmentEvaluation AssignmentElement : DestructuringAssignmentTarget Initializer 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. ... --- 3015 -
obj-prop-elem-target-obj-literal-prop-ref-init.js --- description: The DestructuringAssignmentTarget of an AssignmentElement can extend to LHSExpressions if it is neither an ObjectLiteral nor an ArrayLiteral and its AssignmentTargetTyp is simple. Using MemberExpression (ObjLiteral + identifier) with initializer. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Syntax AssignmentPattern : ObjectAssignmentPattern ObjectAssignmentPattern : { AssignmentPropertyList } AssignmentPropertyList : AssignmentProperty AssignmentProperty : PropertyName : AssignmentElement AssignmentElement : DestructuringAssignmentTarget Initializer_opt DestructuringAssignmentTarget : LeftHandSideExpression Static Semantics: Early Errors DestructuringAssignmentTarget : LeftHandSideExpression - It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if LeftHandSideExpression is not covering an AssignmentPattern. - It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and AssignmentTargetType(LeftHandSideExpression) is not simple. Runtime Semantics: DestructuringAssignmentEvaluation ObjectAssignmentPattern : { AssignmentPropertyList } 1. Perform ? RequireObjectCoercible(value). 2. Perform ? PropertyDestructuringAssignmentEvaluation for AssignmentPropertyList using value as the argument. 3. Return NormalCompletion(empty). Runtime Semantics: PropertyDestructuringAssignmentEvaluation AssignmentProperty : PropertyName : AssignmentElement 1. Let name be the result of evaluating PropertyName. 2. ReturnIfAbrupt(name). 3. Perform ? KeyedDestructuringAssignmentEvaluation of AssignmentElement with value and name as the arguments. 4. Return a new List containing name. Runtime Semantics: KeyedDestructuringAssignmentEvaluation AssignmentElement : DestructuringAssignmentTarget Initializer 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. ... --- 2994 -
obj-prop-elem-target-obj-literal-prop-ref.js --- description: The DestructuringAssignmentTarget of an AssignmentElement can extend to LHSExpressions if it is neither an ObjectLiteral nor an ArrayLiteral and its AssignmentTargetTyp is simple. Using MemberExpression (ObjLiteral + identifier). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. Syntax AssignmentPattern : ObjectAssignmentPattern ObjectAssignmentPattern : { AssignmentPropertyList } AssignmentPropertyList : AssignmentProperty AssignmentProperty : PropertyName : AssignmentElement AssignmentElement : DestructuringAssignmentTarget Initializer_opt DestructuringAssignmentTarget : LeftHandSideExpression Static Semantics: Early Errors DestructuringAssignmentTarget : LeftHandSideExpression - It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if LeftHandSideExpression is not covering an AssignmentPattern. - It is a Syntax Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and AssignmentTargetType(LeftHandSideExpression) is not simple. Runtime Semantics: DestructuringAssignmentEvaluation ObjectAssignmentPattern : { AssignmentPropertyList } 1. Perform ? RequireObjectCoercible(value). 2. Perform ? PropertyDestructuringAssignmentEvaluation for AssignmentPropertyList using value as the argument. 3. Return NormalCompletion(empty). Runtime Semantics: PropertyDestructuringAssignmentEvaluation AssignmentProperty : PropertyName : AssignmentElement 1. Let name be the result of evaluating PropertyName. 2. ReturnIfAbrupt(name). 3. Perform ? KeyedDestructuringAssignmentEvaluation of AssignmentElement with value and name as the arguments. 4. Return a new List containing name. Runtime Semantics: KeyedDestructuringAssignmentEvaluation AssignmentElement : DestructuringAssignmentTarget Initializer 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then a. Let lref be the result of evaluating DestructuringAssignmentTarget. ... --- 2967 -
obj-prop-elem-target-yield-expr.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement and within a generator function body, it should behave as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1370 -
obj-prop-elem-target-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 990 -
obj-prop-elem-target-yield-ident-valid.js --- description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1040 -
obj-prop-identifier-resolution-first.js --- description: Evaluation of DestructuringAssignmentTarget (first of many). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 887 -
obj-prop-identifier-resolution-last.js --- description: Evaluation of DestructuringAssignmentTarget (last of many). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 885 -
obj-prop-identifier-resolution-lone.js --- description: Evaluation of DestructuringAssignmentTarget (lone element). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 875 -
obj-prop-identifier-resolution-middle.js --- description: Evaluation of DestructuringAssignmentTarget (within many). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 892 -
obj-prop-identifier-resolution-trlng.js --- description: Evaluation of DestructuringAssignmentTarget (lone element with trailing comma). (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 897 -
obj-prop-name-evaluation-error.js --- description: Any error raised as a result of evaluating PropertyName should be forwarded to the runtime. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 844 -
obj-prop-name-evaluation.js --- description: PropertyName of an AssignmentProperty may be a ComputedPropertyName. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 963 -
obj-prop-nested-array-invalid.js --- description: It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using AssignmentPattern as the goal symbol. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1027 -
obj-prop-nested-array-null.js --- description: When DestructuringAssignmentTarget is an array literal and the value is `null`, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 864 -
obj-prop-nested-array-undefined-own.js --- description: When DestructuringAssignmentTarget is an array literal and the value is `undefined`, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 883 -
obj-prop-nested-array-undefined.js --- description: When DestructuringAssignmentTarget is an array literal and the value is not defined, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 865 -
obj-prop-nested-array-yield-expr.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and within a generator function body, it should behave as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1352 -
obj-prop-nested-array-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 996 -
obj-prop-nested-array-yield-ident-valid.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1025 -
obj-prop-nested-array.js --- description: When DestructuringAssignmentTarget is an array literal, it should be parsed parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 966 -
obj-prop-nested-obj-invalid.js --- description: It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using AssignmentPattern as the goal symbol. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1031 -
obj-prop-nested-obj-null.js --- description: When DestructuringAssignmentTarget is an object literal and the value is `null`, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 863 -
obj-prop-nested-obj-undefined-own.js --- description: When DestructuringAssignmentTarget is an object literal and the value is `undefined`, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 882 -
obj-prop-nested-obj-undefined.js --- description: When DestructuringAssignmentTarget is an object literal and the value is not defined, a TypeError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 864 -
obj-prop-nested-obj-yield-expr.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and within a generator function body, it should behave as a YieldExpression. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [generators, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1356 -
obj-prop-nested-obj-yield-ident-invalid-strict.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 996 -
obj-prop-nested-obj-yield-ident-valid.js --- description: When a `yield` token appears within the Initializer of a nested destructuring assignment and outside of a generator function body, it should behave as an IdentifierReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1031 -
obj-prop-nested-obj.js --- description: When DestructuringAssignmentTarget is an object literal, it should be parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 969 -
obj-prop-put-const.js --- description: The assignment target should obey `const` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [const, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 805 -
obj-prop-put-let.js --- description: The assignment target should obey `let` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [let, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 793 -
obj-prop-put-order.js --- description: The AssignmentElements in an AssignmentElementList are evaluated in left- to-right order. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 893 -
obj-prop-put-prop-ref-no-get.js --- description: If the DestructuringAssignmentTarget of an AssignmentElement is a PropertyReference, it should not be evaluated. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1069 -
obj-prop-put-prop-ref-user-err.js --- description: Any error raised as a result of setting the value should be forwarded to the runtime. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 898 -
obj-prop-put-prop-ref.js --- description: The DestructuringAssignmentTarget of an AssignmentElement may be a PropertyReference. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 891 -
obj-prop-put-unresolvable-no-strict.js --- description: Outside of strict mode, if the the assignment target is an unresolvable reference, a new `var` binding should be created in the environment record. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, noStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 990 -
obj-prop-put-unresolvable-strict-strict.js --- description: In strict mode, if the the assignment target is an unresolvable reference, a ReferenceError should be thrown. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [destructuring-binding] flags: [generated, onlyStrict] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 892 -
obj-rest-computed-property-no-strict.js --- description: Destructuring field can be a computed property, i.e it can be defined only at runtime. Rest operantion needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated, noStrict] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1366 -
obj-rest-computed-property.js --- description: Destructuring field can be a computed property, i.e it can be defined only at runtime. Rest operantion needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1359 -
obj-rest-descriptors.js --- description: Object created from rest deconstruction doesn't copy source object property descriptors. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1290 -
obj-rest-empty-obj.js --- description: RestBindingInitialization creates a new object even if lhs is an empty object (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 970 -
obj-rest-getter-abrupt-get-error.js --- description: Rest deconstruction doesn't happen if getter return is abrupt (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 916 -
obj-rest-getter.js --- description: Getter is called when obj is being deconstructed to a rest Object (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1041 -
obj-rest-non-string-computed-property-1.js --- description: Destructuring field can be a non-string computed property, i.e it can be defined only at runtime. Rest operation needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1224 -
obj-rest-non-string-computed-property-1dot.js --- description: Destructuring field can be a non-string computed property, i.e it can be defined only at runtime. Rest operation needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [compareArray.js, propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1251 -
obj-rest-non-string-computed-property-1dot0.js --- description: Destructuring field can be a non-string computed property, i.e it can be defined only at runtime. Rest operation needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1230 -
obj-rest-non-string-computed-property-1e0.js --- description: Destructuring field can be a non-string computed property, i.e it can be defined only at runtime. Rest operation needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1228 -
obj-rest-non-string-computed-property-array-1.js --- description: Destructuring field can be a non-string computed property, i.e it can be defined only at runtime. Rest operation needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [compareArray.js, propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1254 -
obj-rest-non-string-computed-property-array-1e0.js --- description: Destructuring field can be a non-string computed property, i.e it can be defined only at runtime. Rest operation needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [compareArray.js, propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1259 -
obj-rest-non-string-computed-property-string-1.js --- description: Destructuring field can be a non-string computed property, i.e it can be defined only at runtime. Rest operation needs to skip these properties as well. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1235 -
obj-rest-not-last-element-invalid.js --- description: Object rest element needs to be the last AssignmenProperty in ObjectAssignmentPattern. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] negative: phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 888 -
obj-rest-number.js --- description: RestBindingInitialization creates a new object even if lhs is a Number (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 951 -
obj-rest-order.js --- description: Rest operation follows [[OwnPropertyKeys]] order (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol, object-rest, destructuring-binding] flags: [generated] includes: [compareArray.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1235 -
obj-rest-put-const.js --- description: The object rest deconstruction assignment target should obey `const` semantics. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 840 -
obj-rest-same-name.js --- description: Proper setting in the values for rest name equal to a property name. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1173 -
obj-rest-skip-non-enumerable.js --- description: Rest object doesn't contain non-enumerable properties (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1244 -
obj-rest-str-val.js --- description: RestBindingInitialization creats an object with indexes as property name (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 988 -
obj-rest-symbol-val.js --- description: RestBindingInitialization creates a new object if lhs is a Symbol (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [Symbol, object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 969 -
obj-rest-to-property-with-setter.js --- description: When DestructuringAssignmentTarget is an object property setter, its value should be binded as rest object. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1203 -
obj-rest-to-property.js --- description: When DestructuringAssignmentTarget is an object property, its value should be binded as rest object. (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1078 -
obj-rest-val-null.js --- description: TypeError is thrown when rhs is null because of 7.1.13 ToObject ( argument ) used by CopyDataProperties (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 856 -
obj-rest-val-undefined.js --- description: TypeError is thrown when rhs is ```undefined``` because of 7.1.13 ToObject ( argument ) used by CopyDataProperties (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 877 -
obj-rest-valid-object.js --- description: Rest object contains just unextracted data (AssignmentExpression) esid: sec-variable-statement-runtime-semantics-evaluation features: [object-rest, destructuring-binding] flags: [generated] includes: [propertyHelper.js] info: | VariableDeclaration : BindingPattern Initializer 1. Let rhs be the result of evaluating Initializer. 2. Let rval be GetValue(rhs). 3. ReturnIfAbrupt(rval). 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. --- 1171 -
shell.js 0 -
syntax-error-ident-ref-break-escaped.js --- description: break is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1027 -
syntax-error-ident-ref-case-escaped.js --- description: case is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1023 -
syntax-error-ident-ref-catch-escaped.js --- description: catch is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1027 -
syntax-error-ident-ref-class-escaped.js --- description: class is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1027 -
syntax-error-ident-ref-const-escaped.js --- description: const is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1027 -
syntax-error-ident-ref-continue-escaped.js --- description: continue is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1039 -
syntax-error-ident-ref-debugger-escaped.js --- description: debugger is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1039 -
syntax-error-ident-ref-default-escaped-ext.js --- description: default is a valid identifier name, using extended escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1048 -
syntax-error-ident-ref-default-escaped.js --- description: default is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1035 -
syntax-error-ident-ref-default.js --- description: default is a valid identifier name (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1008 -
syntax-error-ident-ref-delete-escaped.js --- description: delete is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1031 -
syntax-error-ident-ref-do-escaped.js --- description: do is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1015 -
syntax-error-ident-ref-else-escaped.js --- description: else is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1023 -
syntax-error-ident-ref-enum-escaped.js --- description: enum is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1023 -
syntax-error-ident-ref-export-escaped.js --- description: export is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1031 -
syntax-error-ident-ref-extends-escaped-ext.js --- description: extends is a valid identifier name, using extended escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1048 -
syntax-error-ident-ref-extends-escaped.js --- description: extends is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1035 -
syntax-error-ident-ref-extends.js --- description: extends is a valid identifier name (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1008 -
syntax-error-ident-ref-finally-escaped.js --- description: finally is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1035 -
syntax-error-ident-ref-for-escaped.js --- description: for is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1019 -
syntax-error-ident-ref-function-escaped.js --- description: function is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1039 -
syntax-error-ident-ref-if-escaped.js --- description: if is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1015 -
syntax-error-ident-ref-implements-escaped-strict.js --- description: implements is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1087 -
syntax-error-ident-ref-import-escaped.js --- description: import is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1031 -
syntax-error-ident-ref-in-escaped.js --- description: in is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1015 -
syntax-error-ident-ref-instanceof-escaped.js --- description: instanceof is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1047 -
syntax-error-ident-ref-interface-escaped-strict.js --- description: interface is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1083 -
syntax-error-ident-ref-let-escaped-strict.js --- description: let is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1059 -
syntax-error-ident-ref-new-escaped.js --- description: new is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1019 -
syntax-error-ident-ref-package-escaped-strict.js --- description: package is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1075 -
syntax-error-ident-ref-private-escaped-strict.js --- description: private is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1075 -
syntax-error-ident-ref-protected-escaped-strict.js --- description: protected is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1083 -
syntax-error-ident-ref-public-escaped-strict.js --- description: public is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1071 -
syntax-error-ident-ref-return-escaped.js --- description: return is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1031 -
syntax-error-ident-ref-static-escaped-strict.js --- description: static is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated, onlyStrict] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1071 -
syntax-error-ident-ref-super-escaped.js --- description: super is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1027 -
syntax-error-ident-ref-switch-escaped.js --- description: switch is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1031 -
syntax-error-ident-ref-this-escaped.js --- description: this is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1023 -
syntax-error-ident-ref-throw-escaped.js --- description: throw is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1027 -
syntax-error-ident-ref-try-escaped.js --- description: try is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1019 -
syntax-error-ident-ref-typeof-escaped.js --- description: typeof is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1031 -
syntax-error-ident-ref-var-escaped.js --- description: var is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1019 -
syntax-error-ident-ref-void-escaped.js --- description: void is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1023 -
syntax-error-ident-ref-while-escaped.js --- description: while is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1027 -
syntax-error-ident-ref-with-escaped.js --- description: with is a valid identifier name, using escape (IdentifierReference in ObjectAssignmentPattern cannot be a ReservedWord) esid: prod-AssignmentPattern features: [destructuring-assignment] flags: [generated] negative: phase: parse type: SyntaxError info: | AssignmentPattern: ObjectAssignmentPattern ObjectAssignmentPattern: { AssignmentPropertyList } AssignmentPropertyList: AssignmentProperty AssignmentPropertyList , AssignmentProperty AssignmentProperty: IdentifierReference Initializer_opt PropertyName : AssignmentElement IdentifierReference: Identifier [~Yield]yield [~Await]await Identifier: IdentifierName but not ReservedWord --- 1023 -