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 5f78d6de9f69a0b006add331e0f1fc4b71e9fa7b..f40bbe0e54928d887e54b7b8770b389e91250d74 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 d65911bb3c8269c6d04103207feecb2de5d73e4c..6c7ae2960f26a661f624d0aefb4084d2e0821e80 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 f022c50e3f755e2cfccc7cb4de3d6cf45ad93be9..a368ba6c3ed79386fc52e39b42573baae9ac731c 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 a49291637bd0c77301680f5c42139586c7b4989b..6c2b9d59e890bbd788c589b6599aca35fa7bb0aa 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 89900d9c067e334d56789ccc277b117e44a8e246..56c3a3cdf7028d034ef1ed1b0ee198f3e30c3e09 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 95d08539593b1cfb13346be45f0abed2afead3ac..a7c1e8634aea0c934750fda9e0ee2a4f50776377 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 a4baf2566c46124b866b4a4fb9590bc1b5fe4cab..a673d06bbaacd8d6c7f31d8a935dd6c51da70588 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 8708e371d9f384ffd9b693c5b33024c13816c65a..347e5fcd0a2c6651b4145f048b9c6dd010ec1506 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 8a60681c237e5171aa47bbe9791829b03fcbbfc6..90bcbe2ed0949b98b03fb489ca72922a2b1fb6d2 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 1e332e136e576efea7ce2b705db8053980c48a3c..8c8214d88529e62d097f7171cabf796b82579826 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 067065bb15bd8cefd3ca705bda960137b360e0a8..1a32a96d3c456feb1b6eb8490f4cb2fe67dcb200 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 4038349475f87753ae721c15a19eace9bf0253fa..fff1129dafad9306d000636c71299f814dcf25b2 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 421f0004cfc66059323d91b917a2f95f175a24e0..1cce6d8d2072617e2493e38a4bad4cf532f97edb 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 8f9b701a542ca3a5b0ed27200a779aac06de8ad7..717158f88dde38639d1af4cb8e2c201ef0e505af 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 3bd1d2095f24f62fa64527f02d5f88d972c23e07..9e8226d81f9290eb77a8d6dcf0ce30ab8510ccf2 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 a0610dabe750af97fefdcac534a06c2b2c81a241..2adf5b764eadcca7a2dd3157272689cabe28fb9b 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 edbd643d5a88a44eb9e38980e1d8833eb8bc2846..fc3d81a4ead6878d9cfd97561729de366f4f1a8f 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 9c0297d6eb40646e16d4057b172bfd7afe7bf689..18f8dd125267c90e2c9f64452dd30e2c392c8bba 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 a2a8109fefc0efed9438c1a0d5ba09eb13988f01..9fb44181c02f20d6a53fe52c843154b11a011ac4 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 840350036edce3cd4ae5119092064175cc7b0d39..4a163c721553424271d464f8414f0bc608ac8394 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 803e9f9669ecbcfde113fe6044938d6bd2dacfbb..45fecde820953972f2abadabc36d5133ca8a8a94 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 00040546b82006595abf5f99399df1eec532350f..a05af122002938edd2cd58dc32e668182ad92bac 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 aff92093e9225e2ee3a979a7c3d8d1cf82cbddfd..0e9a722b51e6c11f642e54ac9a8b45181eec8bfd 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 54ce456642479cbc3db55cd268ea134fad61e9e9..08d3385f8b60c701732e7aed3caf15c0ca4f2cae 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 f6a94c40f2b342d47920b12f5a22027ae849b6e9..f02a132462717661301ae06f9b3e043a71242570 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 aaef9d3cc9ffce97f08a0a89bc48ac175f34c54e..eeeecd3ef9bd2e3e7a8e9e3af70328341fe4704e 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 cacb1efb64f15f62f449bbd7432564f6cad4a283..4ac20d73e7d7d0689135ba0ac5bc9421353a0fb2 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 e1360accb87ea47b2c7fcaf32ae3c9dab00cefd0..186de46ca5ee2a51ee08ffd392985fd53bd50e30 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 bbd66a65c21405aeff993bbd9f1c58ced2ddd408..984ce0c113271a0f92a35e8a39792c066b93f371 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 fb93afba318d36811096120efab495df409a8438..937834b86291ce18dac705bdc4ecf7cd81ab4aa3 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 76655d4c2249c99094cddfdba413f42b6304a5ce..a8de4d64746bf7f6f6f8c5841845f88490d92dae 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 292b4f00c31ac44b5c6e372a13f583056cdd8eec..2a145e811ce823d70d2634f929124dd153e05143 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 dd2759f3f7006e19247002931ff3531ff3e4bd08..8745b43fbd7e2d187b282d1bf935c1953370f3b5 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 6b1ec3cac8d4d75a9f7de9a22e0019bf5119336d..70818aae414ed270f6ac0515b895be807b60cb9f 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 1ba4d0729eefdff36523d44b42f68b4e893ee201..1d037a488b49ad55fab681d47c2618097db527a2 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 34f0e3ef502e3ff017543300963d945142bd6db6..f8a500feb869ab1cb1cd441bb9715f86201ab762 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 b2a3063395eb7ee2a36c2db32d8bb097c9ad7ac2..5c0877292143357d3fc1e22bdfc17d5e1e7c2c6b 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 4ed722ea9ab69bdf58aa680c83c77ce112788909..956b69d8d965dee7a10ab5418b4a1e7faee366af 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 58a66025e1e8e6167a8ae86ac6d01daf1694b4f3..056d16e594aad7c8a9453e41273ead36ac643fec 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 9609478ee0881e7b125ff7b3d0ef8e0970f465f0..dc4d2876d0e7f090a5b50e264fc8363b87c51c6f 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 9f69ae6fd2a45977fec622739386da835cf72158..4226899aff9e293a167548f9e5509ea7a6aa013b 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 8ae48c2a721a51d661fa0796d125afc4b795f1f3..4bc3dff5a160da3094597ea887bdec314d191bc9 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 526bb2b937064b7bae02a94dc5d35458287c3f33..90598785dea0f1deba272b31dfdeaef0a71b3353 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 bfee4d874d8f0c5aec5d957ea02285112d60be1f..d7e36d36fe8342904efa0587a60ca145c08488fe 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 8f6d71e7e6b9b00baa6774006b188a2cc5b964d0..8d5038ac9b5a9d9f13b57311108bac2cedf9e347 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 a32b600497b89fb8083a0481e8b07c4a931acf9c..2ae6c7bba678ad6e02296df34a0eaa26a8462321 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 acb035bacb089b9402c2b920403becabdb9c3ae8..8a7329e8bc77686558f87ecd58d6818ff46f6999 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 ffbb51967548c3f7f72e2e0a17b136cd8eab7eb9..01c03f7737c183343d92ad3e1375f038e36e736f 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]: