From 3d7ae072954e518e897e5feae4f2cdba97f713f0 Mon Sep 17 00:00:00 2001
From: Leo Balter <leonardo.balter@gmail.com>
Date: Mon, 27 Mar 2017 11:55:01 -0400
Subject: [PATCH] Generate tests

---
 .../async-generator/named-yield-identifier-non-strict.js       | 2 ++
 .../named-yield-identifier-spread-non-strict.js                | 3 ++-
 .../async-generator/named-yield-identifier-spread-strict.js    | 3 ++-
 .../async-generator/named-yield-identifier-strict.js           | 2 ++
 .../async-generator/named-yield-spread-arr-multiple.js         | 2 ++
 .../async-generator/named-yield-spread-arr-single.js           | 2 ++
 .../expressions/async-generator/named-yield-spread-obj.js      | 3 ++-
 .../expressions/async-generator/yield-identifier-non-strict.js | 2 ++
 .../async-generator/yield-identifier-spread-non-strict.js      | 3 ++-
 .../async-generator/yield-identifier-spread-strict.js          | 3 ++-
 .../expressions/async-generator/yield-identifier-strict.js     | 2 ++
 .../expressions/async-generator/yield-spread-arr-multiple.js   | 2 ++
 .../expressions/async-generator/yield-spread-arr-single.js     | 2 ++
 test/language/expressions/async-generator/yield-spread-obj.js  | 3 ++-
 .../async-gen-method-static-yield-identifier-spread-strict.js  | 3 ++-
 .../class/async-gen-method-static-yield-identifier-strict.js   | 2 ++
 .../class/async-gen-method-static-yield-spread-arr-multiple.js | 2 ++
 .../class/async-gen-method-static-yield-spread-arr-single.js   | 2 ++
 .../class/async-gen-method-static-yield-spread-obj.js          | 3 ++-
 .../class/async-gen-method-yield-identifier-spread-strict.js   | 3 ++-
 .../class/async-gen-method-yield-identifier-strict.js          | 2 ++
 .../class/async-gen-method-yield-spread-arr-multiple.js        | 2 ++
 .../class/async-gen-method-yield-spread-arr-single.js          | 2 ++
 .../expressions/class/async-gen-method-yield-spread-obj.js     | 3 ++-
 .../method-definition/async-gen-yield-identifier-non-strict.js | 2 ++
 .../async-gen-yield-identifier-spread-non-strict.js            | 3 ++-
 .../async-gen-yield-identifier-spread-strict.js                | 3 ++-
 .../method-definition/async-gen-yield-identifier-strict.js     | 2 ++
 .../method-definition/async-gen-yield-spread-arr-multiple.js   | 2 ++
 .../method-definition/async-gen-yield-spread-arr-single.js     | 2 ++
 .../object/method-definition/async-gen-yield-spread-obj.js     | 3 ++-
 .../statements/async-generator/yield-identifier-non-strict.js  | 2 ++
 .../async-generator/yield-identifier-spread-non-strict.js      | 3 ++-
 .../async-generator/yield-identifier-spread-strict.js          | 3 ++-
 .../statements/async-generator/yield-identifier-strict.js      | 2 ++
 .../statements/async-generator/yield-spread-arr-multiple.js    | 2 ++
 .../statements/async-generator/yield-spread-arr-single.js      | 2 ++
 test/language/statements/async-generator/yield-spread-obj.js   | 3 ++-
 .../async-gen-method-static-yield-identifier-spread-strict.js  | 3 ++-
 .../class/async-gen-method-static-yield-identifier-strict.js   | 2 ++
 .../class/async-gen-method-static-yield-spread-arr-multiple.js | 2 ++
 .../class/async-gen-method-static-yield-spread-arr-single.js   | 2 ++
 .../class/async-gen-method-static-yield-spread-obj.js          | 3 ++-
 .../class/async-gen-method-yield-identifier-spread-strict.js   | 3 ++-
 .../class/async-gen-method-yield-identifier-strict.js          | 2 ++
 .../class/async-gen-method-yield-spread-arr-multiple.js        | 2 ++
 .../class/async-gen-method-yield-spread-arr-single.js          | 2 ++
 .../statements/class/async-gen-method-yield-spread-obj.js      | 3 ++-
 48 files changed, 96 insertions(+), 20 deletions(-)

diff --git a/test/language/expressions/async-generator/named-yield-identifier-non-strict.js b/test/language/expressions/async-generator/named-yield-identifier-non-strict.js
index 5f78d6de9f..f40bbe0e54 100644
--- a/test/language/expressions/async-generator/named-yield-identifier-non-strict.js
+++ b/test/language/expressions/async-generator/named-yield-identifier-non-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: Use of yield as a valid identifier in a function body inside a generator body in non strict mode (Async generator named expression - valid for non-strict only cases)
 esid: prod-AsyncGeneratorExpression
+features: [async-iteration]
 flags: [generated, noStrict, async]
 info: |
     Async Generator Function Definitions
@@ -11,6 +12,7 @@ info: |
     AsyncGeneratorExpression :
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
+
 ---*/
 
 
diff --git a/test/language/expressions/async-generator/named-yield-identifier-spread-non-strict.js b/test/language/expressions/async-generator/named-yield-identifier-spread-non-strict.js
index d65911bb3c..6c7ae2960f 100644
--- a/test/language/expressions/async-generator/named-yield-identifier-spread-non-strict.js
+++ b/test/language/expressions/async-generator/named-yield-identifier-spread-non-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: Mixed use of object spread and yield as a valid identifier in a function body inside a generator body in non strict mode (Async generator named expression - valid for non-strict only cases)
 esid: prod-AsyncGeneratorExpression
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, noStrict, async]
 info: |
     Async Generator Function Definitions
@@ -13,6 +13,7 @@ info: |
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/async-generator/named-yield-identifier-spread-strict.js b/test/language/expressions/async-generator/named-yield-identifier-spread-strict.js
index f022c50e3f..a368ba6c3e 100644
--- a/test/language/expressions/async-generator/named-yield-identifier-spread-strict.js
+++ b/test/language/expressions/async-generator/named-yield-identifier-spread-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: It's an early error if the AssignmentExpression is a function body with yield as an identifier in strict mode. (Named async generator expression)
 esid: prod-AsyncGeneratorExpression
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -16,6 +16,7 @@ info: |
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/async-generator/named-yield-identifier-strict.js b/test/language/expressions/async-generator/named-yield-identifier-strict.js
index a49291637b..6c2b9d59e8 100644
--- a/test/language/expressions/async-generator/named-yield-identifier-strict.js
+++ b/test/language/expressions/async-generator/named-yield-identifier-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: It's an early error if the generator body has another function body with yield as an identifier in strict mode. (Named async generator expression)
 esid: prod-AsyncGeneratorExpression
+features: [async-iteration]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     AsyncGeneratorExpression :
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
+
 ---*/
 
 
diff --git a/test/language/expressions/async-generator/named-yield-spread-arr-multiple.js b/test/language/expressions/async-generator/named-yield-spread-arr-multiple.js
index 89900d9c06..56c3a3cdf7 100644
--- a/test/language/expressions/async-generator/named-yield-spread-arr-multiple.js
+++ b/test/language/expressions/async-generator/named-yield-spread-arr-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Named async generator expression)
 esid: prod-AsyncGeneratorExpression
+features: [async-iteration]
 flags: [generated, async]
 includes: [compareArray.js]
 info: |
@@ -13,6 +14,7 @@ info: |
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/async-generator/named-yield-spread-arr-single.js b/test/language/expressions/async-generator/named-yield-spread-arr-single.js
index 95d0853959..a7c1e8634a 100644
--- a/test/language/expressions/async-generator/named-yield-spread-arr-single.js
+++ b/test/language/expressions/async-generator/named-yield-spread-arr-single.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Named async generator expression)
 esid: prod-AsyncGeneratorExpression
+features: [async-iteration]
 flags: [generated, async]
 info: |
     Async Generator Function Definitions
@@ -12,6 +13,7 @@ info: |
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/async-generator/named-yield-spread-obj.js b/test/language/expressions/async-generator/named-yield-spread-obj.js
index a4baf2566c..a673d06bba 100644
--- a/test/language/expressions/async-generator/named-yield-spread-obj.js
+++ b/test/language/expressions/async-generator/named-yield-spread-obj.js
@@ -4,7 +4,7 @@
 /*---
 description: Use yield value in a object spread position (Named async generator expression)
 esid: prod-AsyncGeneratorExpression
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, async]
 includes: [compareArray.js]
 info: |
@@ -14,6 +14,7 @@ info: |
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/async-generator/yield-identifier-non-strict.js b/test/language/expressions/async-generator/yield-identifier-non-strict.js
index 8708e371d9..347e5fcd0a 100644
--- a/test/language/expressions/async-generator/yield-identifier-non-strict.js
+++ b/test/language/expressions/async-generator/yield-identifier-non-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: Use of yield as a valid identifier in a function body inside a generator body in non strict mode (Async generator expression - valid for non-strict only cases)
 esid: prod-AsyncGeneratorExpression
+features: [async-iteration]
 flags: [generated, noStrict, async]
 info: |
     Async Generator Function Definitions
@@ -11,6 +12,7 @@ info: |
     AsyncGeneratorExpression :
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
+
 ---*/
 
 
diff --git a/test/language/expressions/async-generator/yield-identifier-spread-non-strict.js b/test/language/expressions/async-generator/yield-identifier-spread-non-strict.js
index 8a60681c23..90bcbe2ed0 100644
--- a/test/language/expressions/async-generator/yield-identifier-spread-non-strict.js
+++ b/test/language/expressions/async-generator/yield-identifier-spread-non-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: Mixed use of object spread and yield as a valid identifier in a function body inside a generator body in non strict mode (Async generator expression - valid for non-strict only cases)
 esid: prod-AsyncGeneratorExpression
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, noStrict, async]
 info: |
     Async Generator Function Definitions
@@ -13,6 +13,7 @@ info: |
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/async-generator/yield-identifier-spread-strict.js b/test/language/expressions/async-generator/yield-identifier-spread-strict.js
index 1e332e136e..8c8214d885 100644
--- a/test/language/expressions/async-generator/yield-identifier-spread-strict.js
+++ b/test/language/expressions/async-generator/yield-identifier-spread-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: It's an early error if the AssignmentExpression is a function body with yield as an identifier in strict mode. (Unnamed async generator expression)
 esid: prod-AsyncGeneratorExpression
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -16,6 +16,7 @@ info: |
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/async-generator/yield-identifier-strict.js b/test/language/expressions/async-generator/yield-identifier-strict.js
index 067065bb15..1a32a96d3c 100644
--- a/test/language/expressions/async-generator/yield-identifier-strict.js
+++ b/test/language/expressions/async-generator/yield-identifier-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: It's an early error if the generator body has another function body with yield as an identifier in strict mode. (Unnamed async generator expression)
 esid: prod-AsyncGeneratorExpression
+features: [async-iteration]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     AsyncGeneratorExpression :
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
+
 ---*/
 
 
diff --git a/test/language/expressions/async-generator/yield-spread-arr-multiple.js b/test/language/expressions/async-generator/yield-spread-arr-multiple.js
index 4038349475..fff1129daf 100644
--- a/test/language/expressions/async-generator/yield-spread-arr-multiple.js
+++ b/test/language/expressions/async-generator/yield-spread-arr-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Unnamed async generator expression)
 esid: prod-AsyncGeneratorExpression
+features: [async-iteration]
 flags: [generated, async]
 includes: [compareArray.js]
 info: |
@@ -13,6 +14,7 @@ info: |
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/async-generator/yield-spread-arr-single.js b/test/language/expressions/async-generator/yield-spread-arr-single.js
index 421f0004cf..1cce6d8d20 100644
--- a/test/language/expressions/async-generator/yield-spread-arr-single.js
+++ b/test/language/expressions/async-generator/yield-spread-arr-single.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Unnamed async generator expression)
 esid: prod-AsyncGeneratorExpression
+features: [async-iteration]
 flags: [generated, async]
 info: |
     Async Generator Function Definitions
@@ -12,6 +13,7 @@ info: |
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/async-generator/yield-spread-obj.js b/test/language/expressions/async-generator/yield-spread-obj.js
index 8f9b701a54..717158f88d 100644
--- a/test/language/expressions/async-generator/yield-spread-obj.js
+++ b/test/language/expressions/async-generator/yield-spread-obj.js
@@ -4,7 +4,7 @@
 /*---
 description: Use yield value in a object spread position (Unnamed async generator expression)
 esid: prod-AsyncGeneratorExpression
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, async]
 includes: [compareArray.js]
 info: |
@@ -14,6 +14,7 @@ info: |
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/class/async-gen-method-static-yield-identifier-spread-strict.js b/test/language/expressions/class/async-gen-method-static-yield-identifier-spread-strict.js
index 3bd1d2095f..9e8226d81f 100644
--- a/test/language/expressions/class/async-gen-method-static-yield-identifier-spread-strict.js
+++ b/test/language/expressions/class/async-gen-method-static-yield-identifier-spread-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: It's an early error if the AssignmentExpression is a function body with yield as an identifier in strict mode. (Static async generator method as a ClassExpression element)
 esid: prod-AsyncGeneratorMethod
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -21,6 +21,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/class/async-gen-method-static-yield-identifier-strict.js b/test/language/expressions/class/async-gen-method-static-yield-identifier-strict.js
index a0610dabe7..2adf5b764e 100644
--- a/test/language/expressions/class/async-gen-method-static-yield-identifier-strict.js
+++ b/test/language/expressions/class/async-gen-method-static-yield-identifier-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: It's an early error if the generator body has another function body with yield as an identifier in strict mode. (Static async generator method as a ClassExpression element)
 esid: prod-AsyncGeneratorMethod
+features: [async-iteration]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -19,6 +20,7 @@ info: |
 
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
+
 ---*/
 
 
diff --git a/test/language/expressions/class/async-gen-method-static-yield-spread-arr-multiple.js b/test/language/expressions/class/async-gen-method-static-yield-spread-arr-multiple.js
index edbd643d5a..fc3d81a4ea 100644
--- a/test/language/expressions/class/async-gen-method-static-yield-spread-arr-multiple.js
+++ b/test/language/expressions/class/async-gen-method-static-yield-spread-arr-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Static async generator method as a ClassExpression element)
 esid: prod-AsyncGeneratorMethod
+features: [async-iteration]
 flags: [generated, async]
 includes: [compareArray.js]
 info: |
@@ -18,6 +19,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/class/async-gen-method-static-yield-spread-arr-single.js b/test/language/expressions/class/async-gen-method-static-yield-spread-arr-single.js
index 9c0297d6eb..18f8dd1252 100644
--- a/test/language/expressions/class/async-gen-method-static-yield-spread-arr-single.js
+++ b/test/language/expressions/class/async-gen-method-static-yield-spread-arr-single.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Static async generator method as a ClassExpression element)
 esid: prod-AsyncGeneratorMethod
+features: [async-iteration]
 flags: [generated, async]
 info: |
     ClassElement :
@@ -17,6 +18,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/class/async-gen-method-static-yield-spread-obj.js b/test/language/expressions/class/async-gen-method-static-yield-spread-obj.js
index a2a8109fef..9fb44181c0 100644
--- a/test/language/expressions/class/async-gen-method-static-yield-spread-obj.js
+++ b/test/language/expressions/class/async-gen-method-static-yield-spread-obj.js
@@ -4,7 +4,7 @@
 /*---
 description: Use yield value in a object spread position (Static async generator method as a ClassExpression element)
 esid: prod-AsyncGeneratorMethod
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, async]
 includes: [compareArray.js]
 info: |
@@ -19,6 +19,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/class/async-gen-method-yield-identifier-spread-strict.js b/test/language/expressions/class/async-gen-method-yield-identifier-spread-strict.js
index 840350036e..4a163c7215 100644
--- a/test/language/expressions/class/async-gen-method-yield-identifier-spread-strict.js
+++ b/test/language/expressions/class/async-gen-method-yield-identifier-spread-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: It's an early error if the AssignmentExpression is a function body with yield as an identifier in strict mode. (Async generator method as a ClassExpression element)
 esid: prod-AsyncGeneratorMethod
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -21,6 +21,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/class/async-gen-method-yield-identifier-strict.js b/test/language/expressions/class/async-gen-method-yield-identifier-strict.js
index 803e9f9669..45fecde820 100644
--- a/test/language/expressions/class/async-gen-method-yield-identifier-strict.js
+++ b/test/language/expressions/class/async-gen-method-yield-identifier-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: It's an early error if the generator body has another function body with yield as an identifier in strict mode. (Async generator method as a ClassExpression element)
 esid: prod-AsyncGeneratorMethod
+features: [async-iteration]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -19,6 +20,7 @@ info: |
 
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
+
 ---*/
 
 
diff --git a/test/language/expressions/class/async-gen-method-yield-spread-arr-multiple.js b/test/language/expressions/class/async-gen-method-yield-spread-arr-multiple.js
index 00040546b8..a05af12200 100644
--- a/test/language/expressions/class/async-gen-method-yield-spread-arr-multiple.js
+++ b/test/language/expressions/class/async-gen-method-yield-spread-arr-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Async generator method as a ClassExpression element)
 esid: prod-AsyncGeneratorMethod
+features: [async-iteration]
 flags: [generated, async]
 includes: [compareArray.js]
 info: |
@@ -18,6 +19,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/class/async-gen-method-yield-spread-arr-single.js b/test/language/expressions/class/async-gen-method-yield-spread-arr-single.js
index aff92093e9..0e9a722b51 100644
--- a/test/language/expressions/class/async-gen-method-yield-spread-arr-single.js
+++ b/test/language/expressions/class/async-gen-method-yield-spread-arr-single.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Async generator method as a ClassExpression element)
 esid: prod-AsyncGeneratorMethod
+features: [async-iteration]
 flags: [generated, async]
 info: |
     ClassElement :
@@ -17,6 +18,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/class/async-gen-method-yield-spread-obj.js b/test/language/expressions/class/async-gen-method-yield-spread-obj.js
index 54ce456642..08d3385f8b 100644
--- a/test/language/expressions/class/async-gen-method-yield-spread-obj.js
+++ b/test/language/expressions/class/async-gen-method-yield-spread-obj.js
@@ -4,7 +4,7 @@
 /*---
 description: Use yield value in a object spread position (Async generator method as a ClassExpression element)
 esid: prod-AsyncGeneratorMethod
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, async]
 includes: [compareArray.js]
 info: |
@@ -19,6 +19,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/object/method-definition/async-gen-yield-identifier-non-strict.js b/test/language/expressions/object/method-definition/async-gen-yield-identifier-non-strict.js
index f6a94c40f2..f02a132462 100644
--- a/test/language/expressions/object/method-definition/async-gen-yield-identifier-non-strict.js
+++ b/test/language/expressions/object/method-definition/async-gen-yield-identifier-non-strict.js
@@ -4,12 +4,14 @@
 /*---
 description: Use of yield as a valid identifier in a function body inside a generator body in non strict mode (Generator method - valid for non-strict only cases)
 esid: prod-AsyncGeneratorMethod
+features: [async-iteration]
 flags: [generated, noStrict, async]
 info: |
     Async Generator Function Definitions
 
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
+
 ---*/
 
 
diff --git a/test/language/expressions/object/method-definition/async-gen-yield-identifier-spread-non-strict.js b/test/language/expressions/object/method-definition/async-gen-yield-identifier-spread-non-strict.js
index aaef9d3cc9..eeeecd3ef9 100644
--- a/test/language/expressions/object/method-definition/async-gen-yield-identifier-spread-non-strict.js
+++ b/test/language/expressions/object/method-definition/async-gen-yield-identifier-spread-non-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: Mixed use of object spread and yield as a valid identifier in a function body inside a generator body in non strict mode (Generator method - valid for non-strict only cases)
 esid: prod-AsyncGeneratorMethod
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, noStrict, async]
 info: |
     Async Generator Function Definitions
@@ -12,6 +12,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/object/method-definition/async-gen-yield-identifier-spread-strict.js b/test/language/expressions/object/method-definition/async-gen-yield-identifier-spread-strict.js
index cacb1efb64..4ac20d73e7 100644
--- a/test/language/expressions/object/method-definition/async-gen-yield-identifier-spread-strict.js
+++ b/test/language/expressions/object/method-definition/async-gen-yield-identifier-spread-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: It's an early error if the AssignmentExpression is a function body with yield as an identifier in strict mode. (Async generator method)
 esid: prod-AsyncGeneratorMethod
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -15,6 +15,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/object/method-definition/async-gen-yield-identifier-strict.js b/test/language/expressions/object/method-definition/async-gen-yield-identifier-strict.js
index e1360accb8..186de46ca5 100644
--- a/test/language/expressions/object/method-definition/async-gen-yield-identifier-strict.js
+++ b/test/language/expressions/object/method-definition/async-gen-yield-identifier-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: It's an early error if the generator body has another function body with yield as an identifier in strict mode. (Async generator method)
 esid: prod-AsyncGeneratorMethod
+features: [async-iteration]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -13,6 +14,7 @@ info: |
 
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/object/method-definition/async-gen-yield-spread-arr-multiple.js b/test/language/expressions/object/method-definition/async-gen-yield-spread-arr-multiple.js
index bbd66a65c2..984ce0c113 100644
--- a/test/language/expressions/object/method-definition/async-gen-yield-spread-arr-multiple.js
+++ b/test/language/expressions/object/method-definition/async-gen-yield-spread-arr-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Async generator method)
 esid: prod-AsyncGeneratorMethod
+features: [async-iteration]
 flags: [generated, async]
 includes: [compareArray.js]
 info: |
@@ -12,6 +13,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/object/method-definition/async-gen-yield-spread-arr-single.js b/test/language/expressions/object/method-definition/async-gen-yield-spread-arr-single.js
index fb93afba31..937834b862 100644
--- a/test/language/expressions/object/method-definition/async-gen-yield-spread-arr-single.js
+++ b/test/language/expressions/object/method-definition/async-gen-yield-spread-arr-single.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Async generator method)
 esid: prod-AsyncGeneratorMethod
+features: [async-iteration]
 flags: [generated, async]
 info: |
     Async Generator Function Definitions
@@ -11,6 +12,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/object/method-definition/async-gen-yield-spread-obj.js b/test/language/expressions/object/method-definition/async-gen-yield-spread-obj.js
index 76655d4c22..a8de4d6474 100644
--- a/test/language/expressions/object/method-definition/async-gen-yield-spread-obj.js
+++ b/test/language/expressions/object/method-definition/async-gen-yield-spread-obj.js
@@ -4,7 +4,7 @@
 /*---
 description: Use yield value in a object spread position (Async generator method)
 esid: prod-AsyncGeneratorMethod
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, async]
 includes: [compareArray.js]
 info: |
@@ -13,6 +13,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/statements/async-generator/yield-identifier-non-strict.js b/test/language/statements/async-generator/yield-identifier-non-strict.js
index 292b4f00c3..2a145e811c 100644
--- a/test/language/statements/async-generator/yield-identifier-non-strict.js
+++ b/test/language/statements/async-generator/yield-identifier-non-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: Use of yield as a valid identifier in a function body inside a generator body in non strict mode (Async generator function declaration - valid for non-strict only cases)
 esid: prod-AsyncGeneratorDeclaration
+features: [async-iteration]
 flags: [generated, noStrict, async]
 info: |
     Async Generator Function Definitions
@@ -11,6 +12,7 @@ info: |
     AsyncGeneratorDeclaration:
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
+
 ---*/
 
 
diff --git a/test/language/statements/async-generator/yield-identifier-spread-non-strict.js b/test/language/statements/async-generator/yield-identifier-spread-non-strict.js
index dd2759f3f7..8745b43fbd 100644
--- a/test/language/statements/async-generator/yield-identifier-spread-non-strict.js
+++ b/test/language/statements/async-generator/yield-identifier-spread-non-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: Mixed use of object spread and yield as a valid identifier in a function body inside a generator body in non strict mode (Async generator function declaration - valid for non-strict only cases)
 esid: prod-AsyncGeneratorDeclaration
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, noStrict, async]
 info: |
     Async Generator Function Definitions
@@ -13,6 +13,7 @@ info: |
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/statements/async-generator/yield-identifier-spread-strict.js b/test/language/statements/async-generator/yield-identifier-spread-strict.js
index 6b1ec3cac8..70818aae41 100644
--- a/test/language/statements/async-generator/yield-identifier-spread-strict.js
+++ b/test/language/statements/async-generator/yield-identifier-spread-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: It's an early error if the AssignmentExpression is a function body with yield as an identifier in strict mode. (Async generator Function declaration)
 esid: prod-AsyncGeneratorDeclaration
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -16,6 +16,7 @@ info: |
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/statements/async-generator/yield-identifier-strict.js b/test/language/statements/async-generator/yield-identifier-strict.js
index 1ba4d0729e..1d037a488b 100644
--- a/test/language/statements/async-generator/yield-identifier-strict.js
+++ b/test/language/statements/async-generator/yield-identifier-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: It's an early error if the generator body has another function body with yield as an identifier in strict mode. (Async generator Function declaration)
 esid: prod-AsyncGeneratorDeclaration
+features: [async-iteration]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     AsyncGeneratorDeclaration:
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
+
 ---*/
 
 
diff --git a/test/language/statements/async-generator/yield-spread-arr-multiple.js b/test/language/statements/async-generator/yield-spread-arr-multiple.js
index 34f0e3ef50..f8a500feb8 100644
--- a/test/language/statements/async-generator/yield-spread-arr-multiple.js
+++ b/test/language/statements/async-generator/yield-spread-arr-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Async generator Function declaration)
 esid: prod-AsyncGeneratorDeclaration
+features: [async-iteration]
 flags: [generated, async]
 includes: [compareArray.js]
 info: |
@@ -13,6 +14,7 @@ info: |
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/statements/async-generator/yield-spread-arr-single.js b/test/language/statements/async-generator/yield-spread-arr-single.js
index b2a3063395..5c08772921 100644
--- a/test/language/statements/async-generator/yield-spread-arr-single.js
+++ b/test/language/statements/async-generator/yield-spread-arr-single.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Async generator Function declaration)
 esid: prod-AsyncGeneratorDeclaration
+features: [async-iteration]
 flags: [generated, async]
 info: |
     Async Generator Function Definitions
@@ -12,6 +13,7 @@ info: |
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/statements/async-generator/yield-spread-obj.js b/test/language/statements/async-generator/yield-spread-obj.js
index 4ed722ea9a..956b69d8d9 100644
--- a/test/language/statements/async-generator/yield-spread-obj.js
+++ b/test/language/statements/async-generator/yield-spread-obj.js
@@ -4,7 +4,7 @@
 /*---
 description: Use yield value in a object spread position (Async generator Function declaration)
 esid: prod-AsyncGeneratorDeclaration
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, async]
 includes: [compareArray.js]
 info: |
@@ -14,6 +14,7 @@ info: |
       async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) {
         AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/statements/class/async-gen-method-static-yield-identifier-spread-strict.js b/test/language/statements/class/async-gen-method-static-yield-identifier-spread-strict.js
index 58a66025e1..056d16e594 100644
--- a/test/language/statements/class/async-gen-method-static-yield-identifier-spread-strict.js
+++ b/test/language/statements/class/async-gen-method-static-yield-identifier-spread-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: It's an early error if the AssignmentExpression is a function body with yield as an identifier in strict mode. (Static async generator method as a ClassDeclaration element)
 esid: prod-AsyncGeneratorMethod
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -21,6 +21,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/statements/class/async-gen-method-static-yield-identifier-strict.js b/test/language/statements/class/async-gen-method-static-yield-identifier-strict.js
index 9609478ee0..dc4d2876d0 100644
--- a/test/language/statements/class/async-gen-method-static-yield-identifier-strict.js
+++ b/test/language/statements/class/async-gen-method-static-yield-identifier-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: It's an early error if the generator body has another function body with yield as an identifier in strict mode. (Static async generator method as a ClassDeclaration element)
 esid: prod-AsyncGeneratorMethod
+features: [async-iteration]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -19,6 +20,7 @@ info: |
 
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
+
 ---*/
 
 
diff --git a/test/language/statements/class/async-gen-method-static-yield-spread-arr-multiple.js b/test/language/statements/class/async-gen-method-static-yield-spread-arr-multiple.js
index 9f69ae6fd2..4226899aff 100644
--- a/test/language/statements/class/async-gen-method-static-yield-spread-arr-multiple.js
+++ b/test/language/statements/class/async-gen-method-static-yield-spread-arr-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Static async generator method as a ClassDeclaration element)
 esid: prod-AsyncGeneratorMethod
+features: [async-iteration]
 flags: [generated, async]
 includes: [compareArray.js]
 info: |
@@ -18,6 +19,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/statements/class/async-gen-method-static-yield-spread-arr-single.js b/test/language/statements/class/async-gen-method-static-yield-spread-arr-single.js
index 8ae48c2a72..4bc3dff5a1 100644
--- a/test/language/statements/class/async-gen-method-static-yield-spread-arr-single.js
+++ b/test/language/statements/class/async-gen-method-static-yield-spread-arr-single.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Static async generator method as a ClassDeclaration element)
 esid: prod-AsyncGeneratorMethod
+features: [async-iteration]
 flags: [generated, async]
 info: |
     ClassElement :
@@ -17,6 +18,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/statements/class/async-gen-method-static-yield-spread-obj.js b/test/language/statements/class/async-gen-method-static-yield-spread-obj.js
index 526bb2b937..90598785de 100644
--- a/test/language/statements/class/async-gen-method-static-yield-spread-obj.js
+++ b/test/language/statements/class/async-gen-method-static-yield-spread-obj.js
@@ -4,7 +4,7 @@
 /*---
 description: Use yield value in a object spread position (Static async generator method as a ClassDeclaration element)
 esid: prod-AsyncGeneratorMethod
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, async]
 includes: [compareArray.js]
 info: |
@@ -19,6 +19,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/statements/class/async-gen-method-yield-identifier-spread-strict.js b/test/language/statements/class/async-gen-method-yield-identifier-spread-strict.js
index bfee4d874d..d7e36d36fe 100644
--- a/test/language/statements/class/async-gen-method-yield-identifier-spread-strict.js
+++ b/test/language/statements/class/async-gen-method-yield-identifier-spread-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: It's an early error if the AssignmentExpression is a function body with yield as an identifier in strict mode. (Async Generator method as a ClassDeclaration element)
 esid: prod-AsyncGeneratorMethod
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -21,6 +21,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/statements/class/async-gen-method-yield-identifier-strict.js b/test/language/statements/class/async-gen-method-yield-identifier-strict.js
index 8f6d71e7e6..8d5038ac9b 100644
--- a/test/language/statements/class/async-gen-method-yield-identifier-strict.js
+++ b/test/language/statements/class/async-gen-method-yield-identifier-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: It's an early error if the generator body has another function body with yield as an identifier in strict mode. (Async Generator method as a ClassDeclaration element)
 esid: prod-AsyncGeneratorMethod
+features: [async-iteration]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -19,6 +20,7 @@ info: |
 
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
+
 ---*/
 
 
diff --git a/test/language/statements/class/async-gen-method-yield-spread-arr-multiple.js b/test/language/statements/class/async-gen-method-yield-spread-arr-multiple.js
index a32b600497..2ae6c7bba6 100644
--- a/test/language/statements/class/async-gen-method-yield-spread-arr-multiple.js
+++ b/test/language/statements/class/async-gen-method-yield-spread-arr-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Async Generator method as a ClassDeclaration element)
 esid: prod-AsyncGeneratorMethod
+features: [async-iteration]
 flags: [generated, async]
 includes: [compareArray.js]
 info: |
@@ -18,6 +19,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/statements/class/async-gen-method-yield-spread-arr-single.js b/test/language/statements/class/async-gen-method-yield-spread-arr-single.js
index acb035bacb..8a7329e8bc 100644
--- a/test/language/statements/class/async-gen-method-yield-spread-arr-single.js
+++ b/test/language/statements/class/async-gen-method-yield-spread-arr-single.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Async Generator method as a ClassDeclaration element)
 esid: prod-AsyncGeneratorMethod
+features: [async-iteration]
 flags: [generated, async]
 info: |
     ClassElement :
@@ -17,6 +18,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/statements/class/async-gen-method-yield-spread-obj.js b/test/language/statements/class/async-gen-method-yield-spread-obj.js
index ffbb519675..01c03f7737 100644
--- a/test/language/statements/class/async-gen-method-yield-spread-obj.js
+++ b/test/language/statements/class/async-gen-method-yield-spread-obj.js
@@ -4,7 +4,7 @@
 /*---
 description: Use yield value in a object spread position (Async Generator method as a ClassDeclaration element)
 esid: prod-AsyncGeneratorMethod
-features: [object-spread]
+features: [object-spread, async-iteration]
 flags: [generated, async]
 includes: [compareArray.js]
 info: |
@@ -19,6 +19,7 @@ info: |
     AsyncGeneratorMethod :
       async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) { AsyncGeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
-- 
GitLab