diff --git a/src/spread/sngl-err-obj-getter-throws.case b/src/spread/sngl-err-obj-getter-throws.case
index 4b929215d43ccabbeae5ddb3b5047c7031b140bf..98b58892bd43df2a63f0d7d9ddd7423ae18f3632 100644
--- a/src/spread/sngl-err-obj-getter-throws.case
+++ b/src/spread/sngl-err-obj-getter-throws.case
@@ -15,6 +15,7 @@ info: |
     4. Let excludedNames be a new empty List.
     5. Return CopyDataProperties(object, fromValue, excludedNames).
 
+features: [object-spread]
 ---*/
 
 //- error
diff --git a/src/spread/sngl-err-obj-unresolvable.case b/src/spread/sngl-err-obj-unresolvable.case
index b6976d9989722e05fb092aa0d425c4848d80e112..9fb4ec8e71dfebc46f8f2df3657582d3ae8ee176 100644
--- a/src/spread/sngl-err-obj-unresolvable.case
+++ b/src/spread/sngl-err-obj-unresolvable.case
@@ -4,6 +4,7 @@
 desc: Object Spread operator results in error when using an unresolvable reference
 template: error
 esid: pending
+features: [object-spread]
 info: |
     Pending Runtime Semantics: PropertyDefinitionEvaluation
 
diff --git a/test/language/expressions/async-generator/early-errors-expression-NSPL-with-USD.js b/test/language/expressions/async-generator/early-errors-expression-NSPL-with-USD.js
index b887c2ce2709218fff2ee664186542a17e35a7a6..53f7aa4436b9f502ad101a21aa35cd02331f21fa 100644
--- a/test/language/expressions/async-generator/early-errors-expression-NSPL-with-USD.js
+++ b/test/language/expressions/async-generator/early-errors-expression-NSPL-with-USD.js
@@ -10,6 +10,7 @@ description: >
 negative:
   phase: early
   type: SyntaxError
+features: [async-iteration]
 ---*/
 
 (async function*(x = 1) {"use strict"});
diff --git a/test/language/expressions/async-generator/early-errors-expression-arguments-in-formal-parameters.js b/test/language/expressions/async-generator/early-errors-expression-arguments-in-formal-parameters.js
index 69e5026b8541b13ea4e7f6adb1009f694587d2f3..8d842f71a7ba015c490da2aba0072f562211cc81 100644
--- a/test/language/expressions/async-generator/early-errors-expression-arguments-in-formal-parameters.js
+++ b/test/language/expressions/async-generator/early-errors-expression-arguments-in-formal-parameters.js
@@ -10,6 +10,7 @@ negative:
   phase: early
   type: SyntaxError
 flags: [onlyStrict]
+features: [async-iteration]
 ---*/
 
 (async function*(arguments) { });
diff --git a/test/language/expressions/async-generator/early-errors-expression-await-as-function-binding-identifier.js b/test/language/expressions/async-generator/early-errors-expression-await-as-function-binding-identifier.js
index 0b02630356d197076e072a16bbda0cd9ba37db20..03a4bd9356f6f9971c6fb5f71cba1ab86fe87fd8 100644
--- a/test/language/expressions/async-generator/early-errors-expression-await-as-function-binding-identifier.js
+++ b/test/language/expressions/async-generator/early-errors-expression-await-as-function-binding-identifier.js
@@ -9,6 +9,7 @@ description: >
 negative:
   phase: early
   type: SyntaxError
+features: [async-iteration]
 ---*/
 
 (async function* await() { });
diff --git a/test/language/expressions/async-generator/early-errors-expression-binding-identifier-arguments.js b/test/language/expressions/async-generator/early-errors-expression-binding-identifier-arguments.js
index 85617538a4e14dc25a9de18afb1d2fb4881f77b8..e342094a8a3f92036920fd6dd2facf8c428ea0c7 100644
--- a/test/language/expressions/async-generator/early-errors-expression-binding-identifier-arguments.js
+++ b/test/language/expressions/async-generator/early-errors-expression-binding-identifier-arguments.js
@@ -11,6 +11,7 @@ negative:
   phase: early
   type: SyntaxError
 flags: [onlyStrict]
+features: [async-iteration]
 ---*/
 
 (async function* arguments() { });
diff --git a/test/language/expressions/async-generator/early-errors-expression-binding-identifier-eval.js b/test/language/expressions/async-generator/early-errors-expression-binding-identifier-eval.js
index 79474a644f855c0ab2144d974ea997157a7d5662..4a355b21cf1836631ed81e06305a548e43b10bab 100644
--- a/test/language/expressions/async-generator/early-errors-expression-binding-identifier-eval.js
+++ b/test/language/expressions/async-generator/early-errors-expression-binding-identifier-eval.js
@@ -11,6 +11,7 @@ negative:
   phase: early
   type: SyntaxError
 flags: [onlyStrict]
+features: [async-iteration]
 ---*/
 
 (async function* eval() { });
diff --git a/test/language/expressions/async-generator/early-errors-expression-body-contains-super-call.js b/test/language/expressions/async-generator/early-errors-expression-body-contains-super-call.js
index bca6ed5d716572329e1c91b9e6d9cbd326ef427a..900e9482565c38f6cf33ef4ead5c59286e15e80e 100644
--- a/test/language/expressions/async-generator/early-errors-expression-body-contains-super-call.js
+++ b/test/language/expressions/async-generator/early-errors-expression-body-contains-super-call.js
@@ -9,6 +9,7 @@ description: >
 negative:
   phase: early
   type: SyntaxError
+features: [async-iteration]
 ---*/
 
 (async function*() { super(); });
diff --git a/test/language/expressions/async-generator/early-errors-expression-body-contains-super-property.js b/test/language/expressions/async-generator/early-errors-expression-body-contains-super-property.js
index 794125f52e437540ddeff97bfc66bce7fc63c0f4..e63bdcac822007f32681400a3dd2019aff98505f 100644
--- a/test/language/expressions/async-generator/early-errors-expression-body-contains-super-property.js
+++ b/test/language/expressions/async-generator/early-errors-expression-body-contains-super-property.js
@@ -9,6 +9,7 @@ description: >
 negative:
   phase: early
   type: SyntaxError
+features: [async-iteration]
 ---*/
 
 (async function*() { super.prop; });
diff --git a/test/language/expressions/async-generator/early-errors-expression-eval-in-formal-parameters.js b/test/language/expressions/async-generator/early-errors-expression-eval-in-formal-parameters.js
index c87c23b6770b82aceb8318a1bcbba3abbf4371ce..4cde7611d9d084e4dc09dda44f31e65800485e60 100644
--- a/test/language/expressions/async-generator/early-errors-expression-eval-in-formal-parameters.js
+++ b/test/language/expressions/async-generator/early-errors-expression-eval-in-formal-parameters.js
@@ -10,6 +10,7 @@ negative:
   phase: early
   type: SyntaxError
 flags: [onlyStrict]
+features: [async-iteration]
 ---*/
 
 (async function*(eval) { });
diff --git a/test/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-const.js b/test/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-const.js
index 53e3a2365a6434a784e37b2e70b0f51f4e01e7fb..3f022631c2f3f3a344ff8d3b2bde6affcf1ab682 100644
--- a/test/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-const.js
+++ b/test/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-const.js
@@ -10,6 +10,7 @@ description: >
 negative:
   phase: early
   type: SyntaxError
+features: [async-iteration]
 ---*/
 
 (async function*(a) { const a = 0; });
diff --git a/test/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-let.js b/test/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-let.js
index 593d4325d53ba97e78192aa82efa0cd705abfd2f..87fd20b1f034cbb46c595fdaf99e85d7e03a8bc9 100644
--- a/test/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-let.js
+++ b/test/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-let.js
@@ -10,6 +10,7 @@ description: >
 negative:
   phase: early
   type: SyntaxError
+features: [async-iteration]
 ---*/
 
 (async function*(a) { let a; });
diff --git a/test/language/expressions/async-generator/early-errors-expression-formals-contains-await-expr.js b/test/language/expressions/async-generator/early-errors-expression-formals-contains-await-expr.js
index 1c94b75fc2aef6e72c00a5e23ad2a0e4d9cf8253..545158ec16b62404acadd95f3d087a174258de70 100644
--- a/test/language/expressions/async-generator/early-errors-expression-formals-contains-await-expr.js
+++ b/test/language/expressions/async-generator/early-errors-expression-formals-contains-await-expr.js
@@ -9,6 +9,7 @@ description: >
 negative:
   phase: early
   type: SyntaxError
+features: [async-iteration]
 ---*/
 
 (async function*(x = await 1) { });
diff --git a/test/language/expressions/async-generator/early-errors-expression-formals-contains-await.js b/test/language/expressions/async-generator/early-errors-expression-formals-contains-await.js
index bd038d0fe23db0260653e301bfa4ef58091f19ff..e0212b1d09f8ee6c497e448a246a3a77ac0ae3a8 100644
--- a/test/language/expressions/async-generator/early-errors-expression-formals-contains-await.js
+++ b/test/language/expressions/async-generator/early-errors-expression-formals-contains-await.js
@@ -10,6 +10,7 @@ description: >
 negative:
   phase: early
   type: SyntaxError
+features: [async-iteration]
 ---*/
 
 (async function*(await) { });
diff --git a/test/language/expressions/async-generator/early-errors-expression-formals-contains-super-call.js b/test/language/expressions/async-generator/early-errors-expression-formals-contains-super-call.js
index c25c59d2b816ba09ea6fd04d9aacb1902d77cd05..fd8ff8d11355ed6ff8180f4a850407b1b5b259b9 100644
--- a/test/language/expressions/async-generator/early-errors-expression-formals-contains-super-call.js
+++ b/test/language/expressions/async-generator/early-errors-expression-formals-contains-super-call.js
@@ -9,6 +9,7 @@ description: >
 negative:
   phase: early
   type: SyntaxError
+features: [async-iteration]
 ---*/
 
 (async function*(a = super()) { });
diff --git a/test/language/expressions/async-generator/early-errors-expression-formals-contains-super-property.js b/test/language/expressions/async-generator/early-errors-expression-formals-contains-super-property.js
index 4ecff952064fdafb0e3489890577bf708e7ba84c..950ec767501366d6bff22bbec57dd5f0e197509d 100644
--- a/test/language/expressions/async-generator/early-errors-expression-formals-contains-super-property.js
+++ b/test/language/expressions/async-generator/early-errors-expression-formals-contains-super-property.js
@@ -9,6 +9,7 @@ description: >
 negative:
   phase: early
   type: SyntaxError
+features: [async-iteration]
 ---*/
 
 (async function*(a = super.prop) { });
diff --git a/test/language/expressions/async-generator/early-errors-expression-formals-contains-yield-expr.js b/test/language/expressions/async-generator/early-errors-expression-formals-contains-yield-expr.js
index 828f5a57ef7350d32609f85e53a991b3461d6e8c..6951b533b6fee26421bef38a088956803f4bcc3a 100644
--- a/test/language/expressions/async-generator/early-errors-expression-formals-contains-yield-expr.js
+++ b/test/language/expressions/async-generator/early-errors-expression-formals-contains-yield-expr.js
@@ -9,6 +9,7 @@ description: >
 negative:
   phase: early
   type: SyntaxError
+features: [async-iteration]
 ---*/
 
 (async function*(x = yield) { });
diff --git a/test/language/expressions/async-generator/early-errors-expression-formals-contains-yield.js b/test/language/expressions/async-generator/early-errors-expression-formals-contains-yield.js
index cbc96a8836012d5f3aa8ce1660f1241f79c4c2bc..79b90129a7608a5fc58d3babe371f512c7a3618d 100644
--- a/test/language/expressions/async-generator/early-errors-expression-formals-contains-yield.js
+++ b/test/language/expressions/async-generator/early-errors-expression-formals-contains-yield.js
@@ -10,6 +10,7 @@ description: >
 negative:
   phase: early
   type: SyntaxError
+features: [async-iteration]
 ---*/
 
 (async function*(yield) { });
diff --git a/test/language/expressions/async-generator/early-errors-expression-label-name-await.js b/test/language/expressions/async-generator/early-errors-expression-label-name-await.js
index 050f89615416a08f85542847edec09dfaa1c9d66..6e968bc2b672d82493d6f3d7206f8beee291b6ca 100644
--- a/test/language/expressions/async-generator/early-errors-expression-label-name-await.js
+++ b/test/language/expressions/async-generator/early-errors-expression-label-name-await.js
@@ -10,6 +10,7 @@ description: >
 negative:
   phase: early
   type: SyntaxError
+features: [async-iteration]
 ---*/
 
 (async function*() {
diff --git a/test/language/expressions/async-generator/early-errors-expression-label-name-yield.js b/test/language/expressions/async-generator/early-errors-expression-label-name-yield.js
index 453e33b1b640fb0b831434d8c6b87de622a1780c..c6e2e80bd9dbb75f8edbacd7b62f3d925d0e5305 100644
--- a/test/language/expressions/async-generator/early-errors-expression-label-name-yield.js
+++ b/test/language/expressions/async-generator/early-errors-expression-label-name-yield.js
@@ -10,6 +10,7 @@ description: >
 negative:
   phase: early
   type: SyntaxError
+features: [async-iteration]
 ---*/
 
 (async function*() {
diff --git a/test/language/expressions/async-generator/early-errors-expression-not-simple-assignment-target.js b/test/language/expressions/async-generator/early-errors-expression-not-simple-assignment-target.js
index 900b8277e1c90ec5891d86fcf087cb3c493ee633..f70e9183d84a7b2df9eee1eb1ec67b4b375c687b 100644
--- a/test/language/expressions/async-generator/early-errors-expression-not-simple-assignment-target.js
+++ b/test/language/expressions/async-generator/early-errors-expression-not-simple-assignment-target.js
@@ -9,6 +9,7 @@ description: >
 negative:
   phase: early
   type: ReferenceError
+features: [async-iteration]
 ---*/
 
 (async function*() { } = 1);
diff --git a/test/language/expressions/async-generator/early-errors-expression-yield-as-function-binding-identifier.js b/test/language/expressions/async-generator/early-errors-expression-yield-as-function-binding-identifier.js
index ec54ee718289c5c8c671c229449808b64217e9f2..731ffe7c3eac6383c53ccd2085f5363154e70863 100644
--- a/test/language/expressions/async-generator/early-errors-expression-yield-as-function-binding-identifier.js
+++ b/test/language/expressions/async-generator/early-errors-expression-yield-as-function-binding-identifier.js
@@ -9,6 +9,7 @@ description: >
 negative:
   phase: early
   type: SyntaxError
+features: [async-iteration]
 ---*/
 
 (async function* yield() { });
diff --git a/test/language/expressions/async-generator/early-errors-expression-yield-star-after-newline.js b/test/language/expressions/async-generator/early-errors-expression-yield-star-after-newline.js
index 2d2c83ab07ac066bd8ef575a51f043759bb6f8b3..11d454220a3215609b242c85d135279c9d9e259a 100644
--- a/test/language/expressions/async-generator/early-errors-expression-yield-star-after-newline.js
+++ b/test/language/expressions/async-generator/early-errors-expression-yield-star-after-newline.js
@@ -9,6 +9,7 @@ description: >
 negative:
   phase: early
   type: SyntaxError
+features: [async-iteration]
 ---*/
 
 (async function*() {
diff --git a/test/language/expressions/async-generator/expression-await-as-yield-operand.js b/test/language/expressions/async-generator/expression-await-as-yield-operand.js
index cad8157bb7d6bd84a7344b398aa38806bd7d5bd0..0518a3b442dd30546ba083266b5a6b002312233d 100644
--- a/test/language/expressions/async-generator/expression-await-as-yield-operand.js
+++ b/test/language/expressions/async-generator/expression-await-as-yield-operand.js
@@ -7,6 +7,7 @@ esid: 14.4
 description: >
   AwaitExpressions are valid operands to yield expressions.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var iter = (async function*() {
diff --git a/test/language/expressions/async-generator/expression-await-promise-as-yield-operand.js b/test/language/expressions/async-generator/expression-await-promise-as-yield-operand.js
index 8f345472be7a0dfba96d14a4bbe4d7f9b8d58843..ace95582a435acd17ae523452e4a7fab82847ab0 100644
--- a/test/language/expressions/async-generator/expression-await-promise-as-yield-operand.js
+++ b/test/language/expressions/async-generator/expression-await-promise-as-yield-operand.js
@@ -7,6 +7,7 @@ esid: 14.4
 description: >
   AwaitExpressions are valid operands to yield expressions.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var iter = (async function*() {
diff --git a/test/language/expressions/async-generator/expression-await-thenable-as-yield-operand.js b/test/language/expressions/async-generator/expression-await-thenable-as-yield-operand.js
index c436a94172a7dbc4b841827828e0a0e8f0e01a7a..f8b8b52140a3e76e36205aba609d76498a1c9990 100644
--- a/test/language/expressions/async-generator/expression-await-thenable-as-yield-operand.js
+++ b/test/language/expressions/async-generator/expression-await-thenable-as-yield-operand.js
@@ -7,6 +7,7 @@ esid: 14.4
 description: >
   AwaitExpressions are valid operands to yield expressions.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var thenable = {
diff --git a/test/language/expressions/async-generator/expression-yield-as-operand.js b/test/language/expressions/async-generator/expression-yield-as-operand.js
index c2a14ffcd382d7f4846994d48b9d470e53a4c3c2..1fbb3541a34e9f36467c2f87cb75fdff906ed317 100644
--- a/test/language/expressions/async-generator/expression-yield-as-operand.js
+++ b/test/language/expressions/async-generator/expression-yield-as-operand.js
@@ -8,6 +8,7 @@ description: >
   `yield` expressions may be used as the right-hand-side of other `yield`
   expressions.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var g = async function*() {
diff --git a/test/language/expressions/async-generator/expression-yield-as-statement.js b/test/language/expressions/async-generator/expression-yield-as-statement.js
index f952461eacd833f02f785f07a8159158a0d7d9db..985a513d13dbde633938d632f7578d3dd821af44 100644
--- a/test/language/expressions/async-generator/expression-yield-as-statement.js
+++ b/test/language/expressions/async-generator/expression-yield-as-statement.js
@@ -7,6 +7,7 @@ esid: 14.4
 description: >
   `yield` is a valid statement within async generator function bodies.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var g1 = async function*() { yield; };
diff --git a/test/language/expressions/async-generator/expression-yield-newline.js b/test/language/expressions/async-generator/expression-yield-newline.js
index 3b183a2b6b4df0a3eba593c1732b1a498bdcdf7d..9ca1438b27afa9a6c86122e2888aebaa63fdbe39 100644
--- a/test/language/expressions/async-generator/expression-yield-newline.js
+++ b/test/language/expressions/async-generator/expression-yield-newline.js
@@ -7,6 +7,7 @@ esid: 14.4
 description: >
   Newlines terminate `yield` expressions.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var g = async function*() {
diff --git a/test/language/expressions/async-generator/expression-yield-star-before-newline.js b/test/language/expressions/async-generator/expression-yield-star-before-newline.js
index d22ef2f88f8a9a247028913e9d55dcc90ea4051c..6c14fa78b202648c2559594c679c516fc0fb98b9 100644
--- a/test/language/expressions/async-generator/expression-yield-star-before-newline.js
+++ b/test/language/expressions/async-generator/expression-yield-star-before-newline.js
@@ -7,6 +7,7 @@ esid: 14.4
 description: >
   The right-hand side of a `yield *` expression may appear on a new line.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var g = async function*() {};
diff --git a/test/language/expressions/async-generator/return-suspendedStart-promise.js b/test/language/expressions/async-generator/return-suspendedStart-promise.js
index f4a8b9229fb09af328d131e6e98af9de5290d834..e0c57ab215ebaa39f35fe36fc59259625e9aa090 100644
--- a/test/language/expressions/async-generator/return-suspendedStart-promise.js
+++ b/test/language/expressions/async-generator/return-suspendedStart-promise.js
@@ -14,6 +14,7 @@ info: |
 
   AsyncGeneratorResolve will unwrap Promise values (steps 6-10)
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var g = async function*() {
diff --git a/test/language/expressions/async-generator/return-suspendedStart.js b/test/language/expressions/async-generator/return-suspendedStart.js
index d1ce68b22a09246626e17c8bb3270184acd64888..2de04762f10640e5751ffae03e2277278b13cc2d 100644
--- a/test/language/expressions/async-generator/return-suspendedStart.js
+++ b/test/language/expressions/async-generator/return-suspendedStart.js
@@ -12,6 +12,7 @@ info: |
   If completion.[[Type]] is return, and generator.[[AsyncGeneratorState]] is
   "suspendedStart", generator is closed without being resumed.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var g = async function*() {
diff --git a/test/language/expressions/async-generator/return-suspendedYield-promise.js b/test/language/expressions/async-generator/return-suspendedYield-promise.js
index 105643f2b755fcf4fac93fd3ca271414288e6d97..686b535862555ae5b55da0fe78fe59a2f4541adc 100644
--- a/test/language/expressions/async-generator/return-suspendedYield-promise.js
+++ b/test/language/expressions/async-generator/return-suspendedYield-promise.js
@@ -13,6 +13,7 @@ info: |
   "suspendedYield", generator is resumed and immediately closes the generator
   and returns completion.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var g = async function*() {
diff --git a/test/language/expressions/async-generator/return-suspendedYield-try-finally-return.js b/test/language/expressions/async-generator/return-suspendedYield-try-finally-return.js
index 2a2c899e283cdb2da4a8427e3fe24fee1e7a0226..34687c09fbb91d25773086dd294e65b346ca52e8 100644
--- a/test/language/expressions/async-generator/return-suspendedYield-try-finally-return.js
+++ b/test/language/expressions/async-generator/return-suspendedYield-try-finally-return.js
@@ -13,6 +13,7 @@ info: |
   "suspendedYield", and generator is resumed within a try-block with an
   associated finally block, resume execution within finally.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var g = async function*() {
diff --git a/test/language/expressions/async-generator/return-suspendedYield-try-finally-throw.js b/test/language/expressions/async-generator/return-suspendedYield-try-finally-throw.js
index 208b2e4d5efb72c8119084b91e2ffe3d2b8840a0..4ad8c6270adc5d2215ee52a17cbd4466eefd1974 100644
--- a/test/language/expressions/async-generator/return-suspendedYield-try-finally-throw.js
+++ b/test/language/expressions/async-generator/return-suspendedYield-try-finally-throw.js
@@ -14,6 +14,7 @@ info: |
   "suspendedYield", and generator is resumed within a try-block with an
   associated finally block, resume execution within finally.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var error = new Error("boop");
diff --git a/test/language/expressions/async-generator/return-suspendedYield-try-finally.js b/test/language/expressions/async-generator/return-suspendedYield-try-finally.js
index 022fbb9fa85413804278bd5eba8d95e4e4c25686..f400b8bd97e3a473a0f68b59d7e853016b66d0d2 100644
--- a/test/language/expressions/async-generator/return-suspendedYield-try-finally.js
+++ b/test/language/expressions/async-generator/return-suspendedYield-try-finally.js
@@ -13,6 +13,7 @@ info: |
   "suspendedYield", and generator is resumed within a try-block with an
   associated finally block, resume execution within finally.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var g = async function*() {
diff --git a/test/language/expressions/async-generator/return-suspendedYield.js b/test/language/expressions/async-generator/return-suspendedYield.js
index 221dafd0d503e442949d4923eee54ae8f6acf476..25e5f6f103e557ef2c4441edbc2d6308d5565ecd 100644
--- a/test/language/expressions/async-generator/return-suspendedYield.js
+++ b/test/language/expressions/async-generator/return-suspendedYield.js
@@ -13,6 +13,7 @@ info: |
   "suspendedYield", generator is resumed and immediately closes the generator
   and returns completion.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var g = async function*() {
diff --git a/test/language/expressions/async-generator/throw-suspendedStart-promise.js b/test/language/expressions/async-generator/throw-suspendedStart-promise.js
index f49db64f7285ad05b3d68952120e4de2c7ff82eb..7c62aba1738bc63c4e40808b558df14117ddb3fe 100644
--- a/test/language/expressions/async-generator/throw-suspendedStart-promise.js
+++ b/test/language/expressions/async-generator/throw-suspendedStart-promise.js
@@ -14,6 +14,7 @@ info: |
 
   AsyncGeneratorReject will not unwrap Promise values
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var g = async function*() {
diff --git a/test/language/expressions/async-generator/throw-suspendedStart.js b/test/language/expressions/async-generator/throw-suspendedStart.js
index 534dde8fc5f9d4e45a8644bd085062b751df703a..6cc1c2326179ca0952290d5fcf2e4b1a2e638962 100644
--- a/test/language/expressions/async-generator/throw-suspendedStart.js
+++ b/test/language/expressions/async-generator/throw-suspendedStart.js
@@ -12,6 +12,7 @@ info: |
   If completion.[[Type]] is throw, and generator.[[AsyncGeneratorState]] is
   "suspendedStart", generator is closed without being resumed.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var error = new Error('boop');
diff --git a/test/language/expressions/async-generator/throw-suspendedYield-promise.js b/test/language/expressions/async-generator/throw-suspendedYield-promise.js
index db701ef8cd9667565812938e43ea07b1f2f81528..0d2dbaf94fde88c5456054f646e0a461e66a59fd 100644
--- a/test/language/expressions/async-generator/throw-suspendedYield-promise.js
+++ b/test/language/expressions/async-generator/throw-suspendedYield-promise.js
@@ -14,6 +14,7 @@ info: |
 
   AsyncGeneratorReject will not unwrap Promise values
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var g = async function*() {
diff --git a/test/language/expressions/async-generator/throw-suspendedYield-try-catch.js b/test/language/expressions/async-generator/throw-suspendedYield-try-catch.js
index 0b60090c3442c39cd9fc36949d16f976283886fe..5806017fcaec8b11bb446527ce94bc48e2a0c84c 100644
--- a/test/language/expressions/async-generator/throw-suspendedYield-try-catch.js
+++ b/test/language/expressions/async-generator/throw-suspendedYield-try-catch.js
@@ -13,6 +13,7 @@ info: |
   "suspendedYield", and generator is resumed within a try-block with an
   associated catch block, resume execution within catch-block.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var error = new Error('boop');
diff --git a/test/language/expressions/async-generator/throw-suspendedYield-try-finally-return.js b/test/language/expressions/async-generator/throw-suspendedYield-try-finally-return.js
index 96adedabe58adb4703fa01d5ca4529bff6bb7f46..2a9740291cddf37afd01214b015f30adc0c951f2 100644
--- a/test/language/expressions/async-generator/throw-suspendedYield-try-finally-return.js
+++ b/test/language/expressions/async-generator/throw-suspendedYield-try-finally-return.js
@@ -13,6 +13,7 @@ info: |
   "suspendedYield", and generator is resumed within a try-block with an
   associated finally block, resume execution within finally.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 class Err extends Error {};
diff --git a/test/language/expressions/async-generator/throw-suspendedYield-try-finally-throw.js b/test/language/expressions/async-generator/throw-suspendedYield-try-finally-throw.js
index 6c404ea04fcedc85b37e444b4a8ebb9f3ee02163..b7faf9cec3b93b6de1f45e0fd6f278f1db54ebd0 100644
--- a/test/language/expressions/async-generator/throw-suspendedYield-try-finally-throw.js
+++ b/test/language/expressions/async-generator/throw-suspendedYield-try-finally-throw.js
@@ -14,6 +14,7 @@ info: |
   "suspendedYield", and generator is resumed within a try-block with an
   associated finally block, resume execution within finally.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var error = new Error('boop');
diff --git a/test/language/expressions/async-generator/throw-suspendedYield-try-finally.js b/test/language/expressions/async-generator/throw-suspendedYield-try-finally.js
index e348f840ee50aa239917653ae8e42e5602b668f0..ef7e200b59788e639ef8d19472f30b64914d5fda 100644
--- a/test/language/expressions/async-generator/throw-suspendedYield-try-finally.js
+++ b/test/language/expressions/async-generator/throw-suspendedYield-try-finally.js
@@ -13,6 +13,7 @@ info: |
   "suspendedYield", and generator is resumed within a try-block with an
   associated finally block, resume execution within finally.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var error = new Error('boop');
diff --git a/test/language/expressions/async-generator/throw-suspendedYield.js b/test/language/expressions/async-generator/throw-suspendedYield.js
index 689eed73bede856a8b7dea1418f8e70fecd1d04a..eba5c47b6b2d41b1ff248ae6870d198b202f191d 100644
--- a/test/language/expressions/async-generator/throw-suspendedYield.js
+++ b/test/language/expressions/async-generator/throw-suspendedYield.js
@@ -12,6 +12,7 @@ info: |
   "suspendedYield", generator is resumed and immediately and
   closes the generator and returns completion.
 flags: [async]
+features: [async-iteration]
 ---*/
 
 var error = new Error('boop');