diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-assignment.js b/test/language/statements/for-await-of/dstr-array-elem-init-assignment.js deleted file mode 100644 index 4ec79f5c34a279f7423ffcc6d8275468ed39a010..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-assignment.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-assignment.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: If the Initializer is present and v is undefined, the Initializer should be evaluated and the result assigned to the target reference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var v2, vNull, vHole, vUndefined, vOob; - -var counter = 0; - -async function fn() { - for await ([v2 = 10, vNull = 11, vHole = 12, vUndefined = 13, vOob = 14] of [[2, null, , undefined]]) { - assert.sameValue(v2, 2); - assert.sameValue(vNull, null); - assert.sameValue(vHole, 12); - assert.sameValue(vUndefined, 13); - assert.sameValue(vOob, 14); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-evaluation.js b/test/language/statements/for-await-of/dstr-array-elem-init-evaluation.js deleted file mode 100644 index 1b76dff98d7cc86c4a2883a585dc2088ad8739da..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-evaluation.js +++ /dev/null @@ -1,42 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-evaluation.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The Initializer should only be evaluated if v is undefined. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var flag1 = false, flag2 = false; -var _; - -var counter = 0; - -async function fn() { - for await ([ _ = flag1 = true, _ = flag2 = true ] of [[14]]) { - assert.sameValue(flag1, false); - assert.sameValue(flag2, true); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-arrow.js b/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-arrow.js deleted file mode 100644 index fea2d852e29b4a8a98a1ff7abfd060dc111654f9..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-arrow.js +++ /dev/null @@ -1,54 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-fn-name-arrow.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (ArrowFunction) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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)). - ----*/ -var arrow; - -var counter = 0; - -async function fn() { - for await ([ arrow = () => {} ] of [[]]) { - assert.sameValue(arrow.name, 'arrow'); - verifyNotEnumerable(arrow, 'name'); - verifyNotWritable(arrow, 'name'); - verifyConfigurable(arrow, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-class.js b/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-class.js deleted file mode 100644 index 37525edcd44ce0068119634652e97afce9c382b3..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-class.js +++ /dev/null @@ -1,57 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-fn-name-class.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (ClassExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [class, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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)). - ----*/ -var xCls, cls, xCls2; - -var counter = 0; - -async function fn() { - for await ([ xCls = class x {}, cls = class {}, xCls2 = class { static name() {} } ] of [[]]) { - assert(xCls.name !== 'xCls'); - assert(xCls2.name !== 'xCls2'); - - assert.sameValue(cls.name, 'cls'); - verifyNotEnumerable(cls, 'name'); - verifyNotWritable(cls, 'name'); - verifyConfigurable(cls, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-cover.js b/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-cover.js deleted file mode 100644 index fa0fa636c8466c79a548c07d70c118b30767929a..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-cover.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-fn-name-cover.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (CoverParenthesizedExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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)). - ----*/ -var xCover, cover; - -var counter = 0; - -async function fn() { - for await ([ xCover = (0, function() {}), cover = (function() {}) ] of [[]]) { - assert(xCover.name !== 'xCover'); - - assert.sameValue(cover.name, 'cover'); - verifyNotEnumerable(cover, 'name'); - verifyNotWritable(cover, 'name'); - verifyConfigurable(cover, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-fn.js b/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-fn.js deleted file mode 100644 index 429355375d74e9afc87a8f4bc64cdbaa293a9844..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-fn.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-fn-name-fn.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (FunctionExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [class, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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)). - ----*/ -var xFn, fn; - -var counter = 0; - -async function fn() { - for await ([ xFn = function x() {}, fn = function() {} ] of [[]]) { - assert(xFn.name !== 'xFn'); - - assert.sameValue(fn.name, 'fn'); - verifyNotEnumerable(fn, 'name'); - verifyNotWritable(fn, 'name'); - verifyConfigurable(fn, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-gen.js b/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-gen.js deleted file mode 100644 index 4bfd1114657f0bd418aa899d6dab42a15e9fe286..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-fn-name-gen.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-fn-name-gen.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (GeneratorExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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)). - ----*/ -var xGen, gen; - -var counter = 0; - -async function fn() { - for await ([ xGen = function* x() {}, gen = function*() {} ] of [[]]) { - assert.notSameValue(xGen.name, 'xGen'); - - assert.sameValue(gen.name, 'gen'); - verifyNotEnumerable(gen, 'name'); - verifyNotWritable(gen, 'name'); - verifyConfigurable(gen, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-in.js b/test/language/statements/for-await-of/dstr-array-elem-init-in.js deleted file mode 100644 index 2c35d84b243e893efc3867607aa6ee384842ff92..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-in.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-in.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The Initializer in an AssignmentElement may be an `in` expression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ([ x = 'x' in {} ] of [[]]) { - assert.sameValue(x, false); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-order.js b/test/language/statements/for-await-of/dstr-array-elem-init-order.js deleted file mode 100644 index e145fda73d8e1c2623b4de948efbed4ec8ffad2d..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-order.js +++ /dev/null @@ -1,43 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-order.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Initializer values should be assigned in left-to-right order. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = 0; -var a, b; - -var counter = 0; - -async function fn() { - for await ([ a = x += 1, b = x *= 2 ] of [[]]) { - assert.sameValue(a, 1); - assert.sameValue(b, 2); - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-simple-no-strict.js b/test/language/statements/for-await-of/dstr-array-elem-init-simple-no-strict.js deleted file mode 100644 index 91d88807a277f583c96df09276bdc2d71fba8019..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-simple-no-strict.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-simple-no-strict.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Identifiers that appear as the DestructuringAssignmentTarget in an AssignmentElement should take on the iterated value corresponding to their position in the ArrayAssignmentPattern. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var argument, eval; - -var counter = 0; - -async function fn() { - for await ([arguments = 4, eval = 5] of [[]]) { - assert.sameValue(arguments, 4); - assert.sameValue(eval, 5); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-yield-expr.js b/test/language/statements/for-await-of/dstr-array-elem-init-yield-expr.js deleted file mode 100644 index 0b967873395470037cfaf32cce4f72b142734221..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-yield-expr.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of an AssignmentElement within a generator function body, it behaves as a YieldExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var value = []; -var iterationResult, iter, x; -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ([ x = yield ] of [[]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -})(); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x, undefined); - -iterationResult = iter.next(86); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x, 86); diff --git a/test/language/statements/for-await-of/dstr-array-elem-init-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-array-elem-init-yield-ident-valid.js deleted file mode 100644 index cccf1aec0ad48676caf94dd2ff3c6ba85236ebda..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-init-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-init-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of an AssignmentElement outside of a generator function body, it behaves as an IdentifierReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 4; -var x; - -var counter = 0; - -async function fn() { - for await ([ x = yield ] of [[]]) { - assert.sameValue(x, 4); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-iter-nrml-close-skip.js b/test/language/statements/for-await-of/dstr-array-elem-iter-nrml-close-skip.js deleted file mode 100644 index b891fef4f681a9974ec52f53abf8006965fa6590..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-iter-nrml-close-skip.js +++ /dev/null @@ -1,64 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-iter-nrml-close-skip.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is not called when assignment evaluation has exhausted the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : [ AssignmentElementList ] - - [...] - 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, result). - 6. Return result. - ----*/ -var nextCount = 0; -var returnCount = 0; -var _; -var iterable = {}; -var iterator = { - next: function() { - nextCount += 1; - return { done: true }; - }, - return: function() { - returnCount += 1; - return {}; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ _ ] of [iterable]) { - assert.sameValue(nextCount, 1); - assert.sameValue(returnCount, 0); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-iter-nrml-close.js b/test/language/statements/for-await-of/dstr-array-elem-iter-nrml-close.js deleted file mode 100644 index b73afb2079e01b9a0cdd15f509902f620aca3bc8..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-iter-nrml-close.js +++ /dev/null @@ -1,80 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-iter-nrml-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is called when assignment evaluation has not exhausted the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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, « »). - [...] - ----*/ -var nextCount = 0; -var returnCount = 0; -var thisValue = null; -var args = null; -var _; -var iterable = {}; -var iterator = { - next: function() { - nextCount += 1; - // Set an upper-bound to limit unnecessary iteration in non-conformant - // implementations - return { done: nextCount > 10 }; - }, - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ _ ] of [iterable]) { - assert.sameValue(nextCount, 1); - assert.sameValue(returnCount, 1); - assert.sameValue(thisValue, iterator, 'correct `this` value'); - assert(!!args, 'arguments object provided'); - assert.sameValue(args.length, 0, 'zero arguments specified'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close-err.js b/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close-err.js deleted file mode 100644 index 18efa99076c0709733d8f43365fe0bf55c35d008..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close-err.js +++ /dev/null @@ -1,79 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-iter-rtrn-close-err.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is called when reference evaluation produces a "return" completion (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var returnCount = 0; -var unreachable = 0; -var iterable = {}; -var iterator = { - return: function() { - returnCount += 1; - throw new Test262Error(); - } -}; -var iter; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([ {}[ yield ] ] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} -iter = g(); -iter.next(); -assert.throws(Test262Error, function() { - iter.return(); -}); - -assert.sameValue(returnCount, 1); -assert.sameValue(unreachable, 0, 'Unreachable statement was not executed'); diff --git a/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close-null.js b/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close-null.js deleted file mode 100644 index ef43fceeee189abddcc39f81e81a442160f59ae2..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close-null.js +++ /dev/null @@ -1,76 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-iter-rtrn-close-null.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose throws a TypeError when `return` returns a non-Object value (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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. - ----*/ -var iterable = {}; -var iterator = { - return: function() { - return null; - } -}; -var iter; -iterable[Symbol.iterator] = function() { - return iterator; -}; -function* g() { - -var counter = 0; - -async function fn() { - for await ([ {}[yield] ] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); - -assert.throws(TypeError, function() { - iter.return(); -}); diff --git a/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close.js b/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close.js deleted file mode 100644 index 303d64a37f32ae79202d7c63b0453b9db5585be2..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-iter-rtrn-close.js +++ /dev/null @@ -1,86 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-iter-rtrn-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is called when reference evaluation produces a "return" completion (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var returnCount = 0; -var unreachable = 0; -var thisValue = null; -var args = null; -var iterable = {}; -var iterator = { - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -var iter, result; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([ {}[yield] ] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} -iter = g(); -iter.next(); -result = iter.return(777); - -assert.sameValue(returnCount, 1); -assert.sameValue(unreachable, 0, 'Unreachable statement was not executed'); -assert.sameValue(result.value, 777); -assert(result.done, 'Iterator correctly closed'); -assert.sameValue(thisValue, iterator, 'correct `this` value'); -assert(!!args, 'arguments object provided'); -assert.sameValue(args.length, 0, 'zero arguments specified'); diff --git a/test/language/statements/for-await-of/dstr-array-elem-nested-array-yield-expr.js b/test/language/statements/for-await-of/dstr-array-elem-nested-array-yield-expr.js deleted file mode 100644 index 9ad3e282be29996c54075451f606ea3721bbc44f..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-nested-array-yield-expr.js +++ /dev/null @@ -1,58 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-nested-array-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var value = [[22]]; -var x = {}; -var iterationResult, iter; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ([[x[yield]]] of [value]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x.prop, undefined); - -iterationResult = iter.next('prop'); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x.prop, 22); diff --git a/test/language/statements/for-await-of/dstr-array-elem-nested-array-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-array-elem-nested-array-yield-ident-valid.js deleted file mode 100644 index e11b2b4c6c6de99df593d2b92e8bd4666d9443b7..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-nested-array-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-nested-array-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the DestructuringAssignmentTarget of a nested destructuring assignment outside of strict mode, it behaves as an IdentifierReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 'prop'; -var x = {}; - -var counter = 0; - -async function fn() { - for await ([[x[yield]]] of [[[22]]]) { - assert.sameValue(x.prop, 22); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-nested-array.js b/test/language/statements/for-await-of/dstr-array-elem-nested-array.js deleted file mode 100644 index d6b92ee4792d096a83b8c34d445ffc75a83561a3..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-nested-array.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-nested-array.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an array literal, it should be parsed parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ([[x]] of [[[1]]]) { - assert.sameValue(x, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-nested-obj-yield-expr.js b/test/language/statements/for-await-of/dstr-array-elem-nested-obj-yield-expr.js deleted file mode 100644 index 2c33ed58e358feb27338d4852f31561191edc82c..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-nested-obj-yield-expr.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-nested-obj-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var iterationResult, iter, x; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ([{ x = yield }] of [[{}]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x, undefined); - -iterationResult = iter.next(4); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x, 4); diff --git a/test/language/statements/for-await-of/dstr-array-elem-nested-obj-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-array-elem-nested-obj-yield-ident-valid.js deleted file mode 100644 index d503e10ee170d1e28631ca6fa2e9e5b83d8ea74a..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-nested-obj-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-nested-obj-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 2; -var x; - -var counter = 0; - -async function fn() { - for await ([{ x = yield }] of [[{}]]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-nested-obj.js b/test/language/statements/for-await-of/dstr-array-elem-nested-obj.js deleted file mode 100644 index bd47dba4fdd76c63512ed94510862c896fad6671..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-nested-obj.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-nested-obj.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an object literal, it should be parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ([{ x }] of [[{ x: 2 }]]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-put-prop-ref-no-get.js b/test/language/statements/for-await-of/dstr-array-elem-put-prop-ref-no-get.js deleted file mode 100644 index 6d1aad896f2fff98dab914929bad5724c5a2f7cb..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-put-prop-ref-no-get.js +++ /dev/null @@ -1,48 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-put-prop-ref-no-get.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: If the DestructuringAssignmentTarget of an AssignmentElement is a PropertyReference, it should not be evaluated. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x, setValue; -x = { - get y() { - $ERROR('The property should not be accessed.'); - }, - set y(val) { - setValue = val; - } -}; - -var counter = 0; - -async function fn() { - for await ([x.y] of [[23]]) { - assert.sameValue(setValue, 23); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-put-prop-ref.js b/test/language/statements/for-await-of/dstr-array-elem-put-prop-ref.js deleted file mode 100644 index aa72ff286bc7346280f1c20526536ce0685d20ae..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-put-prop-ref.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-put-prop-ref.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The DestructuringAssignmentTarget of an AssignmentElement may be a PropertyReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = {}; - -var counter = 0; - -async function fn() { - for await ([x.y] of [[4]]) { - assert.sameValue(x.y, 4); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-put-unresolvable-no-strict.js b/test/language/statements/for-await-of/dstr-array-elem-put-unresolvable-no-strict.js deleted file mode 100644 index 256dcb8869e828474add43478c5df05df53351a0..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-put-unresolvable-no-strict.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-put-unresolvable-no-strict.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -{ - -var counter = 0; - -async function fn() { - for await ([ unresolvable ] of [[]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -assert.sameValue(unresolvable, undefined); diff --git a/test/language/statements/for-await-of/dstr-array-elem-target-identifier.js b/test/language/statements/for-await-of/dstr-array-elem-target-identifier.js deleted file mode 100644 index f95b06dd558382a50d747184f994e403690b95c0..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-target-identifier.js +++ /dev/null @@ -1,42 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-target-identifier.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Identifiers that appear as the DestructuringAssignmentTarget in an AssignmentElement should take on the iterated value corresponding to their position in the ArrayAssignmentPattern. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x, y, z; - -var counter = 0; - -async function fn() { - for await ([x, y, z] of [[1, 2, 3]]) { - assert.sameValue(x, 1); - assert.sameValue(y, 2); - assert.sameValue(z, 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-target-simple-no-strict.js b/test/language/statements/for-await-of/dstr-array-elem-target-simple-no-strict.js deleted file mode 100644 index 8a9990e0a3c082ed128698d032d4c62a3649ef18..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-target-simple-no-strict.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-target-simple-no-strict.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Identifiers that appear as the DestructuringAssignmentTarget in an AssignmentElement should take on the iterated value corresponding to their position in the ArrayAssignmentPattern. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var argument, eval; - -var counter = 0; - -async function fn() { - for await ([arguments, eval] of [[2, 3]]) { - assert.sameValue(arguments, 2); - assert.sameValue(eval, 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-target-yield-expr.js b/test/language/statements/for-await-of/dstr-array-elem-target-yield-expr.js deleted file mode 100644 index f21bf7f7cb80838462f8c346a02839f92b573314..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-target-yield-expr.js +++ /dev/null @@ -1,58 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-target-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement within a generator function body, it behaves as a YieldExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var value = [33]; -var x = {}; -var iterationResult, iter; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ([ x[yield] ] of [[33]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x.prop, undefined); - -iterationResult = iter.next('prop'); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x.prop, 33); diff --git a/test/language/statements/for-await-of/dstr-array-elem-target-yield-valid.js b/test/language/statements/for-await-of/dstr-array-elem-target-yield-valid.js deleted file mode 100644 index a9b16fdff3703a58b5a288480624652a2646f678..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-target-yield-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-target-yield-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement outside of a generator function body, it behaves as an IdentifierReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 'prop'; -var x = {}; - -var counter = 0; - -async function fn() { - for await ([ x[yield] ] of [[33]]) { - assert.sameValue(x.prop, 33); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close-skip.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close-skip.js deleted file mode 100644 index dc73b88d0502e87471aaa8dace61716ab330f6ed..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close-skip.js +++ /dev/null @@ -1,72 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-elision-iter-nrml-close-skip.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose not invoked when elision exhausts the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var nextCount = 0; -var returnCount = 0; -var iterable = {}; -var x; -var iterator = { - next: function() { - nextCount += 1; - - return { done: nextCount > 1 }; - }, - return: function() { - returnCount += 1; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ x , , ] of [iterable]) { - assert.sameValue(nextCount, 2); - assert.sameValue(returnCount, 0); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close.js deleted file mode 100644 index 9170bb3200e2fd01e8bcd252083bc8d9cbb73739..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-elision-iter-nrml-close.js +++ /dev/null @@ -1,87 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-elision-iter-nrml-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose invoked when elision does not exhaust the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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, « »). - [...] - ----*/ -var nextCount = 0; -var returnCount = 0; -var thisValue = null; -var args = null; -var iterable = {}; -var x; -var iterator = { - next: function() { - nextCount += 1; - - // Set an upper-bound to limit unnecessary iteration in non-conformant - // implementations - return { done: nextCount > 10 }; - }, - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ x , , ] of [iterable]) { - assert.sameValue(nextCount, 2); - assert.sameValue(returnCount, 1); - assert.sameValue(thisValue, iterator, 'correct `this` value'); - assert(!!args, 'arguments object provided'); - assert.sameValue(args.length, 0, 'zero arguments specified'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-nrml-close-skip.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-nrml-close-skip.js deleted file mode 100644 index be57dfb781200f3eead3cc04160f106c1989b9e0..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-nrml-close-skip.js +++ /dev/null @@ -1,73 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-list-nrml-close-skip.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is not invoked when evaluation of AssignmentElementList exhausts the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var nextCount = 0; -var returnCount = 0; -var iterable = {}; -var thrower = function() { - throw new Test262Error(); -}; -var x; -var iterator = { - next: function() { - nextCount += 1; - return { done: true }; - }, - return: function() { - returnCount += 1; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ x , ] of [iterable]) { - assert.sameValue(nextCount, 1); - assert.sameValue(returnCount, 0); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-nrml-close.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-nrml-close.js deleted file mode 100644 index 9d98bc175853b504eda5be4160a207cfcb0df82c..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-nrml-close.js +++ /dev/null @@ -1,86 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-list-nrml-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is invoked when evaluation of AssignmentElementList completes without exhausting the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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, « »). - [...] - ----*/ -var nextCount = 0; -var returnCount = 0; -var thisValue = null; -var args = null; -var iterable = {}; -var x; -var iterator = { - next: function() { - nextCount += 1; - // Set an upper-bound to limit unnecessary iteration in non-conformant - // implementations - return { done: nextCount > 10 }; - }, - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ x , ] of [iterable]) { - assert.sameValue(nextCount, 1); - assert.sameValue(returnCount, 1); - assert.sameValue(thisValue, iterator, 'correct `this` value'); - assert(!!args, 'arguments object provided'); - assert.sameValue(args.length, 0, 'zero arguments specified'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close-err.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close-err.js deleted file mode 100644 index f7b14a42999611c835a2f0701bc995a9203f33f3..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close-err.js +++ /dev/null @@ -1,86 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-list-rtrn-close-err.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is invoked when evaluation of AssignmentElementList returns a "return" completion and the iterator has not been marked as "done" (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var returnCount = 0; -var unreachable = 0; -var iterable = {}; -var iterator = { - return: function() { - returnCount += 1; - - throw new Test262Error(); - } -}; -var iter; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([ {}[yield] , ] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); -assert.throws(Test262Error, function() { - iter.return(); -}); - -assert.sameValue(returnCount, 1); -assert.sameValue(unreachable, 0, 'Unreachable statement was not executed'); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close-null.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close-null.js deleted file mode 100644 index bbabb3d867278ffedf7a770814435a6b165b2452..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close-null.js +++ /dev/null @@ -1,83 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-list-rtrn-close-null.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose throws a TypeError when `return` returns a non-Object value (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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. - ----*/ -var iterable = {}; -var iterator = { - return: function() { - return null; - } -}; -var iter; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([ {}[yield] , ] of [iterable]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); - -assert.throws(TypeError, function() { - iter.return(); -}); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close.js deleted file mode 100644 index 1cab9a05b4b7fe47e9a41da15b57ce5c2e3083bf..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-list-rtrn-close.js +++ /dev/null @@ -1,94 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-list-rtrn-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is invoked when evaluation of AssignmentElementList returns a "return" completion and the iterator has not been marked as "done" (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var returnCount = 0; -var unreachable = 0; -var thisValue = null; -var args = null; -var iterable = {}; -var iterator = { - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -var iter, result; - -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([ {}[yield] , ] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}; - -iter = g(); -iter.next(); -result = iter.return(888); - -assert.sameValue(returnCount, 1); -assert.sameValue(unreachable, 0, 'Unreachable statement was not executed'); -assert.sameValue(result.value, 888); -assert(result.done, 'Iterator correctly closed'); -assert.sameValue(thisValue, iterator, 'correct `this` value'); -assert(!!args, 'arguments object provided'); -assert.sameValue(args.length, 0, 'zero arguments specified'); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-nrml-close-skip.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-nrml-close-skip.js deleted file mode 100644 index c49c8b063a76ac25daeba3defac2b74b1029dab9..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-nrml-close-skip.js +++ /dev/null @@ -1,73 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-rest-nrml-close-skip.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is not called when rest element evaluation has exhausted the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var nextCount = 0; -var returnCount = 0; -var iterable = {}; -var x, y; -var iterator = { - next: function() { - nextCount += 1; - return { value: nextCount, done: nextCount > 1 }; - }, - return: function() { - returnCount += 1; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ x , ...y ] of [iterable]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -assert.sameValue(nextCount, 2, 'nextCount'); -assert.sameValue(returnCount, 0, 'returnCount'); -assert.sameValue(x, 1, 'x'); -assert.sameValue(y.length, 0, 'y.length'); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close-err.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close-err.js deleted file mode 100644 index 566e1a75ce88e6e2399f1e0771e9dadcdb51c40d..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close-err.js +++ /dev/null @@ -1,95 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-rest-rtrn-close-err.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is called when AssignmentRestEvaluation produces a "return" completion due to reference evaluation (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var nextCount = 0; -var returnCount = 0; -var unreachable = 0; -var x; -var iterable = {}; -var iterator = { - next: function() { - nextCount += 1; - // Set an upper-bound to limit unnecessary iteration in non-conformant - // implementations - return { done: nextCount > 10 }; - }, - return: function() { - returnCount += 1; - - throw new Test262Error(); - } -}; -var iter; -iterable[Symbol.iterator] = function() { - return iterator; -}; -function* g() { - -var counter = 0; - -async function fn() { - for await ([ x , ...{}[yield] ] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); - -assert.throws(Test262Error, function() { - iter.return(); -}); - -assert.sameValue(nextCount, 1); -assert.sameValue(returnCount, 1); -assert.sameValue(unreachable, 0, 'Unreachable statement was not executed'); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close-null.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close-null.js deleted file mode 100644 index 073175cf133091d495baf9eda5743e5806109d57..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close-null.js +++ /dev/null @@ -1,90 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-rest-rtrn-close-null.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose throws a TypeError when `return` returns a non-Object value (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var nextCount = 0; -var iterable = {}; -var x; -var iterator = { - next: function() { - nextCount += 1; - // Set an upper-bound to limit unnecessary iteration in non-conformant - // implementations - return { done: nextCount > 10 }; - }, - return: function() { - return null; - } -}; -var iter; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([ x , ...{}[yield] ] of [iterable]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); - -assert.throws(TypeError, function() { - iter.return(); -}); - -assert.sameValue(nextCount, 1); diff --git a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close.js b/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close.js deleted file mode 100644 index 188453533c08318bde49437c19e3f0bf6be51f77..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elem-trlg-iter-rest-rtrn-close.js +++ /dev/null @@ -1,101 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elem-trlg-iter-rest-rtrn-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is called when AssignmentRestEvaluation produces a "return" completion due to reference evaluation (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var nextCount = 0; -var returnCount = 0; -var unreachable = 0; -var thisValue = null; -var args = null; -var iterable = {}; -var x; -var iterator = { - next: function() { - nextCount += 1; - // Set an upper-bound to limit unnecessary iteration in non-conformant - // implementations - return { done: nextCount > 10 }; - }, - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -var iter, result; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([ x , ...{}[yield] ] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); -result = iter.return(999); - -assert.sameValue(nextCount, 1); -assert.sameValue(returnCount, 1); -assert.sameValue(unreachable, 0, 'Unreachable statement was not executed'); -assert.sameValue(result.value, 999); -assert(result.done, 'Iterator correctly closed'); -assert.sameValue(thisValue, iterator, 'correct `this` value'); -assert(!!args, 'arguments object provided'); -assert.sameValue(args.length, 0, 'zero arguments specified'); diff --git a/test/language/statements/for-await-of/dstr-array-elision-iter-nrml-close-skip.js b/test/language/statements/for-await-of/dstr-array-elision-iter-nrml-close-skip.js deleted file mode 100644 index a2d2ec0139362bb3b945219815ae698e13a70194..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elision-iter-nrml-close-skip.js +++ /dev/null @@ -1,65 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elision-iter-nrml-close-skip.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is not called when iteration has exhausted the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - ArrayAssignmentPattern : [ Elision ] - - 1. Let iterator be GetIterator(value). - [...] - 5. If iteratorRecord.[[done]] is false, return IteratorClose(iterator, - result). - [...] - ----*/ -var nextCount = 0; -var returnCount = 0; -var iterable = {}; -var iterator = { - next: function() { - nextCount += 1; - return { done: true }; - }, - return: function() { - returnCount += 1; - return {}; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ , ] of [iterable]) { - assert.sameValue(nextCount, 1); - assert.sameValue(returnCount, 0); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elision-iter-nrml-close.js b/test/language/statements/for-await-of/dstr-array-elision-iter-nrml-close.js deleted file mode 100644 index 509a6001c2646f3e95c5787126d22a5c2be77fbe..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elision-iter-nrml-close.js +++ /dev/null @@ -1,80 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elision-iter-nrml-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is called when assignment evaluation has not exhausted the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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, « »). - [...] - ----*/ -var nextCount = 0; -var returnCount = 0; -var thisValue = null; -var args = null; -var iterable = {}; -var iterator = { - next: function() { - nextCount += 1; - // Set an upper-bound to limit unnecessary iteration in non-conformant - // implementations - return { done: nextCount > 10 }; - }, - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ , ] of [iterable]) { - assert.sameValue(nextCount, 1); - assert.sameValue(returnCount, 1); - assert.sameValue(thisValue, iterator, 'correct `this` value'); - assert(!!args, 'arguments object provided'); - assert.sameValue(args.length, 0, 'zero arguments specified'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elision-val-array.js b/test/language/statements/for-await-of/dstr-array-elision-val-array.js deleted file mode 100644 index 9d55d53877eef745f029c48193c23e651bb16be9..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elision-val-array.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elision-val-array.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ArrayAssignmentPattern containing only Elisions requires iterable values (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ - -var counter = 0; - -async function fn() { - for await ([,] of [[]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-elision-val-string.js b/test/language/statements/for-await-of/dstr-array-elision-val-string.js deleted file mode 100644 index ec09b914e552f48392a2e2928d2c9fc8e1541a36..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-elision-val-string.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-elision-val-string.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ArrayAssignmentPattern containing only Elisions requires iterable values (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ - -var counter = 0; - -async function fn() { - for await ([,] of ['string literal']) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-empty-iter-close.js b/test/language/statements/for-await-of/dstr-array-empty-iter-close.js deleted file mode 100644 index c6bf46b8ca051799d745e45a15001f7d8f5cafb7..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-empty-iter-close.js +++ /dev/null @@ -1,76 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-empty-iter-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Iterator is closed without iterating (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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, « »). - [...] - ----*/ -var nextCount = 0; -var returnCount = 0; -var thisValue = null; -var args = null; -var iterable = {}; -var iterator = { - next: function() { - nextCount += 1; - return { done: true }; - }, - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([] of [iterable]) { - assert.sameValue(nextCount, 0); - assert.sameValue(returnCount, 1); - assert.sameValue(thisValue, iterator, 'correct `this` value'); - assert(!!args, 'arguments object provided'); - assert.sameValue(args.length, 0, 'zero arguments specified'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-empty-val-array.js b/test/language/statements/for-await-of/dstr-array-empty-val-array.js deleted file mode 100644 index 897d5c7e253e7ab6edbc5a10cc3ca36953c00ffd..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-empty-val-array.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-empty-val-array.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ - -var counter = 0; - -async function fn() { - for await ([] of [[]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-empty-val-string.js b/test/language/statements/for-await-of/dstr-array-empty-val-string.js deleted file mode 100644 index 265d0f8984d8058db10bb2c8207eee73d108b3af..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-empty-val-string.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-empty-val-string.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ArrayAssignmentPattern without an AssignmentElementList requires iterable values. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ - -var counter = 0; - -async function fn() { - for await ([] of ['string literal']) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-iteration.js b/test/language/statements/for-await-of/dstr-array-iteration.js deleted file mode 100644 index 4552d7a751d2910a728893f95fc37c0bf11f7b89..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-iteration.js +++ /dev/null @@ -1,47 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-iteration.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Value iteration only proceeds for the number of elements in the ArrayAssignmentPattern. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var count = 0; -var g = function*() { - count += 1; - yield; - count += 1; - yield; - count += 1; -} - -var counter = 0; - -async function fn() { - for await ([,,] of [g()]) { - assert.sameValue(count, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-after-element.js b/test/language/statements/for-await-of/dstr-array-rest-after-element.js deleted file mode 100644 index d796a4d1d57355e9d9d0d7ea40ce17f8c77e5472..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-after-element.js +++ /dev/null @@ -1,43 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-after-element.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An AssignmentRestElement following an AssignmentElement consumes all remaining iterable values. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x, y; - -var counter = 0; - -async function fn() { - for await ([x, ...y] of [[1, 2, 3]]) { - assert.sameValue(x, 1); - assert.sameValue(y.length, 2); - assert.sameValue(y[0], 2); - assert.sameValue(y[1], 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-after-elision.js b/test/language/statements/for-await-of/dstr-array-rest-after-elision.js deleted file mode 100644 index c87534c5e8226831ff59a058da01b354dd47f0e5..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-after-elision.js +++ /dev/null @@ -1,42 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-after-elision.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An AssignmentRestElement following an elision consumes all remaining iterable values. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ([, ...x] of [[1, 2, 3]]) { - assert.sameValue(x.length, 2); - assert.sameValue(x[0], 2); - assert.sameValue(x[1], 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-elision.js b/test/language/statements/for-await-of/dstr-array-rest-elision.js deleted file mode 100644 index af6b84134789df0579c81f5f9eee3dacb483b284..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-elision.js +++ /dev/null @@ -1,43 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-elision.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: ArrayAssignmentPattern may include elisions at any position preceeding a AssignmentRestElement in a AssignmentElementList. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x, y; - -var counter = 0; - -async function fn() { - for await ([, , x, , ...y] of [[1, 2, 3, 4, 5, 6]]) { - assert.sameValue(x, 3); - assert.sameValue(y.length, 2); - assert.sameValue(y[0], 5); - assert.sameValue(y[1], 6); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-iter-nrml-close-skip.js b/test/language/statements/for-await-of/dstr-array-rest-iter-nrml-close-skip.js deleted file mode 100644 index c0f24a7fd91ff564a93bce2ce047a4e10f059d42..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-iter-nrml-close-skip.js +++ /dev/null @@ -1,67 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-iter-nrml-close-skip.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is not called when assignment evaluation has exhausted the iterator (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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. - ----*/ -var nextCount = 0; -var returnCount = 0; -var x; -var iterable = {}; -var iterator = { - next: function() { - nextCount += 1; - return { done: true }; - }, - return: function() { - returnCount += 1; - } -}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([ ...x ] of [iterable]) { - assert.sameValue(nextCount, 1); - assert.sameValue(returnCount, 0); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close-err.js b/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close-err.js deleted file mode 100644 index cfa8e8f4d2e20c87a9e4d794a282f44286cfe1ad..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close-err.js +++ /dev/null @@ -1,91 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-iter-rtrn-close-err.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is called when reference evaluation produces a "return" completion (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var returnCount = 0; -var unreachable = 0; -function ReturnError() {} -var iterable = {}; -var iterator = { - return: function() { - returnCount += 1; - - throw new Test262Error(); - } -}; -var iter; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([...{}[yield]] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); -assert.throws(Test262Error, function() { - iter.return(); -}); - -assert.sameValue(returnCount, 1); -assert.sameValue(unreachable, 0, 'Unreachable statement was not executed'); diff --git a/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close-null.js b/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close-null.js deleted file mode 100644 index becc03c060050b03d30aa04210ff2825809fe1a9..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close-null.js +++ /dev/null @@ -1,90 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-iter-rtrn-close-null.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose throws a TypeError when `return` returns a non-Object value (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var iterable = {}; -var iterator = { - return: function() { - return null; - } -}; -var iter; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([...{}[yield]] of [iterable]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); - -assert.throws(TypeError, function() { - iter.return(); -}); diff --git a/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close.js b/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close.js deleted file mode 100644 index fa4c16d68d14135d49dfebe0761342161be3ec3b..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-iter-rtrn-close.js +++ /dev/null @@ -1,102 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-iter-rtrn-close.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: IteratorClose is called when reference evaluation produces a "return" completion (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var returnCount = 0; -var unreachable = 0; -var thisValue = null; -var args = null; -var iterable = {}; -var iterator = { - return: function() { - returnCount += 1; - thisValue = this; - args = arguments; - return {}; - } -}; -var iter, result; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -function* g() { - -var counter = 0; - -async function fn() { - for await ([...{}[yield]] of [iterable]) { - unreachable += 1; - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -iter = g(); -iter.next(); -result = iter.return(444); - -assert.sameValue(returnCount, 1); -assert.sameValue(unreachable, 0, 'Unreachable statement was not executed'); -assert.sameValue(result.value, 444); -assert(result.done, 'Iterator correctly closed'); -assert.sameValue(thisValue, iterator, 'correct `this` value'); -assert(!!args, 'arguments object provided'); -assert.sameValue(args.length, 0, 'zero arguments specified'); diff --git a/test/language/statements/for-await-of/dstr-array-rest-iteration.js b/test/language/statements/for-await-of/dstr-array-rest-iteration.js deleted file mode 100644 index 76dd8bd84269557bfe33aa16f486c8c391a97bff..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-iteration.js +++ /dev/null @@ -1,48 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-iteration.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: In the presense of an AssignmentRestElement, value iteration exhausts the iterable value; (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var count = 0; -var g = function*() { - count += 1; - yield; - count += 1; - yield; - count += 1; -} -var x; - -var counter = 0; - -async function fn() { - for await ([...x] of [g()]) { - assert.sameValue(count, 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-lref.js b/test/language/statements/for-await-of/dstr-array-rest-lref.js deleted file mode 100644 index 774372e2dd8d07130bacf52149a2776778bb614d..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-lref.js +++ /dev/null @@ -1,76 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-lref.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Reference is evaluated during assignment (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol.iterator, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - [...] - ----*/ -var nextCount = 0; -var returnCount = 0; -var iterable = {}; -var iterator = { - next: function() { - nextCount += 1; - return { done: true }; - }, - return: function() { - returnCount += 1; - } -}; -var obj = {}; -iterable[Symbol.iterator] = function() { - return iterator; -}; - -var counter = 0; - -async function fn() { - for await ([...obj['a' + 'b']] of [iterable]) { - assert.sameValue(nextCount, 1); - assert.sameValue(returnCount, 0); - assert(!!obj.ab); - assert.sameValue(obj.ab.length, 0); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-array-null.js b/test/language/statements/for-await-of/dstr-array-rest-nested-array-null.js deleted file mode 100644 index 7e77f8f08d490fcf407dc48b0156a438823373bc..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-array-null.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-array-null.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x, y; - -var counter = 0; - -async function fn() { - for await ([...[x, y]] of [[null]]) { - assert.sameValue(x, null); - assert.sameValue(y, undefined); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined-hole.js b/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined-hole.js deleted file mode 100644 index 64475acd692c746b6965b03759d1e2e6542bbcf6..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined-hole.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-array-undefined-hole.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; - -var counter = 0; - -async function fn() { - for await ([...[x]] of [[ , ]]) { - assert.sameValue(x, undefined); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined-own.js b/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined-own.js deleted file mode 100644 index 0f7d3daad2ebcf95f8eba153b942f6cdcd8a9c23..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined-own.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-array-undefined-own.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; - -var counter = 0; - -async function fn() { - for await ([...[x]] of [[undefined]]) { - assert.sameValue(x, undefined); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined.js b/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined.js deleted file mode 100644 index 7b9e140806f313346e13d82ba41315f61ae13cdc..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-array-undefined.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-array-undefined.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; - -var counter = 0; - -async function fn() { - for await ([...[x]] of [[]]) { - assert.sameValue(x, undefined); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-array-yield-expr.js b/test/language/statements/for-await-of/dstr-array-rest-nested-array-yield-expr.js deleted file mode 100644 index 80e9734a7b190b93441d5f4fcd359e4d22a5fb17..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-array-yield-expr.js +++ /dev/null @@ -1,58 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-array-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var value = [86]; -var x = {}; -var iterationResult, iter; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ([...[x[yield]]] of [[86]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x.prop, undefined); - -iterationResult = iter.next('prop'); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x.prop, 86); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-array-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-array-rest-nested-array-yield-ident-valid.js deleted file mode 100644 index 877c2b34eb53bb8e4b03ca401df7c3da8c2aa932..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-array-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-array-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 'prop'; -var x = {}; - -var counter = 0; - -async function fn() { - for await ([...[x[yield]]] of [[86]]) { - assert.sameValue(x.prop, 86); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-array.js b/test/language/statements/for-await-of/dstr-array-rest-nested-array.js deleted file mode 100644 index 08e0a641440c0d03b37ebffc7ada603baa945ec0..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-array.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-array.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an array literal, it should be parsed parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ([...[x]] of [[1, 2, 3]]) { - assert.sameValue(x, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-null.js b/test/language/statements/for-await-of/dstr-array-rest-nested-obj-null.js deleted file mode 100644 index 353c891c703c3a1d74f08d4f137a6a5e4732893e..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-null.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-obj-null.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x, length; - -var counter = 0; - -async function fn() { - for await ([...{ 0: x, length }] of [[null]]) { - assert.sameValue(x, null); - assert.sameValue(length, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined-hole.js b/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined-hole.js deleted file mode 100644 index fe597fa823a9e9cab359ec54f4694947ae5972bb..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined-hole.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-obj-undefined-hole.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -// Use the the top-level lexical scope for 'length' to provide compatibility with browsers -// where length and name are properties of WindowProxy -let length; - -var counter = 0; - -async function fn() { - for await ([...{ 0: x, length }] of [[ , ]]) { - assert.sameValue(x, undefined); - assert.sameValue(length, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined-own.js b/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined-own.js deleted file mode 100644 index e75832cde021657cc15dd082b5a4a41e17fd2146..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined-own.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-obj-undefined-own.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -// Use the the top-level lexical scope for 'length' to provide compatibility with browsers -// where length and name are properties of WindowProxy -let length; - -var counter = 0; - -async function fn() { - for await ([...{ 0: x, length }] of [[undefined]]) { - assert.sameValue(x, undefined); - assert.sameValue(length, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined.js b/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined.js deleted file mode 100644 index 470a0ac3cd9cbced5dd79a7ec194870b6c3ac788..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-undefined.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-obj-undefined.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -// Use the the top-level lexical scope for 'length' to provide compatibility with browsers -// where length and name are properties of WindowProxy -let length; - -var counter = 0; - -async function fn() { - for await ([...{ 0: x, length }] of [[]]) { - assert.sameValue(x, undefined); - assert.sameValue(length, 0); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-yield-expr.js b/test/language/statements/for-await-of/dstr-array-rest-nested-obj-yield-expr.js deleted file mode 100644 index 2be57590b489a057bfa0243855ab414929f901f6..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-yield-expr.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-obj-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var iterationResult, iter, x; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ([...{ x = yield }] of [[{}]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x, undefined); - -iterationResult = iter.next(4); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x, 4); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-array-rest-nested-obj-yield-ident-valid.js deleted file mode 100644 index f2b21cfab52d4020ada55e817b996baa0f601e1b..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-obj-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-obj-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 2; -var x; - -var counter = 0; - -async function fn() { - for await ([...{ x = yield }] of [[{}]]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-nested-obj.js b/test/language/statements/for-await-of/dstr-array-rest-nested-obj.js deleted file mode 100644 index 4294b8c84fd4aa481c90d5487b0aa852437dabc8..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-nested-obj.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-nested-obj.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an object literal, it should be parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ([...{ 1: x }] of [[1, 2, 3]]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-put-prop-ref-no-get.js b/test/language/statements/for-await-of/dstr-array-rest-put-prop-ref-no-get.js deleted file mode 100644 index c705eae15eae4472b0c4d0b3c979712430fae7c4..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-put-prop-ref-no-get.js +++ /dev/null @@ -1,51 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-put-prop-ref-no-get.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: If the DestructuringAssignmentTarget of an AssignmentElement is a PropertyReference, it should not be evaluated. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var setValue; -var x = { - get y() { - $ERROR('The property should not be accessed.'); - }, - set y(val) { - setValue = val; - } -}; - -var counter = 0; - -async function fn() { - for await ([...x.y] of [[23, 45, 99]]) { - assert.sameValue(setValue.length, 3); - assert.sameValue(setValue[0], 23); - assert.sameValue(setValue[1], 45); - assert.sameValue(setValue[2], 99); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-put-prop-ref.js b/test/language/statements/for-await-of/dstr-array-rest-put-prop-ref.js deleted file mode 100644 index 4fe4659dc68c250a196b82aac6f0d67d2a37c67c..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-put-prop-ref.js +++ /dev/null @@ -1,43 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-put-prop-ref.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The DestructuringAssignmentTarget of an AssignmentElement may be a PropertyReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = {}; - -var counter = 0; - -async function fn() { - for await ([...x.y] of [[4, 3, 2]]) { - assert.sameValue(x.y.length, 3); - assert.sameValue(x.y[0], 4); - assert.sameValue(x.y[1], 3); - assert.sameValue(x.y[2], 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-array-rest-put-unresolvable-no-strict.js b/test/language/statements/for-await-of/dstr-array-rest-put-unresolvable-no-strict.js deleted file mode 100644 index 8e6ff5b606b6bf0ce9025f9ca7813f3619da73d5..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-put-unresolvable-no-strict.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-put-unresolvable-no-strict.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -{ - -var counter = 0; - -async function fn() { - for await ([ ...unresolvable ] of [[]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -assert.sameValue(unresolvable.length, 0); diff --git a/test/language/statements/for-await-of/dstr-array-rest-yield-expr.js b/test/language/statements/for-await-of/dstr-array-rest-yield-expr.js deleted file mode 100644 index c43782995988359c741fbbd00bb897710575cdf8..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-yield-expr.js +++ /dev/null @@ -1,60 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = {}; -var iterationResult, iter; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ([...x[yield]] of [[33, 44, 55]]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x.prop, undefined); - -iterationResult = iter.next('prop'); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x.prop.length, 3); -assert.sameValue(x.prop[0], 33); -assert.sameValue(x.prop[1], 44); -assert.sameValue(x.prop[2], 55); diff --git a/test/language/statements/for-await-of/dstr-array-rest-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-array-rest-yield-ident-valid.js deleted file mode 100644 index 1cb9d4ebed32b42dd819b2ce667ad4f20e36090b..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-array-rest-yield-ident-valid.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/array-rest-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 'prop'; -var x = {}; - -var counter = 0; - -async function fn() { - for await ([...x[yield]] of [[33, 44, 55]]) { - assert.sameValue(x.prop.length, 3); - assert.sameValue(x.prop[0], 33); - assert.sameValue(x.prop[1], 44); - assert.sameValue(x.prop[2], 55); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-empty-bool.js b/test/language/statements/for-await-of/dstr-obj-empty-bool.js deleted file mode 100644 index ad785f19544b0b14538f708458e39b5a709821f6..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-empty-bool.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-empty-bool.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (boolean value) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ - -var counter = 0; - -async function fn() { - for await ({} of [false]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-empty-num.js b/test/language/statements/for-await-of/dstr-obj-empty-num.js deleted file mode 100644 index bcf4e95a444b22640cc9cc938e6cc361db839b93..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-empty-num.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-empty-num.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (number value) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ - -var counter = 0; - -async function fn() { - for await ({} of [0]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-empty-obj.js b/test/language/statements/for-await-of/dstr-obj-empty-obj.js deleted file mode 100644 index 4c0db8e5fcdb8a424593231697f6eefe9650b270..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-empty-obj.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-empty-obj.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (object value) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ - -var counter = 0; - -async function fn() { - for await ({} of [{}]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-empty-string.js b/test/language/statements/for-await-of/dstr-obj-empty-string.js deleted file mode 100644 index b4e26d6474926aa40b01ea7c7f98a6e2db75f4eb..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-empty-string.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-empty-string.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (string value) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ - -var counter = 0; - -async function fn() { - for await ({} of ['']) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-empty-symbol.js b/test/language/statements/for-await-of/dstr-obj-empty-symbol.js deleted file mode 100644 index a09130983c7f0456f443d8c4c9e762931a9cc635..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-empty-symbol.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-empty-symbol.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: An ObjectAssignmentPattern without an AssignmentPropertyList requires an object-coercible value (symbol value) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [Symbol, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var s = Symbol(); - -var counter = 0; - -async function fn() { - for await ({} of [s]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-first.js b/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-first.js deleted file mode 100644 index 7830d74f61620358c72f048fcae0485d4e34a426..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-first.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-identifier-resolution-first.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (first of many) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -var y; - -var counter = 0; - -async function fn() { - for await ({ x, y } of [{ x: 3 }]) { - assert.sameValue(x, 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-last.js b/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-last.js deleted file mode 100644 index 46abcb93711ea13bcfd5e9c20ead5c5e0ab2da99..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-last.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-identifier-resolution-last.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (last of many) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -var w; - -var counter = 0; - -async function fn() { - for await ({ w, x } of [{ x: 4 }]) { - assert.sameValue(x, 4); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-lone.js b/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-lone.js deleted file mode 100644 index dcce9d28d94a2b4b02fba2ea49969f7773a48e56..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-lone.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-identifier-resolution-lone.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (lone identifier) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; - -var counter = 0; - -async function fn() { - for await ({ x, } of [{ x: 2 }]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-middle.js b/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-middle.js deleted file mode 100644 index 02ff3f7f5f5b00b871b0bd8f9c0d2a5e58f600da..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-middle.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-identifier-resolution-middle.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (within many) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -var w, y; - -var counter = 0; - -async function fn() { - for await ({ w, x, y } of [{ x: 5 }]) { - assert.sameValue(x, 5); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-trlng.js b/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-trlng.js deleted file mode 100644 index dc1dfdb3f0161694146960cd93f001fa1510a3c7..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-identifier-resolution-trlng.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-identifier-resolution-trlng.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (lone identifier with trailing comma) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; - -var counter = 0; - -async function fn() { - for await ({ x } of [{ x: 1 }]) { - assert.sameValue(x, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-identifier-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-obj-id-identifier-yield-ident-valid.js deleted file mode 100644 index cbbad6d53432786ed50c05c6b6a83d7f6c5e2a4f..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-identifier-yield-ident-valid.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-identifier-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: yield is a valid IdentifierReference in an AssignmentProperty outside of strict mode and generator functions. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield; - -var counter = 0; - -async function fn() { - for await ({ yield } of [{ yield: 3 }]) { - assert.sameValue(yield, 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-assignment-missing.js b/test/language/statements/for-await-of/dstr-obj-id-init-assignment-missing.js deleted file mode 100644 index 27be57883eea95938a46754ed7a0b89c38eeb907..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-assignment-missing.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-assignment-missing.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ x = 1 } of [{}]) { - assert.sameValue(x, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-assignment-null.js b/test/language/statements/for-await-of/dstr-obj-id-init-assignment-null.js deleted file mode 100644 index fce306b29fe086a2a9d4f563adbd44e4d468d578..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-assignment-null.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-assignment-null.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ x = 1 } of [{ x: null }]) { - assert.sameValue(x, null); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-assignment-truthy.js b/test/language/statements/for-await-of/dstr-obj-id-init-assignment-truthy.js deleted file mode 100644 index 4d64159d026ec40baa2fc85e8510311e5f1211dd..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-assignment-truthy.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-assignment-truthy.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ x = 1 } of [{ x: 2 }]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-assignment-undef.js b/test/language/statements/for-await-of/dstr-obj-id-init-assignment-undef.js deleted file mode 100644 index 3d414449c17b6524fd0cd869972075b457065427..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-assignment-undef.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-assignment-undef.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ x = 1 } of [{ x: undefined }]) { - assert.sameValue(x, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-evaluation.js b/test/language/statements/for-await-of/dstr-obj-id-init-evaluation.js deleted file mode 100644 index 1f1c5dfbf4554c09f7c1c167b2e4f557c31d6034..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-evaluation.js +++ /dev/null @@ -1,43 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-evaluation.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The Initializer should only be evaluated if v is undefined. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var flag1 = false; -var flag2 = false; -var x, y; - -var counter = 0; - -async function fn() { - for await ({ x = flag1 = true, y = flag2 = true } of [{ y: 1 }]) { - assert.sameValue(flag1, true); - assert.sameValue(flag2, false); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-arrow.js b/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-arrow.js deleted file mode 100644 index 0905a9d9f99c7cbda9a2c17656763fae7b6ff68e..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-arrow.js +++ /dev/null @@ -1,53 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-fn-name-arrow.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (ArrowFunction) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var arrow; - -var counter = 0; - -async function fn() { - for await ({ arrow = () => {} } of [{}]) { - assert.sameValue(arrow.name, 'arrow'); - verifyNotEnumerable(arrow, 'name'); - verifyNotWritable(arrow, 'name'); - verifyConfigurable(arrow, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-class.js b/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-class.js deleted file mode 100644 index ac2b9629b6d7d4d5e0873ccf9a58575f9d1beb14..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-class.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-fn-name-class.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (ClassExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [class, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var xCls, cls, xCls2; - -var counter = 0; - -async function fn() { - for await ({ xCls = class x {}, cls = class {}, xCls2 = class { static name() {} } } of [{}]) { - assert.notSameValue(xCls.name, 'xCls'); - assert.notSameValue(xCls2.name, 'xCls2'); - - assert.sameValue(cls.name, 'cls'); - verifyNotEnumerable(cls, 'name'); - verifyNotWritable(cls, 'name'); - verifyConfigurable(cls, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-cover.js b/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-cover.js deleted file mode 100644 index a8b5ffefbfebd7c1d729a9b148c782df0124ecae..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-cover.js +++ /dev/null @@ -1,55 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-fn-name-cover.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (CoverParenthesizedExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var xCover, cover; - -var counter = 0; - -async function fn() { - for await ({ xCover = (0, function() {}), cover = (function() {}) } of [{}]) { - assert.notSameValue(xCover.name, 'xCover'); - - assert.sameValue(cover.name, 'cover'); - verifyNotEnumerable(cover, 'name'); - verifyNotWritable(cover, 'name'); - verifyConfigurable(cover, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-fn.js b/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-fn.js deleted file mode 100644 index 52d6f587ae671369e45a10e4c6b76807418a00ff..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-fn.js +++ /dev/null @@ -1,55 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-fn-name-fn.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (FunctionExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var xFn, fn; - -var counter = 0; - -async function fn() { - for await ({ xFn = function x() {}, fn = function() {} } of [{}]) { - assert.notSameValue(xFn.name, 'xFn'); - - assert.sameValue(fn.name, 'fn'); - verifyNotEnumerable(fn, 'name'); - verifyNotWritable(fn, 'name'); - verifyConfigurable(fn, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-gen.js b/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-gen.js deleted file mode 100644 index 95ffac652f00e805dd90769a103e0e1b78a4af86..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-fn-name-gen.js +++ /dev/null @@ -1,55 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-fn-name-gen.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (GeneratorExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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). - ----*/ -var xGen, gen; - -var counter = 0; - -async function fn() { - for await ({ xGen = function* x() {}, gen = function*() {} } of [{}]) { - assert.notSameValue(xGen.name, 'xGen'); - - assert.sameValue(gen.name, 'gen'); - verifyNotEnumerable(gen, 'name'); - verifyNotWritable(gen, 'name'); - verifyConfigurable(gen, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-in.js b/test/language/statements/for-await-of/dstr-obj-id-init-in.js deleted file mode 100644 index 5ccf0a61839b75e81d1fd2cfc764b9fd13be78f8..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-in.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-in.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The Initializer in an AssignmentProperty may be an `in` expression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var prop; - -var counter = 0; - -async function fn() { - for await ({ prop = 'x' in {} } of [{}]) { - assert.sameValue(prop, false); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-order.js b/test/language/statements/for-await-of/dstr-obj-id-init-order.js deleted file mode 100644 index 67b87e0f6d1dd2e45df8652082a6c8731367e450..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-order.js +++ /dev/null @@ -1,43 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-order.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Initializer values should be assigned in left-to-right order. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = 0; -var a, b; - -var counter = 0; - -async function fn() { - for await ({ a = x += 1, b = x *= 2 } of [{}]) { - assert.sameValue(a, 1); - assert.sameValue(b, 2); - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-simple-no-strict.js b/test/language/statements/for-await-of/dstr-obj-id-init-simple-no-strict.js deleted file mode 100644 index 159a1dc274486d1da829521defb8cc67e3940b51..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-simple-no-strict.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-simple-no-strict.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var eval, arguments; - -var counter = 0; - -async function fn() { - for await ({ eval = 3, arguments = 4 } of [{}]) { - assert.sameValue(eval, 3); - assert.sameValue(arguments, 4); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-yield-expr.js b/test/language/statements/for-await-of/dstr-obj-id-init-yield-expr.js deleted file mode 100644 index bbe38946b1ebb4c0452d212eb99911c36179ebd4..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-yield-expr.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of an AssignmentProperty and within a generator function body, it should behave as a YieldExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var iterationResult, x, iter; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ({ x = yield } of [{}]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x, undefined); - -iterationResult = iter.next(3); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x, 3); diff --git a/test/language/statements/for-await-of/dstr-obj-id-init-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-obj-id-init-yield-ident-valid.js deleted file mode 100644 index b367dcca14f5e3f5d4ed809c856b3d85c054ebdb..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-init-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-init-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 3; -var x; - -var counter = 0; - -async function fn() { - for await ({ x = yield } of [{}]) { - assert.sameValue(x, 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-id-put-unresolvable-no-strict.js b/test/language/statements/for-await-of/dstr-obj-id-put-unresolvable-no-strict.js deleted file mode 100644 index d385aa8367c6e7a9e1398881cba5204a56dea35c..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-put-unresolvable-no-strict.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-put-unresolvable-no-strict.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -{ - -var counter = 0; - -async function fn() { - for await ({ unresolvable } of [{}]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -assert.sameValue(unresolvable, undefined); diff --git a/test/language/statements/for-await-of/dstr-obj-id-simple-no-strict.js b/test/language/statements/for-await-of/dstr-obj-id-simple-no-strict.js deleted file mode 100644 index 8f0f992cfaa1b066bcfe11c5472f1db5d1a6941a..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-id-simple-no-strict.js +++ /dev/null @@ -1,43 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-id-simple-no-strict.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var eval, arguments; - -var counter = 0; - -async function fn() { - for await ({ eval, arguments } of [{ eval: 1, arguments: 2 }]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -assert.sameValue(eval, 1); -assert.sameValue(arguments, 2); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-missing.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-missing.js deleted file mode 100644 index 6a87653fc709cd71cb0980e6dce673bfb3cd0bbc..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-missing.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-assignment-missing.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ y: x = 1 } of [{}]) { - assert.sameValue(x, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-null.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-null.js deleted file mode 100644 index c67bac5676f701d7f29946a2139c3cab6bfc9277..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-null.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-assignment-null.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ y: x = 1 } of [{ y: null }]) { - assert.sameValue(x, null); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-truthy.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-truthy.js deleted file mode 100644 index 66c39eb535d3242d7b447c7e420d8a41fcacefa1..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-truthy.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-assignment-truthy.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ y: x = 1 } of [{ y: 2 }]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-undef.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-undef.js deleted file mode 100644 index 0042c030a80ead6345f0c69618b3d12dcdf927d7..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-assignment-undef.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-assignment-undef.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ y: x = 1 } of [{ y: undefined }]) { - assert.sameValue(x, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-evaluation.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-evaluation.js deleted file mode 100644 index 1d70028902346c538b8c58217dece0bb530373d0..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-evaluation.js +++ /dev/null @@ -1,45 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-evaluation.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The Initializer should only be evaluated if v is undefined. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var flag1 = false; -var flag2 = false; -var x, y; - -var counter = 0; - -async function fn() { - for await ({ x: x = flag1 = true, y: y = flag2 = true } of [{ y: 1 }]) { - assert.sameValue(x, true, 'value of `x`'); - assert.sameValue(flag1, true, 'value of `flag1`'); - assert.sameValue(y, 1, 'value of `y`'); - assert.sameValue(flag2, false, 'value of `flag2`'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-arrow.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-arrow.js deleted file mode 100644 index ad7a8b454520a7818316cc17c789496fc7145d93..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-arrow.js +++ /dev/null @@ -1,54 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-fn-name-arrow.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (ArrowFunction) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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)). - ----*/ -var arrow; - -var counter = 0; - -async function fn() { - for await ({ x: arrow = () => {} } of [{}]) { - assert.sameValue(arrow.name, 'arrow'); - verifyNotEnumerable(arrow, 'name'); - verifyNotWritable(arrow, 'name'); - verifyConfigurable(arrow, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-class.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-class.js deleted file mode 100644 index d37d7ec7ce996b9b4ad5752bf04817231cd9f417..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-class.js +++ /dev/null @@ -1,57 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-fn-name-class.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (ClassExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [class, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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)). - ----*/ -var xCls, cls, xCls2; - -var counter = 0; - -async function fn() { - for await ({ x: xCls = class x {}, x: cls = class {}, x: xCls2 = class { static name() {} } } of [{}]) { - assert.notSameValue(xCls.name, 'xCls'); - assert.notSameValue(xCls2.name, 'xCls2'); - - assert.sameValue(cls.name, 'cls'); - verifyNotEnumerable(cls, 'name'); - verifyNotWritable(cls, 'name'); - verifyConfigurable(cls, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-cover.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-cover.js deleted file mode 100644 index 5b3e3105f54f443a5d5f743f605bf57ed3772323..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-cover.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-fn-name-cover.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (CoverParenthesizedExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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)). - ----*/ -var xCover, cover; - -var counter = 0; - -async function fn() { - for await ({ x: xCover = (0, function() {}), x: cover = (function() {}) } of [{}]) { - assert.notSameValue(xCover.name, 'xCover'); - - assert.sameValue(cover.name, 'cover'); - verifyNotEnumerable(cover, 'name'); - verifyNotWritable(cover, 'name'); - verifyConfigurable(cover, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-fn.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-fn.js deleted file mode 100644 index 933a1146d55b29fcfca6bed52872e06057bbb7ef..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-fn.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-fn-name-fn.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (FunctionExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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)). - ----*/ -var xFn, fn; - -var counter = 0; - -async function fn() { - for await ({ x: xFn = function x() {}, x: fn = function() {} } of [{}]) { - assert.notSameValue(xFn.name, 'xFn'); - - assert.sameValue(fn.name, 'fn'); - verifyNotEnumerable(fn, 'name'); - verifyNotWritable(fn, 'name'); - verifyConfigurable(fn, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-gen.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-gen.js deleted file mode 100644 index e9ad13e0728f29906c9ec37061be5a2b6242a105..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-fn-name-gen.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-fn-name-gen.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Assignment of function `name` attribute (GeneratorExpression) (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] - - 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)). - ----*/ -var xGen, gen; - -var counter = 0; - -async function fn() { - for await ({ x: xGen = function* x() {}, x: gen = function*() {} } of [{}]) { - assert.notSameValue(xGen.name, 'xGen'); - - assert.sameValue(gen.name, 'gen'); - verifyNotEnumerable(gen, 'name'); - verifyNotWritable(gen, 'name'); - verifyConfigurable(gen, 'name'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-in.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-in.js deleted file mode 100644 index 119402efa102ebcd8363f011d12e3bab6b269ea0..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-in.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-in.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The Initializer in an AssignmentElement may be an `in` expression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var prop; - -var counter = 0; - -async function fn() { - for await ({ x: prop = 'x' in {} } of [{}]) { - assert.sameValue(prop, false); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-yield-expr.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-yield-expr.js deleted file mode 100644 index 614793f4687cf6b7cef3e506ef764f07a57e7916..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-yield-expr.js +++ /dev/null @@ -1,55 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the Initializer of an AssignmentElement and within a generator function body, it should behave as a YieldExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var iterationResult, iter, x; -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ({ x: x = yield } of [{}]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x, undefined); - -iterationResult = iter.next(86); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x, 86); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-init-yield-ident-valid.js deleted file mode 100644 index 7b559b44b222dc60e405869d361be85d0a646211..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-init-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-init-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 4; -var x; - -var counter = 0; - -async function fn() { - for await ({ x: x = yield } of [{}]) { - assert.sameValue(x, 4); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-target-yield-expr.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-target-yield-expr.js deleted file mode 100644 index c281b74ed61ddc86bd897505a40828ca5a7faff2..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-target-yield-expr.js +++ /dev/null @@ -1,57 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-target-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When a `yield` token appears within the DestructuringAssignmentTarget of an AssignmentElement and within a generator function body, it should behave as a YieldExpression. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = {}; -var iterationResult, iter; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ({ x: x[yield] } of [{ x: 23 }]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x.prop, undefined); - -iterationResult = iter.next('prop'); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x.prop, 23); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-elem-target-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-obj-prop-elem-target-yield-ident-valid.js deleted file mode 100644 index 5670e4b7da5aa14cfda074d218f4148237d6bdc8..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-elem-target-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-elem-target-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 'prop'; -var x = {}; - -var counter = 0; - -async function fn() { - for await ({ x: x[yield] } of [{ x: 23 }]) { - assert.sameValue(x.prop, 23); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-first.js b/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-first.js deleted file mode 100644 index 75fd08237797f4cc21ae38fbb115fc77e727458e..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-first.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-identifier-resolution-first.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (first of many). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -var y; - -var counter = 0; - -async function fn() { - for await ({ a: x, y } of [{ a: 3 }]) { - assert.sameValue(x, 3); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-last.js b/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-last.js deleted file mode 100644 index 31e0e54cccf916e684c0d2bc50902e2089dc5a97..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-last.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-identifier-resolution-last.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (last of many). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -var w; - -var counter = 0; - -async function fn() { - for await ({ w, a: x } of [{ a: 4 }]) { - assert.sameValue(x, 4); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-lone.js b/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-lone.js deleted file mode 100644 index 5a5b775121524591d4f0a841484d8fdb89e48266..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-lone.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-identifier-resolution-lone.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (lone element). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; - -var counter = 0; - -async function fn() { - for await ({ a: x } of [{ a: 1 }]) { - assert.sameValue(x, 1); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-middle.js b/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-middle.js deleted file mode 100644 index 827c0081f2579e10843934917b7d45ab20c2fc2a..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-middle.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-identifier-resolution-middle.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (within many). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; -var w, y; - -var counter = 0; - -async function fn() { - for await ({ w, a: x, y } of [{ a: 5 }]) { - assert.sameValue(x, 5); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-trlng.js b/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-trlng.js deleted file mode 100644 index 34c9ed03a1c81e27a0eb98b198744bb7e53d0593..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-identifier-resolution-trlng.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-identifier-resolution-trlng.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Evaluation of DestructuringAssignmentTarget (lone element with trailing comma). (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = null; - -var counter = 0; - -async function fn() { - for await ({ a: x, } of [{ a: 2 }]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-name-evaluation.js b/test/language/statements/for-await-of/dstr-obj-prop-name-evaluation.js deleted file mode 100644 index 2ddb1000eb72a0b0af3af04f252e28fd6f9df696..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-name-evaluation.js +++ /dev/null @@ -1,42 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-name-evaluation.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: PropertyName of an AssignmentProperty may be a ComputedPropertyName. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x, y, xy; - -var counter = 0; - -async function fn() { - for await ({ ['x' + 'y']: x } of [{ x: 1, xy: 23, y: 2 }]) { - assert.sameValue(x, 23); - assert.sameValue(y, undefined); - assert.sameValue(xy, undefined); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-nested-array-yield-expr.js b/test/language/statements/for-await-of/dstr-obj-prop-nested-array-yield-expr.js deleted file mode 100644 index 497cc6c313a4c23a1838d0c0d5f18a43ce28d938..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-nested-array-yield-expr.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-nested-array-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var iterationResult, iter, x; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ({ x: [x = yield] } of [{ x: [] }]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x, undefined); - -iterationResult = iter.next(24601); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x, 24601); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-nested-array-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-obj-prop-nested-array-yield-ident-valid.js deleted file mode 100644 index fb7d3f4132ad9dd4d637534f8e86e835110c9889..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-nested-array-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-nested-array-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 22; -var x; - -var counter = 0; - -async function fn() { - for await ({ x: [x = yield] } of [{ x: [] }]) { - assert.sameValue(x, 22); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-nested-array.js b/test/language/statements/for-await-of/dstr-obj-prop-nested-array.js deleted file mode 100644 index f1a26cb1a5bce5ac2a25a0d1a9c87bd26519b60b..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-nested-array.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-nested-array.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an array literal, it should be parsed parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var y; - -var counter = 0; - -async function fn() { - for await ({ x: [y] } of [{ x: [321] }]) { - assert.sameValue(y, 321); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-nested-obj-yield-expr.js b/test/language/statements/for-await-of/dstr-obj-prop-nested-obj-yield-expr.js deleted file mode 100644 index 9219d743c5896538953c547dfd91c37e6463e8f6..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-nested-obj-yield-expr.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-nested-obj-yield-expr.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [generators, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var iterationResult, iter, x = undefined; - -iter = (function*() { - -var counter = 0; - -async function fn() { - for await ({ x: { x = yield } } of [{ x: {} }]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -}()); - -iterationResult = iter.next(); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, false); -assert.sameValue(x, undefined); - -iterationResult = iter.next(4); - -assert.sameValue(iterationResult.value, undefined); -assert.sameValue(iterationResult.done, true); -assert.sameValue(x, 4); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-nested-obj-yield-ident-valid.js b/test/language/statements/for-await-of/dstr-obj-prop-nested-obj-yield-ident-valid.js deleted file mode 100644 index f7e0f638739623c71a5b548e9869cbcb6e6b413d..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-nested-obj-yield-ident-valid.js +++ /dev/null @@ -1,41 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-nested-obj-yield-ident-valid.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var yield = 2; -var result, x; - -var counter = 0; - -async function fn() { - for await ({ x: { x = yield } } of [{ x: {} }]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-nested-obj.js b/test/language/statements/for-await-of/dstr-obj-prop-nested-obj.js deleted file mode 100644 index 55e6e14b4347bf954b1470658efc2c26f7c4147f..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-nested-obj.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-nested-obj.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an object literal, it should be parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var result, y; - -var counter = 0; - -async function fn() { - for await ({ x: { y } } of [{ x: { y: 2 } }]) { - assert.sameValue(y, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-put-order.js b/test/language/statements/for-await-of/dstr-obj-prop-put-order.js deleted file mode 100644 index 0a48ac6b61b83543c35475087bddf5a5c7fff3a8..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-put-order.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-put-order.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The AssignmentElements in an AssignmentElementList are evaluated in left- to-right order. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; - -var counter = 0; - -async function fn() { - for await ({ z: x, a: x } of [{ a: 2, z: 1 }]) { - assert.sameValue(x, 2); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-put-prop-ref-no-get.js b/test/language/statements/for-await-of/dstr-obj-prop-put-prop-ref-no-get.js deleted file mode 100644 index 04b04ad0286572dac1477ca7be98c8b228f917fa..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-put-prop-ref-no-get.js +++ /dev/null @@ -1,48 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-put-prop-ref-no-get.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: If the DestructuringAssignmentTarget of an AssignmentElement is a PropertyReference, it should not be evaluated. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var setValue; -var x = { - get y() { - $ERROR('The property should not be accessed.'); - }, - set y(val) { - setValue = val; - } -}; - -var counter = 0; - -async function fn() { - for await ({ a: x.y } of [{ a: 23 }]) { - assert.sameValue(setValue, 23); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-put-prop-ref.js b/test/language/statements/for-await-of/dstr-obj-prop-put-prop-ref.js deleted file mode 100644 index 730e40577bcb74ae3ed59b4cacf511635c6ee730..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-put-prop-ref.js +++ /dev/null @@ -1,40 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-put-prop-ref.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: The DestructuringAssignmentTarget of an AssignmentElement may be a PropertyReference. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x = {}; - -var counter = 0; - -async function fn() { - for await ({ xy: x.y } of [{ xy: 4 }]) { - assert.sameValue(x.y, 4); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-prop-put-unresolvable-no-strict.js b/test/language/statements/for-await-of/dstr-obj-prop-put-unresolvable-no-strict.js deleted file mode 100644 index d374794b4b01ba2de9cc2b19ffd7cceccdc68b7b..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-prop-put-unresolvable-no-strict.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-prop-put-unresolvable-no-strict.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -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. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [destructuring-binding, async-iteration] -flags: [generated, noStrict, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -{ - -var counter = 0; - -async function fn() { - for await ({ x: unresolvable } of [{}]) { - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); - -} - -assert.sameValue(unresolvable, undefined); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-descriptors.js b/test/language/statements/for-await-of/dstr-obj-rest-descriptors.js deleted file mode 100644 index 5dcfe88c613c1a30dbb93efae761954b1d028c3a..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-descriptors.js +++ /dev/null @@ -1,54 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-descriptors.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Object created from rest deconstruction doesn't copy source object property descriptors. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var rest; -var obj = {}; -Object.defineProperty(obj, "a", { value: 3, configurable: false, enumerable: true }); -Object.defineProperty(obj, "b", { value: 4, writable: false, enumerable: true }); - -var counter = 0; - -async function fn() { - for await ({...rest} of [obj]) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); - - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-empty-obj.js b/test/language/statements/for-await-of/dstr-obj-rest-empty-obj.js deleted file mode 100644 index fb8351c3b9f10e7612abc1d4040108ec04a0f072..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-empty-obj.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-empty-obj.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: RestBindingInitialization creates a new object even if lhs is an empty object (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var rest; - - -var counter = 0; - -async function fn() { - for await ({...rest} of [{}]) { - assert.notSameValue(rest, undefined); - assert.notSameValue(rest, null); - assert.sameValue(typeof rest, "object"); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-getter.js b/test/language/statements/for-await-of/dstr-obj-rest-getter.js deleted file mode 100644 index 6c20d66a606a8a20e35bd606f3c19f2dbaa9d846..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-getter.js +++ /dev/null @@ -1,48 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-getter.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Getter is called when obj is being deconstructed to a rest Object (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var x; -var count = 0; - -var counter = 0; - -async function fn() { - for await ({...x} of [{ get v() { count++; return 2; } }]) { - assert.sameValue(x.v, 2); - assert.sameValue(count, 1); - - verifyEnumerable(x, "v"); - verifyWritable(x, "v"); - verifyConfigurable(x, "v"); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-nested-obj-nested-rest.js b/test/language/statements/for-await-of/dstr-obj-rest-nested-obj-nested-rest.js deleted file mode 100644 index eb5fbd358a4ffe33c6ed24c17828ebc7ca387a24..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-nested-obj-nested-rest.js +++ /dev/null @@ -1,55 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-nested-obj-nested-rest.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an object literal, it should be parsed parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment and object rest desconstruction is allowed in that case. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var a, b, c, rest; - -var counter = 0; - -async function fn() { - for await ({a, b, ...{c, ...rest}} of [{a: 1, b: 2, c: 3, d: 4, e: 5}]) { - assert.sameValue(a, 1); - assert.sameValue(b, 2); - assert.sameValue(c, 3); - - assert.sameValue(rest.d, 4); - assert.sameValue(rest.e, 5); - - verifyEnumerable(rest, "d"); - verifyWritable(rest, "d"); - verifyConfigurable(rest, "d"); - - verifyEnumerable(rest, "e"); - verifyWritable(rest, "e"); - verifyConfigurable(rest, "e"); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-nested-obj.js b/test/language/statements/for-await-of/dstr-obj-rest-nested-obj.js deleted file mode 100644 index 54b86c9406abd4e783776f53cacdf51421a7e5ba..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-nested-obj.js +++ /dev/null @@ -1,45 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-nested-obj.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an object literal, it should be parsed parsed as a DestructuringAssignmentPattern and evaluated as a destructuring assignment. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var a, b, c, d, e; - -var counter = 0; - -async function fn() { - for await ({a, b, ...{c, e}} of [{a: 1, b: 2, c: 3, d: 4, e: 5}]) { - assert.sameValue(a, 1); - assert.sameValue(b, 2); - assert.sameValue(c, 3); - assert.sameValue(e, 5); - assert.sameValue(d, undefined); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-number.js b/test/language/statements/for-await-of/dstr-obj-rest-number.js deleted file mode 100644 index fcc93e86bd659fa2a1996b3694b0e0ea8ea513c1..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-number.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-number.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: RestBindingInitialization creates a new object even if lhs is a Number (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var rest; - - -var counter = 0; - -async function fn() { - for await ({...rest} of [51]) { - assert.notSameValue(rest, undefined); - assert.notSameValue(rest, null); - assert(rest instanceof Object); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-obj-own-property.js b/test/language/statements/for-await-of/dstr-obj-rest-obj-own-property.js deleted file mode 100644 index d6e9b175551c78f529a6330df823dee7caef37ec..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-obj-own-property.js +++ /dev/null @@ -1,46 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-obj-own-property.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Rest object contains just source object's own properties (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var o = Object.create({ x: 1, y: 2 }); -o.z = 3; - -var x, y, z; - -var counter = 0; - -async function fn() { - for await ({ x, ...{y , z} } of [o]) { - assert.sameValue(x, 1); - assert.sameValue(y, undefined); - assert.sameValue(z, 3); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-same-name.js b/test/language/statements/for-await-of/dstr-obj-rest-same-name.js deleted file mode 100644 index 63c531898d70e4e5f8c27966c6209bfdfa1ed505..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-same-name.js +++ /dev/null @@ -1,54 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-same-name.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Proper setting in the values for rest name equal to a property name. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var o = { - x: 42, - y: 39, - z: 'cheeseburger' -}; - -var x, y, z; - -var counter = 0; - -async function fn() { - for await ({ x, ...z } of [o]) { - assert.sameValue(x, 42); - assert.sameValue(y, undefined); - assert.sameValue(z.y, 39); - assert.sameValue(z.z, 'cheeseburger'); - - var keys = Object.keys(z); - assert.sameValue(keys.length, 2); - assert.sameValue(keys[0], 'y'); - assert.sameValue(keys[1], 'z'); - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-skip-non-enumerable.js b/test/language/statements/for-await-of/dstr-obj-rest-skip-non-enumerable.js deleted file mode 100644 index 70f108e0d06cea8066d70b0ef0fc3ccd9d4f5826..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-skip-non-enumerable.js +++ /dev/null @@ -1,54 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-skip-non-enumerable.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Rest object doesn't contain non-enumerable properties (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var rest; -var obj = {a: 3, b: 4}; -Object.defineProperty(obj, "x", { value: 4, enumerable: false }); - -var counter = 0; - -async function fn() { - for await ({...rest} of [obj]) { - assert.sameValue(rest.a, 3); - assert.sameValue(rest.b, 4); - assert.sameValue(Object.getOwnPropertyDescriptor(rest, "x"), undefined); - - verifyEnumerable(rest, "a"); - verifyWritable(rest, "a"); - verifyConfigurable(rest, "a"); - - verifyEnumerable(rest, "b"); - verifyWritable(rest, "b"); - verifyConfigurable(rest, "b"); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-str-val.js b/test/language/statements/for-await-of/dstr-obj-rest-str-val.js deleted file mode 100644 index be48d9b23946df64167d3c83da04af1ef5907b38..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-str-val.js +++ /dev/null @@ -1,45 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-str-val.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: RestBindingInitialization creats an object with indexes as property name (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var rest; - - -var counter = 0; - -async function fn() { - for await ({...rest} of ["foo"]) { - assert.sameValue(rest["0"], "f"); - assert.sameValue(rest["1"], "o"); - assert.sameValue(rest["2"], "o"); - assert(rest instanceof Object); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-symbol-val.js b/test/language/statements/for-await-of/dstr-obj-rest-symbol-val.js deleted file mode 100644 index 77b0e7fdf7547391a0fab8d6bd70602b78ded6c4..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-symbol-val.js +++ /dev/null @@ -1,44 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-symbol-val.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: RestBindingInitialization creates a new object if lhs is a Symbol (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var rest; - - -var counter = 0; - -async function fn() { - for await ({...rest} of [Symbol("foo")]) { - assert.notSameValue(rest, undefined); - assert.notSameValue(rest, null); - assert(rest instanceof Object); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-to-property-with-setter.js b/test/language/statements/for-await-of/dstr-obj-rest-to-property-with-setter.js deleted file mode 100644 index 9c28cb58050f924c225f8fed6aa3f952bc0f534c..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-to-property-with-setter.js +++ /dev/null @@ -1,51 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-to-property-with-setter.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an object property setter, its value should be binded as rest object. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var settedValue; -var executedGetter = false; -var src = { - get y() { executedGetter = true; }, - set y(v) { - settedValue = v; - } -} -src.y = undefined; - -var counter = 0; - -async function fn() { - for await ({...src.y} of [{ x: 1, y: 2}]) { - assert.sameValue(settedValue.x, 1); - assert.sameValue(settedValue.y, 2); - assert(!executedGetter, "The property should not be accessed"); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-to-property.js b/test/language/statements/for-await-of/dstr-obj-rest-to-property.js deleted file mode 100644 index 3f8a1e9d87ebfa3c2c501b6bc2f0293dbc1fc192..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-to-property.js +++ /dev/null @@ -1,47 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-to-property.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: When DestructuringAssignmentTarget is an object property, its value should be binded as rest object. (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var src = {}; - -var counter = 0; - -async function fn() { - for await ({...src.y} of [{ x: 1, y: 2}]) { - assert.sameValue(src.y.x, 1); - assert.sameValue(src.y.y, 2); - - verifyEnumerable(src, "y"); - verifyWritable(src, "y"); - verifyConfigurable(src, "y"); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE); diff --git a/test/language/statements/for-await-of/dstr-obj-rest-valid-object.js b/test/language/statements/for-await-of/dstr-obj-rest-valid-object.js deleted file mode 100644 index 5462f7fa22b64ba0e7be7923a20346c10cfbb1f3..0000000000000000000000000000000000000000 --- a/test/language/statements/for-await-of/dstr-obj-rest-valid-object.js +++ /dev/null @@ -1,54 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/dstr-assignment/obj-rest-valid-object.case -// - src/dstr-assignment/default/for-await-of.template -/*--- -description: Rest object contains just unextracted data (for-await-of statement) -esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation -features: [object-rest, destructuring-binding, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - IterationStatement : - for await ( LeftHandSideExpression of AssignmentExpression ) Statement - - 1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« », - AssignmentExpression, iterate). - 2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement, - keyResult, assignment, labelSet). - - 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation - - [...] - 5. If destructuring is true and if lhsKind is assignment, then - a. Assert: lhs is a LeftHandSideExpression. - b. Let assignmentPattern be the parse of the source text corresponding to - lhs using AssignmentPattern as the goal symbol. - [...] ----*/ -var rest, a, b; - - -var counter = 0; - -async function fn() { - for await ({a, b, ...rest} of [{x: 1, y: 2, a: 5, b: 3}]) { - assert.sameValue(rest.x, 1); - assert.sameValue(rest.y, 2); - assert.sameValue(rest.a, undefined); - assert.sameValue(rest.b, undefined); - - verifyEnumerable(rest, "x"); - verifyWritable(rest, "x"); - verifyConfigurable(rest, "x"); - - verifyEnumerable(rest, "y"); - verifyWritable(rest, "y"); - verifyConfigurable(rest, "y"); - - counter += 1; - } -} - -fn() - .then(() => assert.sameValue(counter, 1, 'iteration occurred as expected'), $DONE) - .then($DONE, $DONE);