From dffbe50668ba9dd655e3e80520d4d8e2955f1677 Mon Sep 17 00:00:00 2001
From: Rick Waldron <waldron.rick@gmail.com>
Date: Wed, 16 Aug 2017 15:11:44 -0400
Subject: [PATCH] Generate tests

---
 .../arrow-function/dstr-ary-ptrn-elision-exhausted.js           | 2 +-
 .../arrow-function/dstr-ary-ptrn-elision-step-err.js            | 2 +-
 .../expressions/arrow-function/dstr-ary-ptrn-elision.js         | 2 +-
 .../arrow-function/dstr-dflt-ary-ptrn-elision-exhausted.js      | 2 +-
 .../arrow-function/dstr-dflt-ary-ptrn-elision-step-err.js       | 2 +-
 .../expressions/arrow-function/dstr-dflt-ary-ptrn-elision.js    | 2 +-
 .../async-generator/dstr-ary-ptrn-elision-exhausted.js          | 2 +-
 .../async-generator/dstr-ary-ptrn-elision-step-err.js           | 2 +-
 .../expressions/async-generator/dstr-ary-ptrn-elision.js        | 2 +-
 .../async-generator/dstr-dflt-ary-ptrn-elision-exhausted.js     | 2 +-
 .../async-generator/dstr-dflt-ary-ptrn-elision-step-err.js      | 2 +-
 .../expressions/async-generator/dstr-dflt-ary-ptrn-elision.js   | 2 +-
 .../async-generator/dstr-named-ary-ptrn-elision-exhausted.js    | 2 +-
 .../async-generator/dstr-named-ary-ptrn-elision-step-err.js     | 2 +-
 .../expressions/async-generator/dstr-named-ary-ptrn-elision.js  | 2 +-
 .../dstr-named-dflt-ary-ptrn-elision-exhausted.js               | 2 +-
 .../dstr-named-dflt-ary-ptrn-elision-step-err.js                | 2 +-
 .../async-generator/dstr-named-dflt-ary-ptrn-elision.js         | 2 +-
 .../class/dstr-async-gen-meth-ary-ptrn-elision-exhausted.js     | 2 +-
 .../class/dstr-async-gen-meth-ary-ptrn-elision-step-err.js      | 2 +-
 .../expressions/class/dstr-async-gen-meth-ary-ptrn-elision.js   | 2 +-
 .../dstr-async-gen-meth-dflt-ary-ptrn-elision-exhausted.js      | 2 +-
 .../class/dstr-async-gen-meth-dflt-ary-ptrn-elision-step-err.js | 2 +-
 .../class/dstr-async-gen-meth-dflt-ary-ptrn-elision.js          | 2 +-
 .../dstr-async-gen-meth-static-ary-ptrn-elision-exhausted.js    | 2 +-
 .../dstr-async-gen-meth-static-ary-ptrn-elision-step-err.js     | 2 +-
 .../class/dstr-async-gen-meth-static-ary-ptrn-elision.js        | 2 +-
 ...str-async-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js | 2 +-
 ...dstr-async-gen-meth-static-dflt-ary-ptrn-elision-step-err.js | 2 +-
 .../class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision.js   | 2 +-
 .../class/dstr-gen-meth-ary-ptrn-elision-exhausted.js           | 2 +-
 .../class/dstr-gen-meth-ary-ptrn-elision-step-err.js            | 2 +-
 .../expressions/class/dstr-gen-meth-ary-ptrn-elision.js         | 2 +-
 .../class/dstr-gen-meth-dflt-ary-ptrn-elision-exhausted.js      | 2 +-
 .../class/dstr-gen-meth-dflt-ary-ptrn-elision-step-err.js       | 2 +-
 .../expressions/class/dstr-gen-meth-dflt-ary-ptrn-elision.js    | 2 +-
 .../class/dstr-gen-meth-static-ary-ptrn-elision-exhausted.js    | 2 +-
 .../class/dstr-gen-meth-static-ary-ptrn-elision-step-err.js     | 2 +-
 .../expressions/class/dstr-gen-meth-static-ary-ptrn-elision.js  | 2 +-
 .../dstr-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js     | 2 +-
 .../dstr-gen-meth-static-dflt-ary-ptrn-elision-step-err.js      | 2 +-
 .../class/dstr-gen-meth-static-dflt-ary-ptrn-elision.js         | 2 +-
 .../expressions/class/dstr-meth-ary-ptrn-elision-exhausted.js   | 2 +-
 .../expressions/class/dstr-meth-ary-ptrn-elision-step-err.js    | 2 +-
 test/language/expressions/class/dstr-meth-ary-ptrn-elision.js   | 2 +-
 .../class/dstr-meth-dflt-ary-ptrn-elision-exhausted.js          | 2 +-
 .../class/dstr-meth-dflt-ary-ptrn-elision-step-err.js           | 2 +-
 .../expressions/class/dstr-meth-dflt-ary-ptrn-elision.js        | 2 +-
 .../class/dstr-meth-static-ary-ptrn-elision-exhausted.js        | 2 +-
 .../class/dstr-meth-static-ary-ptrn-elision-step-err.js         | 2 +-
 .../expressions/class/dstr-meth-static-ary-ptrn-elision.js      | 2 +-
 .../class/dstr-meth-static-dflt-ary-ptrn-elision-exhausted.js   | 2 +-
 .../class/dstr-meth-static-dflt-ary-ptrn-elision-step-err.js    | 2 +-
 .../expressions/class/dstr-meth-static-dflt-ary-ptrn-elision.js | 2 +-
 .../expressions/function/dstr-ary-ptrn-elision-exhausted.js     | 2 +-
 .../expressions/function/dstr-ary-ptrn-elision-step-err.js      | 2 +-
 test/language/expressions/function/dstr-ary-ptrn-elision.js     | 2 +-
 .../function/dstr-dflt-ary-ptrn-elision-exhausted.js            | 2 +-
 .../expressions/function/dstr-dflt-ary-ptrn-elision-step-err.js | 2 +-
 .../language/expressions/function/dstr-dflt-ary-ptrn-elision.js | 2 +-
 .../expressions/generators/dstr-ary-ptrn-elision-exhausted.js   | 2 +-
 .../expressions/generators/dstr-ary-ptrn-elision-step-err.js    | 2 +-
 test/language/expressions/generators/dstr-ary-ptrn-elision.js   | 2 +-
 .../generators/dstr-dflt-ary-ptrn-elision-exhausted.js          | 2 +-
 .../generators/dstr-dflt-ary-ptrn-elision-step-err.js           | 2 +-
 .../expressions/generators/dstr-dflt-ary-ptrn-elision.js        | 2 +-
 .../object/dstr-async-gen-meth-ary-ptrn-elision-exhausted.js    | 2 +-
 .../object/dstr-async-gen-meth-ary-ptrn-elision-step-err.js     | 2 +-
 .../expressions/object/dstr-async-gen-meth-ary-ptrn-elision.js  | 2 +-
 .../dstr-async-gen-meth-dflt-ary-ptrn-elision-exhausted.js      | 2 +-
 .../dstr-async-gen-meth-dflt-ary-ptrn-elision-step-err.js       | 2 +-
 .../object/dstr-async-gen-meth-dflt-ary-ptrn-elision.js         | 2 +-
 .../object/dstr-gen-meth-ary-ptrn-elision-exhausted.js          | 2 +-
 .../object/dstr-gen-meth-ary-ptrn-elision-step-err.js           | 2 +-
 .../expressions/object/dstr-gen-meth-ary-ptrn-elision.js        | 2 +-
 .../object/dstr-gen-meth-dflt-ary-ptrn-elision-exhausted.js     | 2 +-
 .../object/dstr-gen-meth-dflt-ary-ptrn-elision-step-err.js      | 2 +-
 .../expressions/object/dstr-gen-meth-dflt-ary-ptrn-elision.js   | 2 +-
 .../expressions/object/dstr-meth-ary-ptrn-elision-exhausted.js  | 2 +-
 .../expressions/object/dstr-meth-ary-ptrn-elision-step-err.js   | 2 +-
 test/language/expressions/object/dstr-meth-ary-ptrn-elision.js  | 2 +-
 .../object/dstr-meth-dflt-ary-ptrn-elision-exhausted.js         | 2 +-
 .../object/dstr-meth-dflt-ary-ptrn-elision-step-err.js          | 2 +-
 .../expressions/object/dstr-meth-dflt-ary-ptrn-elision.js       | 2 +-
 .../async-generator/dstr-ary-ptrn-elision-exhausted.js          | 2 +-
 .../async-generator/dstr-ary-ptrn-elision-step-err.js           | 2 +-
 .../statements/async-generator/dstr-ary-ptrn-elision.js         | 2 +-
 .../async-generator/dstr-dflt-ary-ptrn-elision-exhausted.js     | 2 +-
 .../async-generator/dstr-dflt-ary-ptrn-elision-step-err.js      | 2 +-
 .../statements/async-generator/dstr-dflt-ary-ptrn-elision.js    | 2 +-
 .../class/dstr-async-gen-meth-ary-ptrn-elision-exhausted.js     | 2 +-
 .../class/dstr-async-gen-meth-ary-ptrn-elision-step-err.js      | 2 +-
 .../statements/class/dstr-async-gen-meth-ary-ptrn-elision.js    | 2 +-
 .../dstr-async-gen-meth-dflt-ary-ptrn-elision-exhausted.js      | 2 +-
 .../class/dstr-async-gen-meth-dflt-ary-ptrn-elision-step-err.js | 2 +-
 .../class/dstr-async-gen-meth-dflt-ary-ptrn-elision.js          | 2 +-
 .../dstr-async-gen-meth-static-ary-ptrn-elision-exhausted.js    | 2 +-
 .../dstr-async-gen-meth-static-ary-ptrn-elision-step-err.js     | 2 +-
 .../class/dstr-async-gen-meth-static-ary-ptrn-elision.js        | 2 +-
 ...str-async-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js | 2 +-
 ...dstr-async-gen-meth-static-dflt-ary-ptrn-elision-step-err.js | 2 +-
 .../class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision.js   | 2 +-
 .../class/dstr-gen-meth-ary-ptrn-elision-exhausted.js           | 2 +-
 .../statements/class/dstr-gen-meth-ary-ptrn-elision-step-err.js | 2 +-
 .../language/statements/class/dstr-gen-meth-ary-ptrn-elision.js | 2 +-
 .../class/dstr-gen-meth-dflt-ary-ptrn-elision-exhausted.js      | 2 +-
 .../class/dstr-gen-meth-dflt-ary-ptrn-elision-step-err.js       | 2 +-
 .../statements/class/dstr-gen-meth-dflt-ary-ptrn-elision.js     | 2 +-
 .../class/dstr-gen-meth-static-ary-ptrn-elision-exhausted.js    | 2 +-
 .../class/dstr-gen-meth-static-ary-ptrn-elision-step-err.js     | 2 +-
 .../statements/class/dstr-gen-meth-static-ary-ptrn-elision.js   | 2 +-
 .../dstr-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js     | 2 +-
 .../dstr-gen-meth-static-dflt-ary-ptrn-elision-step-err.js      | 2 +-
 .../class/dstr-gen-meth-static-dflt-ary-ptrn-elision.js         | 2 +-
 .../statements/class/dstr-meth-ary-ptrn-elision-exhausted.js    | 2 +-
 .../statements/class/dstr-meth-ary-ptrn-elision-step-err.js     | 2 +-
 test/language/statements/class/dstr-meth-ary-ptrn-elision.js    | 2 +-
 .../class/dstr-meth-dflt-ary-ptrn-elision-exhausted.js          | 2 +-
 .../class/dstr-meth-dflt-ary-ptrn-elision-step-err.js           | 2 +-
 .../statements/class/dstr-meth-dflt-ary-ptrn-elision.js         | 2 +-
 .../class/dstr-meth-static-ary-ptrn-elision-exhausted.js        | 2 +-
 .../class/dstr-meth-static-ary-ptrn-elision-step-err.js         | 2 +-
 .../statements/class/dstr-meth-static-ary-ptrn-elision.js       | 2 +-
 .../class/dstr-meth-static-dflt-ary-ptrn-elision-exhausted.js   | 2 +-
 .../class/dstr-meth-static-dflt-ary-ptrn-elision-step-err.js    | 2 +-
 .../statements/class/dstr-meth-static-dflt-ary-ptrn-elision.js  | 2 +-
 .../statements/const/dstr-ary-ptrn-elision-exhausted.js         | 2 +-
 .../language/statements/const/dstr-ary-ptrn-elision-step-err.js | 2 +-
 test/language/statements/const/dstr-ary-ptrn-elision.js         | 2 +-
 .../async-func-dstr-const-ary-ptrn-elision-exhausted.js         | 2 +-
 .../async-func-dstr-const-ary-ptrn-elision-step-err.js          | 2 +-
 .../for-await-of/async-func-dstr-const-ary-ptrn-elision.js      | 2 +-
 .../async-func-dstr-const-async-ary-ptrn-elision-exhausted.js   | 2 +-
 .../async-func-dstr-const-async-ary-ptrn-elision.js             | 2 +-
 .../async-func-dstr-let-ary-ptrn-elision-exhausted.js           | 2 +-
 .../async-func-dstr-let-ary-ptrn-elision-step-err.js            | 2 +-
 .../for-await-of/async-func-dstr-let-ary-ptrn-elision.js        | 2 +-
 .../async-func-dstr-let-async-ary-ptrn-elision-exhausted.js     | 2 +-
 .../for-await-of/async-func-dstr-let-async-ary-ptrn-elision.js  | 2 +-
 .../async-func-dstr-var-ary-ptrn-elision-exhausted.js           | 2 +-
 .../async-func-dstr-var-ary-ptrn-elision-step-err.js            | 2 +-
 .../for-await-of/async-func-dstr-var-ary-ptrn-elision.js        | 2 +-
 .../async-func-dstr-var-async-ary-ptrn-elision-exhausted.js     | 2 +-
 .../for-await-of/async-func-dstr-var-async-ary-ptrn-elision.js  | 2 +-
 .../async-gen-dstr-const-ary-ptrn-elision-exhausted.js          | 2 +-
 .../async-gen-dstr-const-ary-ptrn-elision-step-err.js           | 2 +-
 .../for-await-of/async-gen-dstr-const-ary-ptrn-elision.js       | 2 +-
 .../async-gen-dstr-const-async-ary-ptrn-elision-exhausted.js    | 2 +-
 .../for-await-of/async-gen-dstr-const-async-ary-ptrn-elision.js | 2 +-
 .../async-gen-dstr-let-ary-ptrn-elision-exhausted.js            | 2 +-
 .../async-gen-dstr-let-ary-ptrn-elision-step-err.js             | 2 +-
 .../for-await-of/async-gen-dstr-let-ary-ptrn-elision.js         | 2 +-
 .../async-gen-dstr-let-async-ary-ptrn-elision-exhausted.js      | 2 +-
 .../for-await-of/async-gen-dstr-let-async-ary-ptrn-elision.js   | 2 +-
 .../async-gen-dstr-var-ary-ptrn-elision-exhausted.js            | 2 +-
 .../async-gen-dstr-var-ary-ptrn-elision-step-err.js             | 2 +-
 .../for-await-of/async-gen-dstr-var-ary-ptrn-elision.js         | 2 +-
 .../async-gen-dstr-var-async-ary-ptrn-elision-exhausted.js      | 2 +-
 .../for-await-of/async-gen-dstr-var-async-ary-ptrn-elision.js   | 2 +-
 .../statements/for-of/dstr-const-ary-ptrn-elision-exhausted.js  | 2 +-
 .../statements/for-of/dstr-const-ary-ptrn-elision-step-err.js   | 2 +-
 test/language/statements/for-of/dstr-const-ary-ptrn-elision.js  | 2 +-
 .../statements/for-of/dstr-let-ary-ptrn-elision-exhausted.js    | 2 +-
 .../statements/for-of/dstr-let-ary-ptrn-elision-step-err.js     | 2 +-
 test/language/statements/for-of/dstr-let-ary-ptrn-elision.js    | 2 +-
 .../statements/for-of/dstr-var-ary-ptrn-elision-exhausted.js    | 2 +-
 .../statements/for-of/dstr-var-ary-ptrn-elision-step-err.js     | 2 +-
 test/language/statements/for-of/dstr-var-ary-ptrn-elision.js    | 2 +-
 .../statements/for/dstr-const-ary-ptrn-elision-exhausted.js     | 2 +-
 .../statements/for/dstr-const-ary-ptrn-elision-step-err.js      | 2 +-
 test/language/statements/for/dstr-const-ary-ptrn-elision.js     | 2 +-
 .../statements/for/dstr-let-ary-ptrn-elision-exhausted.js       | 2 +-
 .../statements/for/dstr-let-ary-ptrn-elision-step-err.js        | 2 +-
 test/language/statements/for/dstr-let-ary-ptrn-elision.js       | 2 +-
 .../statements/for/dstr-var-ary-ptrn-elision-exhausted.js       | 2 +-
 .../statements/for/dstr-var-ary-ptrn-elision-step-err.js        | 2 +-
 test/language/statements/for/dstr-var-ary-ptrn-elision.js       | 2 +-
 .../statements/function/dstr-ary-ptrn-elision-exhausted.js      | 2 +-
 .../statements/function/dstr-ary-ptrn-elision-step-err.js       | 2 +-
 test/language/statements/function/dstr-ary-ptrn-elision.js      | 2 +-
 .../statements/function/dstr-dflt-ary-ptrn-elision-exhausted.js | 2 +-
 .../statements/function/dstr-dflt-ary-ptrn-elision-step-err.js  | 2 +-
 test/language/statements/function/dstr-dflt-ary-ptrn-elision.js | 2 +-
 .../statements/generators/dstr-ary-ptrn-elision-exhausted.js    | 2 +-
 .../statements/generators/dstr-ary-ptrn-elision-step-err.js     | 2 +-
 test/language/statements/generators/dstr-ary-ptrn-elision.js    | 2 +-
 .../generators/dstr-dflt-ary-ptrn-elision-exhausted.js          | 2 +-
 .../generators/dstr-dflt-ary-ptrn-elision-step-err.js           | 2 +-
 .../statements/generators/dstr-dflt-ary-ptrn-elision.js         | 2 +-
 test/language/statements/let/dstr-ary-ptrn-elision-exhausted.js | 2 +-
 test/language/statements/let/dstr-ary-ptrn-elision-step-err.js  | 2 +-
 test/language/statements/let/dstr-ary-ptrn-elision.js           | 2 +-
 test/language/statements/try/dstr-ary-ptrn-elision-exhausted.js | 2 +-
 test/language/statements/try/dstr-ary-ptrn-elision-step-err.js  | 2 +-
 test/language/statements/try/dstr-ary-ptrn-elision.js           | 2 +-
 .../statements/variable/dstr-ary-ptrn-elision-exhausted.js      | 2 +-
 .../statements/variable/dstr-ary-ptrn-elision-step-err.js       | 2 +-
 test/language/statements/variable/dstr-ary-ptrn-elision.js      | 2 +-
 198 files changed, 198 insertions(+), 198 deletions(-)

diff --git a/test/language/expressions/arrow-function/dstr-ary-ptrn-elision-exhausted.js b/test/language/expressions/arrow-function/dstr-ary-ptrn-elision-exhausted.js
index 074291436c..7f787287dd 100644
--- a/test/language/expressions/arrow-function/dstr-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/arrow-function/dstr-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (arrow function expression)
 esid: sec-arrow-function-definitions-runtime-semantics-evaluation
 es6id: 14.2.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ArrowFunction : ArrowParameters => ConciseBody
diff --git a/test/language/expressions/arrow-function/dstr-ary-ptrn-elision-step-err.js b/test/language/expressions/arrow-function/dstr-ary-ptrn-elision-step-err.js
index f3eeca9e53..5365ec86bf 100644
--- a/test/language/expressions/arrow-function/dstr-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/arrow-function/dstr-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (arrow function expression)
 esid: sec-arrow-function-definitions-runtime-semantics-evaluation
 es6id: 14.2.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ArrowFunction : ArrowParameters => ConciseBody
diff --git a/test/language/expressions/arrow-function/dstr-ary-ptrn-elision.js b/test/language/expressions/arrow-function/dstr-ary-ptrn-elision.js
index 980ad2f17a..4d1e62d872 100644
--- a/test/language/expressions/arrow-function/dstr-ary-ptrn-elision.js
+++ b/test/language/expressions/arrow-function/dstr-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (arrow function expression)
 esid: sec-arrow-function-definitions-runtime-semantics-evaluation
 es6id: 14.2.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ArrowFunction : ArrowParameters => ConciseBody
diff --git a/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elision-exhausted.js b/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elision-exhausted.js
index eaa6898ad5..128d345032 100644
--- a/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (arrow function expression (default parameter))
 esid: sec-arrow-function-definitions-runtime-semantics-evaluation
 es6id: 14.2.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ArrowFunction : ArrowParameters => ConciseBody
diff --git a/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elision-step-err.js b/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elision-step-err.js
index 4d7f207220..24bf233ab2 100644
--- a/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (arrow function expression (default parameter))
 esid: sec-arrow-function-definitions-runtime-semantics-evaluation
 es6id: 14.2.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ArrowFunction : ArrowParameters => ConciseBody
diff --git a/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elision.js b/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elision.js
index 11c566aa03..65e19b619b 100644
--- a/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elision.js
+++ b/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (arrow function expression (default parameter))
 esid: sec-arrow-function-definitions-runtime-semantics-evaluation
 es6id: 14.2.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ArrowFunction : ArrowParameters => ConciseBody
diff --git a/test/language/expressions/async-generator/dstr-ary-ptrn-elision-exhausted.js b/test/language/expressions/async-generator/dstr-ary-ptrn-elision-exhausted.js
index 89b330aa6c..c252dcc04b 100644
--- a/test/language/expressions/async-generator/dstr-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/async-generator/dstr-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (async generator function expression)
 esid: sec-asyncgenerator-definitions-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
diff --git a/test/language/expressions/async-generator/dstr-ary-ptrn-elision-step-err.js b/test/language/expressions/async-generator/dstr-ary-ptrn-elision-step-err.js
index e4354ddc2a..bb5efec203 100644
--- a/test/language/expressions/async-generator/dstr-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/async-generator/dstr-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (async generator function expression)
 esid: sec-asyncgenerator-definitions-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
diff --git a/test/language/expressions/async-generator/dstr-ary-ptrn-elision.js b/test/language/expressions/async-generator/dstr-ary-ptrn-elision.js
index 9c6a167c42..7bb24e0d81 100644
--- a/test/language/expressions/async-generator/dstr-ary-ptrn-elision.js
+++ b/test/language/expressions/async-generator/dstr-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (async generator function expression)
 esid: sec-asyncgenerator-definitions-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
diff --git a/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elision-exhausted.js b/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elision-exhausted.js
index e29cea22c5..e4d1f8d47a 100644
--- a/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (async generator function expression (default parameter))
 esid: sec-asyncgenerator-definitions-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
diff --git a/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elision-step-err.js b/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elision-step-err.js
index dc9240b50e..20e919fd7c 100644
--- a/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (async generator function expression (default parameter))
 esid: sec-asyncgenerator-definitions-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
diff --git a/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elision.js b/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elision.js
index 8f6e7e5739..6bcdc0d4c4 100644
--- a/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elision.js
+++ b/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (async generator function expression (default parameter))
 esid: sec-asyncgenerator-definitions-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
diff --git a/test/language/expressions/async-generator/dstr-named-ary-ptrn-elision-exhausted.js b/test/language/expressions/async-generator/dstr-named-ary-ptrn-elision-exhausted.js
index a3631c806a..9c819f482e 100644
--- a/test/language/expressions/async-generator/dstr-named-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/async-generator/dstr-named-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (async generator named function expression)
 esid: sec-asyncgenerator-definitions-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
diff --git a/test/language/expressions/async-generator/dstr-named-ary-ptrn-elision-step-err.js b/test/language/expressions/async-generator/dstr-named-ary-ptrn-elision-step-err.js
index 2ad0616eed..665b3e5315 100644
--- a/test/language/expressions/async-generator/dstr-named-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/async-generator/dstr-named-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (async generator named function expression)
 esid: sec-asyncgenerator-definitions-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
diff --git a/test/language/expressions/async-generator/dstr-named-ary-ptrn-elision.js b/test/language/expressions/async-generator/dstr-named-ary-ptrn-elision.js
index 828bd04810..c1e3ea3a3f 100644
--- a/test/language/expressions/async-generator/dstr-named-ary-ptrn-elision.js
+++ b/test/language/expressions/async-generator/dstr-named-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (async generator named function expression)
 esid: sec-asyncgenerator-definitions-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
diff --git a/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elision-exhausted.js b/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elision-exhausted.js
index 0e18fe2264..f3256e54fd 100644
--- a/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (async generator named function expression (default parameter))
 esid: sec-asyncgenerator-definitions-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
diff --git a/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elision-step-err.js b/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elision-step-err.js
index 11b83c66f1..879cd21e19 100644
--- a/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (async generator named function expression (default parameter))
 esid: sec-asyncgenerator-definitions-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
diff --git a/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elision.js b/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elision.js
index c201a07490..f5df74ae6e 100644
--- a/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elision.js
+++ b/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (async generator named function expression (default parameter))
 esid: sec-asyncgenerator-definitions-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
diff --git a/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elision-exhausted.js b/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elision-exhausted.js
index 5125b9d76c..3abcc00877 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elision-step-err.js b/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elision-step-err.js
index 473d000632..897f3d940c 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elision.js b/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elision.js
index 6bf1561795..f8bc342e49 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elision.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elision-exhausted.js b/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elision-exhausted.js
index b5cadb5cb2..7236ba4612 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (class expression async generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elision-step-err.js b/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elision-step-err.js
index be7acf1465..e98a21471e 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (class expression async generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elision.js b/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elision.js
index aebcea6c50..e36b580ffe 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elision.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (class expression async generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elision-exhausted.js b/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elision-exhausted.js
index 499b7d4cfd..81cce90408 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (static class expression async generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elision-step-err.js b/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elision-step-err.js
index 179569d107..80f619a84a 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (static class expression async generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elision.js b/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elision.js
index 63c68b98b7..f074edf4bd 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elision.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (static class expression async generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js
index 6fe69aa30b..be583b0ff0 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (static class expression async generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision-step-err.js b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision-step-err.js
index 0a066f54b7..d56f9ac663 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (static class expression async generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision.js b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision.js
index cc43b8d24e..6cdc7bc3bc 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (static class expression async generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elision-exhausted.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elision-exhausted.js
index 67e26599d7..30e6815328 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elision-step-err.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elision-step-err.js
index 16e10d3523..e4db26c12e 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elision.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elision.js
index c3d533fa9e..29bf2d261b 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elision.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elision-exhausted.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elision-exhausted.js
index 36949a0289..7fb4edea93 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elision-step-err.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elision-step-err.js
index cf54109d27..ec9a78a71d 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elision.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elision.js
index af13c56752..93f7dab466 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elision.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elision-exhausted.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elision-exhausted.js
index ffb8a4d5e1..6d76698615 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elision-step-err.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elision-step-err.js
index a17525fa90..f5832bfeff 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elision.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elision.js
index 6cb62672ae..5dda7e9bef 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elision.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js
index 1da4f38388..8e3de7f14e 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-step-err.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-step-err.js
index 5c5ae10c2e..a8b1d13fac 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elision.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elision.js
index b86cbe98e3..8b08891a9c 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elision.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-meth-ary-ptrn-elision-exhausted.js b/test/language/expressions/class/dstr-meth-ary-ptrn-elision-exhausted.js
index 1d863918fa..73f13cf6e1 100644
--- a/test/language/expressions/class/dstr-meth-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/class/dstr-meth-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-meth-ary-ptrn-elision-step-err.js b/test/language/expressions/class/dstr-meth-ary-ptrn-elision-step-err.js
index 72ef47ce72..fcd6b3851f 100644
--- a/test/language/expressions/class/dstr-meth-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/class/dstr-meth-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-meth-ary-ptrn-elision.js b/test/language/expressions/class/dstr-meth-ary-ptrn-elision.js
index 56f4fc7fe7..abd4d561b0 100644
--- a/test/language/expressions/class/dstr-meth-ary-ptrn-elision.js
+++ b/test/language/expressions/class/dstr-meth-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elision-exhausted.js b/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elision-exhausted.js
index e77ba40411..9d790c1684 100644
--- a/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elision-step-err.js b/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elision-step-err.js
index df36675334..a82366f01b 100644
--- a/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elision.js b/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elision.js
index d3ef75c8cd..92d9e99186 100644
--- a/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elision.js
+++ b/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-meth-static-ary-ptrn-elision-exhausted.js b/test/language/expressions/class/dstr-meth-static-ary-ptrn-elision-exhausted.js
index b04d806c3b..b56c5672b0 100644
--- a/test/language/expressions/class/dstr-meth-static-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/class/dstr-meth-static-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (static class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-meth-static-ary-ptrn-elision-step-err.js b/test/language/expressions/class/dstr-meth-static-ary-ptrn-elision-step-err.js
index 3e3d39d392..00d8e12396 100644
--- a/test/language/expressions/class/dstr-meth-static-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/class/dstr-meth-static-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (static class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-meth-static-ary-ptrn-elision.js b/test/language/expressions/class/dstr-meth-static-ary-ptrn-elision.js
index f9c5a0657f..cd28531e61 100644
--- a/test/language/expressions/class/dstr-meth-static-ary-ptrn-elision.js
+++ b/test/language/expressions/class/dstr-meth-static-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (static class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elision-exhausted.js b/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elision-exhausted.js
index 49d6a447c6..33a66ca1e8 100644
--- a/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (static class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elision-step-err.js b/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elision-step-err.js
index 79de22c30b..1ced956ea7 100644
--- a/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (static class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elision.js b/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elision.js
index b98061594e..7e8639e6e1 100644
--- a/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elision.js
+++ b/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (static class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/function/dstr-ary-ptrn-elision-exhausted.js b/test/language/expressions/function/dstr-ary-ptrn-elision-exhausted.js
index 289ebbc62a..ca6604c0b0 100644
--- a/test/language/expressions/function/dstr-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/function/dstr-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (function expression)
 esid: sec-function-definitions-runtime-semantics-evaluation
 es6id: 14.1.20
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     FunctionExpression : function ( FormalParameters ) { FunctionBody }
diff --git a/test/language/expressions/function/dstr-ary-ptrn-elision-step-err.js b/test/language/expressions/function/dstr-ary-ptrn-elision-step-err.js
index 5ff03c127e..806e270496 100644
--- a/test/language/expressions/function/dstr-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/function/dstr-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (function expression)
 esid: sec-function-definitions-runtime-semantics-evaluation
 es6id: 14.1.20
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     FunctionExpression : function ( FormalParameters ) { FunctionBody }
diff --git a/test/language/expressions/function/dstr-ary-ptrn-elision.js b/test/language/expressions/function/dstr-ary-ptrn-elision.js
index 633956ebce..60c53452d1 100644
--- a/test/language/expressions/function/dstr-ary-ptrn-elision.js
+++ b/test/language/expressions/function/dstr-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (function expression)
 esid: sec-function-definitions-runtime-semantics-evaluation
 es6id: 14.1.20
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     FunctionExpression : function ( FormalParameters ) { FunctionBody }
diff --git a/test/language/expressions/function/dstr-dflt-ary-ptrn-elision-exhausted.js b/test/language/expressions/function/dstr-dflt-ary-ptrn-elision-exhausted.js
index 01ccef9c51..b4474303eb 100644
--- a/test/language/expressions/function/dstr-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/function/dstr-dflt-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (function expression (default parameter))
 esid: sec-function-definitions-runtime-semantics-evaluation
 es6id: 14.1.20
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     FunctionExpression : function ( FormalParameters ) { FunctionBody }
diff --git a/test/language/expressions/function/dstr-dflt-ary-ptrn-elision-step-err.js b/test/language/expressions/function/dstr-dflt-ary-ptrn-elision-step-err.js
index a64145b66c..c7a73d34b2 100644
--- a/test/language/expressions/function/dstr-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/function/dstr-dflt-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (function expression (default parameter))
 esid: sec-function-definitions-runtime-semantics-evaluation
 es6id: 14.1.20
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     FunctionExpression : function ( FormalParameters ) { FunctionBody }
diff --git a/test/language/expressions/function/dstr-dflt-ary-ptrn-elision.js b/test/language/expressions/function/dstr-dflt-ary-ptrn-elision.js
index f176ccdcc2..1fd4336db6 100644
--- a/test/language/expressions/function/dstr-dflt-ary-ptrn-elision.js
+++ b/test/language/expressions/function/dstr-dflt-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (function expression (default parameter))
 esid: sec-function-definitions-runtime-semantics-evaluation
 es6id: 14.1.20
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     FunctionExpression : function ( FormalParameters ) { FunctionBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elision-exhausted.js b/test/language/expressions/generators/dstr-ary-ptrn-elision-exhausted.js
index fee364e7b8..c45c7572ea 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elision-step-err.js b/test/language/expressions/generators/dstr-ary-ptrn-elision-step-err.js
index d4f621405f..62703dc94d 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elision.js b/test/language/expressions/generators/dstr-ary-ptrn-elision.js
index 07276b7062..b52907ca9c 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elision.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elision-exhausted.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elision-exhausted.js
index b760fc16b8..bd657aef9a 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elision-step-err.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elision-step-err.js
index e563fffc7e..2212afd397 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elision.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elision.js
index 3e2d66a56d..3f516d41fe 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elision.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elision-exhausted.js b/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elision-exhausted.js
index d3ff1150a5..2d79b3b835 100644
--- a/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (async generator method)
 esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorMethod :
diff --git a/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elision-step-err.js b/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elision-step-err.js
index c8a474b52b..b44dfe5320 100644
--- a/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (async generator method)
 esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 info: |
     AsyncGeneratorMethod :
diff --git a/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elision.js b/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elision.js
index f9376b8460..95396c8fe9 100644
--- a/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elision.js
+++ b/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (async generator method)
 esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorMethod :
diff --git a/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elision-exhausted.js b/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elision-exhausted.js
index 7afec8813c..9add5e5996 100644
--- a/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (async generator method (default parameter))
 esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorMethod :
diff --git a/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elision-step-err.js b/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elision-step-err.js
index cb2a488f24..a563eac320 100644
--- a/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (async generator method (default parameter))
 esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 info: |
     AsyncGeneratorMethod :
diff --git a/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elision.js b/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elision.js
index e235d9fa98..e21680d37e 100644
--- a/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elision.js
+++ b/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (async generator method (default parameter))
 esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elision-exhausted.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elision-exhausted.js
index b2e35e6c31..0e3f4395e8 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elision-step-err.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elision-step-err.js
index 3f936dd66b..69f5873785 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elision.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elision.js
index 739a9c5472..ecd22c0162 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elision.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elision-exhausted.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elision-exhausted.js
index d33d0d77f0..5d03df55d8 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elision-step-err.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elision-step-err.js
index 99790d0dea..c4edcbe4ca 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elision.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elision.js
index ce2856ff0d..f45bb72bba 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elision.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-meth-ary-ptrn-elision-exhausted.js b/test/language/expressions/object/dstr-meth-ary-ptrn-elision-exhausted.js
index ebf33ed271..c5da83cf6d 100644
--- a/test/language/expressions/object/dstr-meth-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/object/dstr-meth-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (method)
 esid: sec-runtime-semantics-definemethod
 es6id: 14.3.8
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody }
diff --git a/test/language/expressions/object/dstr-meth-ary-ptrn-elision-step-err.js b/test/language/expressions/object/dstr-meth-ary-ptrn-elision-step-err.js
index 34e771d115..29a4efb530 100644
--- a/test/language/expressions/object/dstr-meth-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/object/dstr-meth-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (method)
 esid: sec-runtime-semantics-definemethod
 es6id: 14.3.8
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody }
diff --git a/test/language/expressions/object/dstr-meth-ary-ptrn-elision.js b/test/language/expressions/object/dstr-meth-ary-ptrn-elision.js
index 9a70d838c8..05104b4ad8 100644
--- a/test/language/expressions/object/dstr-meth-ary-ptrn-elision.js
+++ b/test/language/expressions/object/dstr-meth-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (method)
 esid: sec-runtime-semantics-definemethod
 es6id: 14.3.8
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody }
diff --git a/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elision-exhausted.js b/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elision-exhausted.js
index 99f056699f..048350e583 100644
--- a/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (method (default parameter))
 esid: sec-runtime-semantics-definemethod
 es6id: 14.3.8
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody }
diff --git a/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elision-step-err.js b/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elision-step-err.js
index ff5ef6865b..c88def7981 100644
--- a/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (method (default parameter))
 esid: sec-runtime-semantics-definemethod
 es6id: 14.3.8
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody }
diff --git a/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elision.js b/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elision.js
index c896bb64d9..a7e10ac4fa 100644
--- a/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elision.js
+++ b/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (method (default parameter))
 esid: sec-runtime-semantics-definemethod
 es6id: 14.3.8
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody }
diff --git a/test/language/statements/async-generator/dstr-ary-ptrn-elision-exhausted.js b/test/language/statements/async-generator/dstr-ary-ptrn-elision-exhausted.js
index ba34f1af90..dae90bc6a2 100644
--- a/test/language/statements/async-generator/dstr-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/async-generator/dstr-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (async generator function declaration)
 esid: sec-asyncgenerator-definitions-instantiatefunctionobject
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
diff --git a/test/language/statements/async-generator/dstr-ary-ptrn-elision-step-err.js b/test/language/statements/async-generator/dstr-ary-ptrn-elision-step-err.js
index a561463c45..1a82faf7d9 100644
--- a/test/language/statements/async-generator/dstr-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/async-generator/dstr-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (async generator function declaration)
 esid: sec-asyncgenerator-definitions-instantiatefunctionobject
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 info: |
     AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
diff --git a/test/language/statements/async-generator/dstr-ary-ptrn-elision.js b/test/language/statements/async-generator/dstr-ary-ptrn-elision.js
index 563736af2a..ffc54383e8 100644
--- a/test/language/statements/async-generator/dstr-ary-ptrn-elision.js
+++ b/test/language/statements/async-generator/dstr-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (async generator function declaration)
 esid: sec-asyncgenerator-definitions-instantiatefunctionobject
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
diff --git a/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elision-exhausted.js b/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elision-exhausted.js
index afdb017e33..50b09159b5 100644
--- a/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (async generator function declaration (default parameter))
 esid: sec-asyncgenerator-definitions-instantiatefunctionobject
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
diff --git a/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elision-step-err.js b/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elision-step-err.js
index 4c0afc21a3..5e725cb170 100644
--- a/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (async generator function declaration (default parameter))
 esid: sec-asyncgenerator-definitions-instantiatefunctionobject
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 info: |
     AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
diff --git a/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elision.js b/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elision.js
index 0e869d93df..9ea3c3165e 100644
--- a/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elision.js
+++ b/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (async generator function declaration (default parameter))
 esid: sec-asyncgenerator-definitions-instantiatefunctionobject
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
diff --git a/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elision-exhausted.js b/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elision-exhausted.js
index d21002a449..c952e2e1d8 100644
--- a/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elision-step-err.js b/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elision-step-err.js
index 6d0fd3b4f5..007b5c5cb6 100644
--- a/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elision.js b/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elision.js
index 1b5f76913d..903da16f87 100644
--- a/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elision.js
+++ b/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elision-exhausted.js b/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elision-exhausted.js
index 1cb23e5ee9..cecf6f98dd 100644
--- a/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (class expression async generator method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elision-step-err.js b/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elision-step-err.js
index 1047036c55..205e9868b6 100644
--- a/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (class expression async generator method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elision.js b/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elision.js
index 5739c3934f..0bc5ea0e38 100644
--- a/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elision.js
+++ b/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (class expression async generator method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elision-exhausted.js b/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elision-exhausted.js
index 4a1a7c44dd..9ab316e25e 100644
--- a/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (static class expression async generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elision-step-err.js b/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elision-step-err.js
index a92bbcb7cf..93c6e98f4a 100644
--- a/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (static class expression async generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elision.js b/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elision.js
index 3c774aaec4..598b5f2f2d 100644
--- a/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elision.js
+++ b/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (static class expression async generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js b/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js
index 9cae8854d2..7487e582d6 100644
--- a/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (static class expression async generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision-step-err.js b/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision-step-err.js
index 09fa821c2c..542ac06e39 100644
--- a/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (static class expression async generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision.js b/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision.js
index dc16bba938..240ef9b922 100644
--- a/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision.js
+++ b/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (static class expression async generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [generator, async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elision-exhausted.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elision-exhausted.js
index 4697731e6f..ea9bc54ca2 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elision-step-err.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elision-step-err.js
index 1a685fe8cd..a58629418a 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elision.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elision.js
index e79d606bb4..3597648e6f 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elision.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elision-exhausted.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elision-exhausted.js
index 583ccd71f2..79cc82f5ef 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elision-step-err.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elision-step-err.js
index b39cc0ffa4..02fd5edfcd 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elision.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elision.js
index 2b30427238..30c42a55d4 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elision.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elision-exhausted.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elision-exhausted.js
index fa6af77d5d..6d326cc350 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elision-step-err.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elision-step-err.js
index 8630543945..43dd3ab3c9 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elision.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elision.js
index 10c93757a7..cc2cd6f113 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elision.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js
index 5e58e7a430..546f7ff051 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-step-err.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-step-err.js
index cfbc6d536d..7609bd39e4 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elision.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elision.js
index ae16773145..06293e0e4b 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elision.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-meth-ary-ptrn-elision-exhausted.js b/test/language/statements/class/dstr-meth-ary-ptrn-elision-exhausted.js
index 4eb40ddf82..0c2ba0da81 100644
--- a/test/language/statements/class/dstr-meth-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/class/dstr-meth-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (class expression method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-meth-ary-ptrn-elision-step-err.js b/test/language/statements/class/dstr-meth-ary-ptrn-elision-step-err.js
index 846d902a4a..6cf1396955 100644
--- a/test/language/statements/class/dstr-meth-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/class/dstr-meth-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (class expression method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-meth-ary-ptrn-elision.js b/test/language/statements/class/dstr-meth-ary-ptrn-elision.js
index e5b6a98d61..0f93c6a677 100644
--- a/test/language/statements/class/dstr-meth-ary-ptrn-elision.js
+++ b/test/language/statements/class/dstr-meth-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (class expression method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elision-exhausted.js b/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elision-exhausted.js
index e6ca887d66..43587987ea 100644
--- a/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (class expression method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elision-step-err.js b/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elision-step-err.js
index be34b4068e..3c5baeb98b 100644
--- a/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (class expression method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elision.js b/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elision.js
index 25cebd605f..fb0ff7e8d2 100644
--- a/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elision.js
+++ b/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (class expression method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-meth-static-ary-ptrn-elision-exhausted.js b/test/language/statements/class/dstr-meth-static-ary-ptrn-elision-exhausted.js
index 341737d3b4..1e788ab8b9 100644
--- a/test/language/statements/class/dstr-meth-static-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/class/dstr-meth-static-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (static class expression method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-meth-static-ary-ptrn-elision-step-err.js b/test/language/statements/class/dstr-meth-static-ary-ptrn-elision-step-err.js
index 724413b934..b9fa48eb4a 100644
--- a/test/language/statements/class/dstr-meth-static-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/class/dstr-meth-static-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (static class expression method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-meth-static-ary-ptrn-elision.js b/test/language/statements/class/dstr-meth-static-ary-ptrn-elision.js
index 61390c32d9..c3965b3790 100644
--- a/test/language/statements/class/dstr-meth-static-ary-ptrn-elision.js
+++ b/test/language/statements/class/dstr-meth-static-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (static class expression method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elision-exhausted.js b/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elision-exhausted.js
index e011176909..dd79ece0fc 100644
--- a/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (static class expression method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elision-step-err.js b/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elision-step-err.js
index e4b4b56762..7519f3c025 100644
--- a/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (static class expression method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elision.js b/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elision.js
index d090623ce8..831b8f4248 100644
--- a/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elision.js
+++ b/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (static class expression method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/const/dstr-ary-ptrn-elision-exhausted.js b/test/language/statements/const/dstr-ary-ptrn-elision-exhausted.js
index d6ea5bf0dd..a79b36a611 100644
--- a/test/language/statements/const/dstr-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/const/dstr-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (`const` statement)
 esid: sec-let-and-const-declarations-runtime-semantics-evaluation
 es6id: 13.3.1.4
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     LexicalBinding : BindingPattern Initializer
diff --git a/test/language/statements/const/dstr-ary-ptrn-elision-step-err.js b/test/language/statements/const/dstr-ary-ptrn-elision-step-err.js
index 55ee2c5299..e0f3d3bc18 100644
--- a/test/language/statements/const/dstr-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/const/dstr-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (`const` statement)
 esid: sec-let-and-const-declarations-runtime-semantics-evaluation
 es6id: 13.3.1.4
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     LexicalBinding : BindingPattern Initializer
diff --git a/test/language/statements/const/dstr-ary-ptrn-elision.js b/test/language/statements/const/dstr-ary-ptrn-elision.js
index 46a83ebde9..b75006616f 100644
--- a/test/language/statements/const/dstr-ary-ptrn-elision.js
+++ b/test/language/statements/const/dstr-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (`const` statement)
 esid: sec-let-and-const-declarations-runtime-semantics-evaluation
 es6id: 13.3.1.4
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     LexicalBinding : BindingPattern Initializer
diff --git a/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elision-exhausted.js b/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elision-exhausted.js
index fcf6703d85..5a15aaf419 100644
--- a/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elision-step-err.js b/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elision-step-err.js
index e331b1f4c7..344e90c1af 100644
--- a/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elision.js b/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elision.js
index 22d928d0cb..0f3803c30e 100644
--- a/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elision.js
+++ b/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elision-exhausted.js b/test/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elision-exhausted.js
index 217d730d41..c162d290f0 100644
--- a/test/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elision.js b/test/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elision.js
index fa2c4c81a8..bb850a835a 100644
--- a/test/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elision.js
+++ b/test/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elision-exhausted.js b/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elision-exhausted.js
index 2e52270791..258e53a704 100644
--- a/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elision-step-err.js b/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elision-step-err.js
index a49aaefa13..4d92ad5957 100644
--- a/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elision.js b/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elision.js
index 2e27366924..fb3dad2f63 100644
--- a/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elision.js
+++ b/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elision-exhausted.js b/test/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elision-exhausted.js
index 427695e835..76ae3f805c 100644
--- a/test/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elision.js b/test/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elision.js
index 8c52cf0409..11b04a9607 100644
--- a/test/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elision.js
+++ b/test/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elision-exhausted.js b/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elision-exhausted.js
index 4c2c2b890a..c8b06c2199 100644
--- a/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elision-step-err.js b/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elision-step-err.js
index 489f1881c9..b4f778ae9b 100644
--- a/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elision.js b/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elision.js
index df265c9f83..e0bdcaadb7 100644
--- a/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elision.js
+++ b/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elision-exhausted.js b/test/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elision-exhausted.js
index a2adcebcc1..88bee30f04 100644
--- a/test/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elision.js b/test/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elision.js
index c006949e5f..2a393f1d55 100644
--- a/test/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elision.js
+++ b/test/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision-exhausted.js b/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision-exhausted.js
index 3fb2a0cd32..0aa5199b55 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision-step-err.js b/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision-step-err.js
index c20cb981a7..d57916c924 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision.js b/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision.js
index 903528725b..3fecc668b9 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elision-exhausted.js b/test/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elision-exhausted.js
index 3cb9c38207..45fd5cb071 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elision.js b/test/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elision.js
index d30e65524a..db7c0a4cf7 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elision.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision-exhausted.js b/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision-exhausted.js
index 27aca3cdf8..82918f6a51 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision-step-err.js b/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision-step-err.js
index 5a7ce09722..0aa6181afa 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision.js b/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision.js
index 1a70969e18..e7ec45009b 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elision-exhausted.js b/test/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elision-exhausted.js
index 97f6953fd5..2aca70ef6d 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elision.js b/test/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elision.js
index 250175f264..09f9dea632 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elision.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision-exhausted.js b/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision-exhausted.js
index 2913f372be..164c740107 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision-step-err.js b/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision-step-err.js
index 3a97a7e5d9..a547d2e78f 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision-step-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator and forwards abrupt completions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision.js b/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision.js
index b85a18d081..cfc89b38fb 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elision-exhausted.js b/test/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elision-exhausted.js
index 1dea1435ff..dce8f64b32 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elision-exhausted.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision accepts exhausted iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elision.js b/test/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elision.js
index 02cc149bec..6fd1dedeb4 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elision.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elision.js
@@ -4,7 +4,7 @@
 /*---
 description: Elision advances iterator (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [generator, destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-of/dstr-const-ary-ptrn-elision-exhausted.js b/test/language/statements/for-of/dstr-const-ary-ptrn-elision-exhausted.js
index c251b3d490..bb8d4c917d 100644
--- a/test/language/statements/for-of/dstr-const-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for-of/dstr-const-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-of/dstr-const-ary-ptrn-elision-step-err.js b/test/language/statements/for-of/dstr-const-ary-ptrn-elision-step-err.js
index 40fe0d7006..a1b248f37f 100644
--- a/test/language/statements/for-of/dstr-const-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/for-of/dstr-const-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-of/dstr-const-ary-ptrn-elision.js b/test/language/statements/for-of/dstr-const-ary-ptrn-elision.js
index cf284bbe7e..65ddc34fb0 100644
--- a/test/language/statements/for-of/dstr-const-ary-ptrn-elision.js
+++ b/test/language/statements/for-of/dstr-const-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-of/dstr-let-ary-ptrn-elision-exhausted.js b/test/language/statements/for-of/dstr-let-ary-ptrn-elision-exhausted.js
index db7dbe3398..094d02becf 100644
--- a/test/language/statements/for-of/dstr-let-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for-of/dstr-let-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-of/dstr-let-ary-ptrn-elision-step-err.js b/test/language/statements/for-of/dstr-let-ary-ptrn-elision-step-err.js
index 4893e49cb3..d858d54a88 100644
--- a/test/language/statements/for-of/dstr-let-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/for-of/dstr-let-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-of/dstr-let-ary-ptrn-elision.js b/test/language/statements/for-of/dstr-let-ary-ptrn-elision.js
index 7112cc8eed..7278bb7892 100644
--- a/test/language/statements/for-of/dstr-let-ary-ptrn-elision.js
+++ b/test/language/statements/for-of/dstr-let-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-of/dstr-var-ary-ptrn-elision-exhausted.js b/test/language/statements/for-of/dstr-var-ary-ptrn-elision-exhausted.js
index 35ffa8376f..f2f77c6e4d 100644
--- a/test/language/statements/for-of/dstr-var-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for-of/dstr-var-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-of/dstr-var-ary-ptrn-elision-step-err.js b/test/language/statements/for-of/dstr-var-ary-ptrn-elision-step-err.js
index ca32f99e77..b3efd24900 100644
--- a/test/language/statements/for-of/dstr-var-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/for-of/dstr-var-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-of/dstr-var-ary-ptrn-elision.js b/test/language/statements/for-of/dstr-var-ary-ptrn-elision.js
index 4ac4e7e809..846e7b5e46 100644
--- a/test/language/statements/for-of/dstr-var-ary-ptrn-elision.js
+++ b/test/language/statements/for-of/dstr-var-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for/dstr-const-ary-ptrn-elision-exhausted.js b/test/language/statements/for/dstr-const-ary-ptrn-elision-exhausted.js
index 1d83640a4e..d8d5564287 100644
--- a/test/language/statements/for/dstr-const-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for/dstr-const-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for/dstr-const-ary-ptrn-elision-step-err.js b/test/language/statements/for/dstr-const-ary-ptrn-elision-step-err.js
index bee4d2950c..721fc05c31 100644
--- a/test/language/statements/for/dstr-const-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/for/dstr-const-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for/dstr-const-ary-ptrn-elision.js b/test/language/statements/for/dstr-const-ary-ptrn-elision.js
index 1774609e30..5cd9916ec4 100644
--- a/test/language/statements/for/dstr-const-ary-ptrn-elision.js
+++ b/test/language/statements/for/dstr-const-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for/dstr-let-ary-ptrn-elision-exhausted.js b/test/language/statements/for/dstr-let-ary-ptrn-elision-exhausted.js
index 8cd658c633..c7f04ff477 100644
--- a/test/language/statements/for/dstr-let-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for/dstr-let-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for/dstr-let-ary-ptrn-elision-step-err.js b/test/language/statements/for/dstr-let-ary-ptrn-elision-step-err.js
index 3a7eb7afd2..7bb3f648f5 100644
--- a/test/language/statements/for/dstr-let-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/for/dstr-let-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for/dstr-let-ary-ptrn-elision.js b/test/language/statements/for/dstr-let-ary-ptrn-elision.js
index 9f6110b819..f7680a5576 100644
--- a/test/language/statements/for/dstr-let-ary-ptrn-elision.js
+++ b/test/language/statements/for/dstr-let-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for/dstr-var-ary-ptrn-elision-exhausted.js b/test/language/statements/for/dstr-var-ary-ptrn-elision-exhausted.js
index 43accce902..2962552fb2 100644
--- a/test/language/statements/for/dstr-var-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/for/dstr-var-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for/dstr-var-ary-ptrn-elision-step-err.js b/test/language/statements/for/dstr-var-ary-ptrn-elision-step-err.js
index db271aa9eb..4597934bb0 100644
--- a/test/language/statements/for/dstr-var-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/for/dstr-var-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for/dstr-var-ary-ptrn-elision.js b/test/language/statements/for/dstr-var-ary-ptrn-elision.js
index b557a8204b..16b36d1dd6 100644
--- a/test/language/statements/for/dstr-var-ary-ptrn-elision.js
+++ b/test/language/statements/for/dstr-var-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/function/dstr-ary-ptrn-elision-exhausted.js b/test/language/statements/function/dstr-ary-ptrn-elision-exhausted.js
index 5c7bf9ed0a..29b78e9d64 100644
--- a/test/language/statements/function/dstr-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/function/dstr-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (function declaration)
 esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.1.19
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     FunctionDeclaration :
diff --git a/test/language/statements/function/dstr-ary-ptrn-elision-step-err.js b/test/language/statements/function/dstr-ary-ptrn-elision-step-err.js
index 9007aa21b4..140394c318 100644
--- a/test/language/statements/function/dstr-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/function/dstr-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (function declaration)
 esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.1.19
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     FunctionDeclaration :
diff --git a/test/language/statements/function/dstr-ary-ptrn-elision.js b/test/language/statements/function/dstr-ary-ptrn-elision.js
index f909886d89..9aeb8857b2 100644
--- a/test/language/statements/function/dstr-ary-ptrn-elision.js
+++ b/test/language/statements/function/dstr-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (function declaration)
 esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.1.19
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     FunctionDeclaration :
diff --git a/test/language/statements/function/dstr-dflt-ary-ptrn-elision-exhausted.js b/test/language/statements/function/dstr-dflt-ary-ptrn-elision-exhausted.js
index 47d1b06c7e..bb7f7da2ab 100644
--- a/test/language/statements/function/dstr-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/function/dstr-dflt-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (function declaration (default parameter))
 esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.1.19
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     FunctionDeclaration :
diff --git a/test/language/statements/function/dstr-dflt-ary-ptrn-elision-step-err.js b/test/language/statements/function/dstr-dflt-ary-ptrn-elision-step-err.js
index 423b3d16fa..6fab8d31fb 100644
--- a/test/language/statements/function/dstr-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/function/dstr-dflt-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (function declaration (default parameter))
 esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.1.19
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     FunctionDeclaration :
diff --git a/test/language/statements/function/dstr-dflt-ary-ptrn-elision.js b/test/language/statements/function/dstr-dflt-ary-ptrn-elision.js
index 3844f7dd89..5d05dccc34 100644
--- a/test/language/statements/function/dstr-dflt-ary-ptrn-elision.js
+++ b/test/language/statements/function/dstr-dflt-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (function declaration (default parameter))
 esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.1.19
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     FunctionDeclaration :
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elision-exhausted.js b/test/language/statements/generators/dstr-ary-ptrn-elision-exhausted.js
index 1abef06ef5..1ec1d47805 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elision-step-err.js b/test/language/statements/generators/dstr-ary-ptrn-elision-step-err.js
index 0aaa561b20..328910905e 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elision.js b/test/language/statements/generators/dstr-ary-ptrn-elision.js
index e9d2a5b773..faee496338 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elision.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-dflt-ary-ptrn-elision-exhausted.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elision-exhausted.js
index 8cfb101211..2cacc82724 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-dflt-ary-ptrn-elision-step-err.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elision-step-err.js
index c9713a1e3e..39f2b22e11 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-dflt-ary-ptrn-elision.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elision.js
index f9e7235810..d28d3f343d 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elision.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [generator, destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/let/dstr-ary-ptrn-elision-exhausted.js b/test/language/statements/let/dstr-ary-ptrn-elision-exhausted.js
index fb101a9272..ac06477fb8 100644
--- a/test/language/statements/let/dstr-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/let/dstr-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (`let` statement)
 esid: sec-let-and-const-declarations-runtime-semantics-evaluation
 es6id: 13.3.1.4
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     LexicalBinding : BindingPattern Initializer
diff --git a/test/language/statements/let/dstr-ary-ptrn-elision-step-err.js b/test/language/statements/let/dstr-ary-ptrn-elision-step-err.js
index 31164e1dfa..01d0961795 100644
--- a/test/language/statements/let/dstr-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/let/dstr-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (`let` statement)
 esid: sec-let-and-const-declarations-runtime-semantics-evaluation
 es6id: 13.3.1.4
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     LexicalBinding : BindingPattern Initializer
diff --git a/test/language/statements/let/dstr-ary-ptrn-elision.js b/test/language/statements/let/dstr-ary-ptrn-elision.js
index 7926062651..dff04f4a93 100644
--- a/test/language/statements/let/dstr-ary-ptrn-elision.js
+++ b/test/language/statements/let/dstr-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (`let` statement)
 esid: sec-let-and-const-declarations-runtime-semantics-evaluation
 es6id: 13.3.1.4
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     LexicalBinding : BindingPattern Initializer
diff --git a/test/language/statements/try/dstr-ary-ptrn-elision-exhausted.js b/test/language/statements/try/dstr-ary-ptrn-elision-exhausted.js
index b3cc358a5b..429d983b60 100644
--- a/test/language/statements/try/dstr-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/try/dstr-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (try statement)
 esid: sec-runtime-semantics-catchclauseevaluation
 es6id: 13.15.7
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     Catch : catch ( CatchParameter ) Block
diff --git a/test/language/statements/try/dstr-ary-ptrn-elision-step-err.js b/test/language/statements/try/dstr-ary-ptrn-elision-step-err.js
index c906d81969..a6dad3e22e 100644
--- a/test/language/statements/try/dstr-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/try/dstr-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (try statement)
 esid: sec-runtime-semantics-catchclauseevaluation
 es6id: 13.15.7
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     Catch : catch ( CatchParameter ) Block
diff --git a/test/language/statements/try/dstr-ary-ptrn-elision.js b/test/language/statements/try/dstr-ary-ptrn-elision.js
index cf4b6f6fdf..fad0ed9ed7 100644
--- a/test/language/statements/try/dstr-ary-ptrn-elision.js
+++ b/test/language/statements/try/dstr-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (try statement)
 esid: sec-runtime-semantics-catchclauseevaluation
 es6id: 13.15.7
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     Catch : catch ( CatchParameter ) Block
diff --git a/test/language/statements/variable/dstr-ary-ptrn-elision-exhausted.js b/test/language/statements/variable/dstr-ary-ptrn-elision-exhausted.js
index ff5fc0dbc4..590bc81508 100644
--- a/test/language/statements/variable/dstr-ary-ptrn-elision-exhausted.js
+++ b/test/language/statements/variable/dstr-ary-ptrn-elision-exhausted.js
@@ -5,7 +5,7 @@
 description: Elision accepts exhausted iterator (`var` statement)
 esid: sec-variable-statement-runtime-semantics-evaluation
 es6id: 13.3.2.4
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     VariableDeclaration : BindingPattern Initializer
diff --git a/test/language/statements/variable/dstr-ary-ptrn-elision-step-err.js b/test/language/statements/variable/dstr-ary-ptrn-elision-step-err.js
index 24bd59c950..ba950f8088 100644
--- a/test/language/statements/variable/dstr-ary-ptrn-elision-step-err.js
+++ b/test/language/statements/variable/dstr-ary-ptrn-elision-step-err.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator and forwards abrupt completions (`var` statement)
 esid: sec-variable-statement-runtime-semantics-evaluation
 es6id: 13.3.2.4
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     VariableDeclaration : BindingPattern Initializer
diff --git a/test/language/statements/variable/dstr-ary-ptrn-elision.js b/test/language/statements/variable/dstr-ary-ptrn-elision.js
index 6690c6f75f..23ce3cdee9 100644
--- a/test/language/statements/variable/dstr-ary-ptrn-elision.js
+++ b/test/language/statements/variable/dstr-ary-ptrn-elision.js
@@ -5,7 +5,7 @@
 description: Elision advances iterator (`var` statement)
 esid: sec-variable-statement-runtime-semantics-evaluation
 es6id: 13.3.2.4
-features: [generator, destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     VariableDeclaration : BindingPattern Initializer
-- 
GitLab