From b3092c61b6b7e04bb62d1cb62365087aa3a9c5cc Mon Sep 17 00:00:00 2001
From: Leo Balter <leonardo.balter@gmail.com>
Date: Wed, 4 Oct 2017 16:12:34 -0400
Subject: [PATCH] Add generators flags for tests depending on generators
 features (#1259)

* Add missing generators feature flags

* Generate files

* Add generators flags

* fixup! Add generators flags
---
 src/arguments/default/gen-func-decl.template    |  1 +
 src/arguments/default/gen-func-expr.template    |  1 +
 ...-to-redeclare-generator-declaration.template |  1 +
 ...-to-redeclare-generator-declaration.template |  1 +
 ...-to-redeclare-generator-declaration.template |  1 +
 ...-to-redeclare-generator-declaration.template |  1 +
 .../redeclare-with-generator-declaration.case   |  1 +
 ...-to-redeclare-generator-declaration.template |  1 +
 ...-to-redeclare-generator-declaration.template |  1 +
 .../ary-ptrn-elem-ary-empty-init.case           |  1 +
 .../ary-ptrn-elem-id-init-fn-name-gen.case      |  1 +
 .../ary-ptrn-elision-iter-close.case            |  1 +
 .../ary-ptrn-rest-id-iter-close.case            |  1 +
 .../obj-ptrn-id-init-fn-name-gen.case           |  1 +
 .../ary-ptrn-elem-ary-empty-init.case           |  1 +
 .../ary-ptrn-elem-id-init-fn-name-gen.case      |  1 +
 .../ary-ptrn-elision-iter-close.case            |  1 +
 .../ary-ptrn-rest-id-iter-close.case            |  1 +
 .../default/cls-decl-gen-meth-dflt.template     |  2 +-
 .../cls-decl-gen-meth-static-dflt.template      |  2 +-
 .../default/cls-decl-gen-meth-static.template   |  2 +-
 .../default/cls-decl-gen-meth.template          |  2 +-
 .../default/cls-expr-gen-meth-dflt.template     |  2 +-
 .../cls-expr-gen-meth-static-dflt.template      |  2 +-
 .../default/cls-expr-gen-meth-static.template   |  2 +-
 .../default/cls-expr-gen-meth.template          |  2 +-
 .../default/gen-func-decl-dflt.template         |  2 +-
 src/dstr-binding/default/gen-func-decl.template |  2 +-
 .../default/gen-func-expr-dflt.template         |  2 +-
 src/dstr-binding/default/gen-func-expr.template |  2 +-
 src/dstr-binding/default/gen-meth.template      |  2 +-
 .../default/gen-method-dflt.template            |  2 +-
 .../error/cls-decl-gen-meth-dflt.template       |  2 +-
 .../cls-decl-gen-meth-static-dflt.template      |  2 +-
 .../error/cls-decl-gen-meth-static.template     |  2 +-
 .../error/cls-decl-gen-meth.template            |  2 +-
 .../error/cls-expr-gen-meth-dflt.template       |  2 +-
 .../cls-expr-gen-meth-static-dflt.template      |  2 +-
 .../error/cls-expr-gen-meth-static.template     |  2 +-
 .../error/cls-expr-gen-meth.template            |  2 +-
 .../error/gen-func-decl-dflt.template           |  2 +-
 src/dstr-binding/error/gen-func-decl.template   |  2 +-
 .../error/gen-func-expr-dflt.template           |  2 +-
 src/dstr-binding/error/gen-func-expr.template   |  2 +-
 src/dstr-binding/error/gen-meth-dflt.template   |  2 +-
 src/dstr-binding/error/gen-meth.template        |  2 +-
 .../obj-ptrn-id-init-fn-name-gen.case           |  1 +
 .../default/cls-decl-gen-meth-static.template   |  1 +
 .../default/cls-decl-gen-meth.template          |  1 +
 .../default/cls-expr-gen-meth-static.template   |  1 +
 .../default/cls-expr-gen-meth.template          |  1 +
 .../default/gen-func-decl.template              |  1 +
 .../default/gen-func-expr.template              |  1 +
 src/function-forms/default/gen-meth.template    |  1 +
 .../error/cls-decl-gen-meth-static.template     |  1 +
 .../error/cls-decl-gen-meth.template            |  1 +
 .../error/cls-expr-gen-meth-static.template     |  1 +
 .../error/cls-expr-gen-meth.template            |  1 +
 src/function-forms/error/gen-func-decl.template |  1 +
 src/function-forms/error/gen-func-expr.template |  1 +
 src/function-forms/error/gen-meth.template      |  1 +
 .../syntax/cls-decl-gen-meth-static.template    |  1 +
 .../syntax/cls-decl-gen-meth.template           |  1 +
 .../syntax/cls-expr-gen-meth-static.template    |  1 +
 .../syntax/cls-expr-gen-meth.template           |  1 +
 .../syntax/gen-func-decl.template               |  1 +
 .../syntax/gen-func-expr.template               |  1 +
 src/function-forms/syntax/gen-meth.template     |  1 +
 .../default/class-decl-method.template          |  1 +
 .../default/class-decl-static-method.template   |  1 +
 .../default/class-expr-method.template          |  1 +
 .../default/class-expr-static-method.template   |  1 +
 src/generators/default/declaration.template     |  1 +
 .../default/expression-named.template           |  1 +
 src/generators/default/expression.template      |  1 +
 src/generators/default/obj-method.template      |  1 +
 src/generators/non-strict/declaration.template  |  1 +
 .../non-strict/expression-named.template        |  1 +
 src/generators/non-strict/expression.template   |  1 +
 src/generators/non-strict/obj-method.template   |  1 +
 .../syntax/class-decl-method.template           |  1 +
 .../syntax/class-decl-static-method.template    |  1 +
 .../syntax/class-expr-method.template           |  1 +
 .../syntax/class-expr-static-method.template    |  1 +
 src/generators/syntax/declaration.template      |  1 +
 src/generators/syntax/expression-named.template |  1 +
 src/generators/syntax/expression.template       |  1 +
 src/generators/syntax/obj-method.template       |  1 +
 src/spread/mult-err-expr-throws.case            |  1 +
 .../GeneratorFunction/extensibility.js          |  1 +
 .../built-ins/GeneratorFunction/has-instance.js |  1 +
 .../instance-construct-throws.js                |  1 +
 .../GeneratorFunction/instance-length.js        |  1 +
 .../GeneratorFunction/instance-name.js          |  1 +
 .../GeneratorFunction/instance-prototype.js     |  1 +
 .../instance-yield-expr-in-param.js             |  1 +
 .../invoked-as-constructor-no-arguments.js      |  1 +
 .../invoked-as-function-multiple-arguments.js   |  1 +
 .../invoked-as-function-no-arguments.js         |  1 +
 .../invoked-as-function-single-argument.js      |  1 +
 test/built-ins/GeneratorFunction/length.js      |  1 +
 test/built-ins/GeneratorFunction/name.js        |  1 +
 .../GeneratorFunction/proto-from-ctor-realm.js  |  2 +-
 .../prototype/Symbol.toStringTag.js             |  2 +-
 .../GeneratorFunction/prototype/constructor.js  |  1 +
 .../prototype/extensibility.js                  |  1 +
 .../GeneratorFunction/prototype/prop-desc.js    |  1 +
 .../GeneratorFunction/prototype/prototype.js    |  1 +
 .../GeneratorPrototype/Symbol.toStringTag.js    |  2 +-
 .../built-ins/GeneratorPrototype/constructor.js |  1 +
 .../next/consecutive-yields.js                  |  1 +
 .../next/context-method-invocation.js           |  1 +
 .../next/from-state-executing.js                |  1 +
 .../built-ins/GeneratorPrototype/next/length.js |  1 +
 .../GeneratorPrototype/next/lone-return.js      |  1 +
 .../GeneratorPrototype/next/lone-yield.js       |  1 +
 test/built-ins/GeneratorPrototype/next/name.js  |  1 +
 .../GeneratorPrototype/next/no-control-flow.js  |  1 +
 .../next/property-descriptor.js                 |  1 +
 .../GeneratorPrototype/next/result-prototype.js |  1 +
 .../next/return-yield-expr.js                   |  1 +
 .../next/this-val-not-generator.js              |  1 +
 .../next/this-val-not-object.js                 |  2 +-
 .../return/from-state-completed.js              |  1 +
 .../return/from-state-executing.js              |  1 +
 .../return/from-state-suspended-start.js        |  1 +
 .../GeneratorPrototype/return/length.js         |  1 +
 .../built-ins/GeneratorPrototype/return/name.js |  1 +
 .../return/property-descriptor.js               |  1 +
 .../return/this-val-not-generator.js            |  1 +
 .../return/this-val-not-object.js               |  2 +-
 .../return/try-catch-before-try.js              |  1 +
 .../return/try-catch-following-catch.js         |  1 +
 .../return/try-catch-within-catch.js            |  1 +
 .../return/try-catch-within-try.js              |  1 +
 .../return/try-finally-before-try.js            |  1 +
 .../return/try-finally-following-finally.js     |  1 +
 ...try-finally-nested-try-catch-within-catch.js |  1 +
 ...y-finally-nested-try-catch-within-finally.js |  1 +
 ...finally-nested-try-catch-within-inner-try.js |  1 +
 ...d-try-catch-within-outer-try-after-nested.js |  1 +
 ...-try-catch-within-outer-try-before-nested.js |  1 +
 .../return/try-finally-within-finally.js        |  1 +
 .../return/try-finally-within-try.js            |  1 +
 .../throw/from-state-completed.js               |  1 +
 .../throw/from-state-executing.js               |  1 +
 .../throw/from-state-suspended-start.js         |  1 +
 .../GeneratorPrototype/throw/length.js          |  1 +
 test/built-ins/GeneratorPrototype/throw/name.js |  1 +
 .../throw/property-descriptor.js                |  1 +
 .../throw/this-val-not-generator.js             |  1 +
 .../throw/this-val-not-object.js                |  2 +-
 .../throw/try-catch-before-try.js               |  1 +
 .../throw/try-catch-following-catch.js          |  1 +
 .../throw/try-catch-within-catch.js             |  1 +
 .../throw/try-catch-within-try.js               |  1 +
 .../throw/try-finally-before-try.js             |  1 +
 .../throw/try-finally-following-finally.js      |  1 +
 ...try-finally-nested-try-catch-within-catch.js |  1 +
 ...y-finally-nested-try-catch-within-finally.js |  1 +
 ...finally-nested-try-catch-within-inner-try.js |  1 +
 ...d-try-catch-within-outer-try-after-nested.js |  1 +
 ...-try-catch-within-outer-try-before-nested.js |  1 +
 .../throw/try-finally-within-finally.js         |  1 +
 .../throw/try-finally-within-try.js             |  1 +
 ...en-func-decl-args-trailing-comma-multiple.js |  2 ++
 .../gen-func-decl-args-trailing-comma-null.js   |  2 ++
 ...func-decl-args-trailing-comma-single-args.js |  2 ++
 ...n-func-decl-args-trailing-comma-undefined.js |  2 ++
 ...en-func-expr-args-trailing-comma-multiple.js |  2 ++
 .../gen-func-expr-args-trailing-comma-null.js   |  2 ++
 ...func-expr-args-trailing-comma-single-args.js |  2 ++
 ...n-func-expr-args-trailing-comma-undefined.js |  2 ++
 ...t-to-redeclare-with-generator-declaration.js |  2 +-
 ...t-to-redeclare-with-generator-declaration.js |  2 +-
 ...t-to-redeclare-with-generator-declaration.js |  1 +
 ...t-to-redeclare-with-generator-declaration.js |  1 +
 ...t-to-redeclare-with-generator-declaration.js |  1 +
 ...redeclare-with-async-function-declaration.js |  2 +-
 ...edeclare-with-async-generator-declaration.js |  2 +-
 ...tempt-to-redeclare-with-class-declaration.js |  1 +
 ...tempt-to-redeclare-with-const-declaration.js |  1 +
 ...pt-to-redeclare-with-function-declaration.js |  1 +
 ...t-to-redeclare-with-generator-declaration.js |  1 +
 ...attempt-to-redeclare-with-let-declaration.js |  1 +
 ...attempt-to-redeclare-with-var-declaration.js |  1 +
 ...t-to-redeclare-with-generator-declaration.js |  1 +
 ...t-to-redeclare-with-generator-declaration.js |  1 +
 .../array/spread-err-mult-err-expr-throws.js    |  2 ++
 .../dstr-ary-ptrn-elem-ary-empty-init.js        |  3 ++-
 .../dstr-ary-ptrn-elem-id-init-fn-name-gen.js   |  3 ++-
 .../dstr-dflt-ary-ptrn-elem-ary-empty-init.js   |  3 ++-
 ...tr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 .../dstr-dflt-obj-ptrn-id-init-fn-name-gen.js   |  3 ++-
 .../dstr-obj-ptrn-id-init-fn-name-gen.js        |  3 ++-
 .../dstr-ary-ptrn-elem-ary-empty-init.js        |  3 ++-
 .../dstr-ary-ptrn-elem-id-init-fn-name-gen.js   |  3 ++-
 .../dstr-dflt-ary-ptrn-elem-ary-empty-init.js   |  3 ++-
 ...tr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 .../dstr-dflt-obj-ptrn-id-init-fn-name-gen.js   |  3 ++-
 .../dstr-named-ary-ptrn-elem-ary-empty-init.js  |  3 ++-
 ...r-named-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...r-named-dflt-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...ed-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...r-named-dflt-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 .../dstr-named-obj-ptrn-id-init-fn-name-gen.js  |  3 ++-
 .../dstr-obj-ptrn-id-init-fn-name-gen.js        |  3 ++-
 .../call/spread-err-mult-err-expr-throws.js     |  2 ++
 ...ync-gen-meth-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...en-meth-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...en-meth-dflt-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...th-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...en-meth-dflt-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...ync-gen-meth-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...-meth-static-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...-static-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...-static-dflt-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...ic-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...-static-dflt-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...-meth-static-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 .../class/dstr-gen-meth-ary-init-iter-close.js  |  2 +-
 .../dstr-gen-meth-ary-init-iter-get-err.js      |  2 +-
 .../dstr-gen-meth-ary-init-iter-no-close.js     |  2 +-
 .../class/dstr-gen-meth-ary-name-iter-val.js    |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-ary-elem-init.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-ary-elem-iter.js |  2 +-
 ...str-gen-meth-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...str-gen-meth-ary-ptrn-elem-ary-empty-iter.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-ary-rest-init.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-ary-rest-iter.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-ary-val-null.js |  2 +-
 ...-gen-meth-ary-ptrn-elem-id-init-exhausted.js |  2 +-
 ...-meth-ary-ptrn-elem-id-init-fn-name-arrow.js |  2 +-
 ...-meth-ary-ptrn-elem-id-init-fn-name-class.js |  2 +-
 ...-meth-ary-ptrn-elem-id-init-fn-name-cover.js |  2 +-
 ...gen-meth-ary-ptrn-elem-id-init-fn-name-fn.js |  2 +-
 ...en-meth-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 .../dstr-gen-meth-ary-ptrn-elem-id-init-hole.js |  2 +-
 ...tr-gen-meth-ary-ptrn-elem-id-init-skipped.js |  2 +-
 ...str-gen-meth-ary-ptrn-elem-id-init-throws.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-id-init-undef.js |  2 +-
 ...n-meth-ary-ptrn-elem-id-init-unresolvable.js |  2 +-
 ...r-gen-meth-ary-ptrn-elem-id-iter-complete.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-id-iter-done.js |  2 +-
 ...r-gen-meth-ary-ptrn-elem-id-iter-step-err.js |  2 +-
 ...tr-gen-meth-ary-ptrn-elem-id-iter-val-err.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-id-iter-val.js  |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-obj-id-init.js  |  2 +-
 .../class/dstr-gen-meth-ary-ptrn-elem-obj-id.js |  2 +-
 ...r-gen-meth-ary-ptrn-elem-obj-prop-id-init.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-obj-prop-id.js  |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-obj-val-null.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-obj-val-undef.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-ary-elem.js     |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-ary-rest.js     |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-id-elision.js   |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-id-exhausted.js |  2 +-
 ...tr-gen-meth-ary-ptrn-rest-id-iter-val-err.js |  2 +-
 .../class/dstr-gen-meth-ary-ptrn-rest-id.js     |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-init-ary.js     |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-init-id.js      |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-init-obj.js     |  2 +-
 ...dstr-gen-meth-ary-ptrn-rest-not-final-ary.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-not-final-id.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-rest-not-final-obj.js |  2 +-
 .../class/dstr-gen-meth-ary-ptrn-rest-obj-id.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js  |  2 +-
 .../dstr-gen-meth-dflt-ary-init-iter-close.js   |  2 +-
 .../dstr-gen-meth-dflt-ary-init-iter-get-err.js |  2 +-
 ...dstr-gen-meth-dflt-ary-init-iter-no-close.js |  2 +-
 .../dstr-gen-meth-dflt-ary-name-iter-val.js     |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-ary-elem-init.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-ary-elem-iter.js |  2 +-
 ...en-meth-dflt-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...en-meth-dflt-ary-ptrn-elem-ary-empty-iter.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-ary-rest-init.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-ary-rest-iter.js |  2 +-
 ...-gen-meth-dflt-ary-ptrn-elem-ary-val-null.js |  2 +-
 ...meth-dflt-ary-ptrn-elem-id-init-exhausted.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-class.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-cover.js |  2 +-
 ...eth-dflt-ary-ptrn-elem-id-init-fn-name-fn.js |  2 +-
 ...th-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...-gen-meth-dflt-ary-ptrn-elem-id-init-hole.js |  2 +-
 ...n-meth-dflt-ary-ptrn-elem-id-init-skipped.js |  2 +-
 ...en-meth-dflt-ary-ptrn-elem-id-init-throws.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-id-init-undef.js |  2 +-
 ...h-dflt-ary-ptrn-elem-id-init-unresolvable.js |  2 +-
 ...-meth-dflt-ary-ptrn-elem-id-iter-complete.js |  2 +-
 ...-gen-meth-dflt-ary-ptrn-elem-id-iter-done.js |  2 +-
 ...-meth-dflt-ary-ptrn-elem-id-iter-step-err.js |  2 +-
 ...n-meth-dflt-ary-ptrn-elem-id-iter-val-err.js |  2 +-
 ...r-gen-meth-dflt-ary-ptrn-elem-id-iter-val.js |  2 +-
 ...r-gen-meth-dflt-ary-ptrn-elem-obj-id-init.js |  2 +-
 .../dstr-gen-meth-dflt-ary-ptrn-elem-obj-id.js  |  2 +-
 ...-meth-dflt-ary-ptrn-elem-obj-prop-id-init.js |  2 +-
 ...r-gen-meth-dflt-ary-ptrn-elem-obj-prop-id.js |  2 +-
 ...-gen-meth-dflt-ary-ptrn-elem-obj-val-null.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-obj-val-undef.js |  2 +-
 ...dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js |  2 +-
 ...dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js |  2 +-
 ...tr-gen-meth-dflt-ary-ptrn-rest-id-elision.js |  2 +-
 ...-gen-meth-dflt-ary-ptrn-rest-id-exhausted.js |  2 +-
 ...n-meth-dflt-ary-ptrn-rest-id-iter-val-err.js |  2 +-
 .../dstr-gen-meth-dflt-ary-ptrn-rest-id.js      |  2 +-
 ...dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js |  2 +-
 .../dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js |  2 +-
 ...dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-rest-not-final-ary.js |  2 +-
 ...-gen-meth-dflt-ary-ptrn-rest-not-final-id.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-rest-not-final-obj.js |  2 +-
 .../dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js  |  2 +-
 ...r-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js |  2 +-
 .../class/dstr-gen-meth-dflt-obj-init-null.js   |  2 +-
 .../dstr-gen-meth-dflt-obj-init-undefined.js    |  2 +-
 .../class/dstr-gen-meth-dflt-obj-ptrn-empty.js  |  2 +-
 ...r-gen-meth-dflt-obj-ptrn-id-get-value-err.js |  2 +-
 ...-meth-dflt-obj-ptrn-id-init-fn-name-arrow.js |  2 +-
 ...-meth-dflt-obj-ptrn-id-init-fn-name-class.js |  2 +-
 ...-meth-dflt-obj-ptrn-id-init-fn-name-cover.js |  2 +-
 ...gen-meth-dflt-obj-ptrn-id-init-fn-name-fn.js |  2 +-
 ...en-meth-dflt-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...tr-gen-meth-dflt-obj-ptrn-id-init-skipped.js |  2 +-
 ...str-gen-meth-dflt-obj-ptrn-id-init-throws.js |  2 +-
 ...n-meth-dflt-obj-ptrn-id-init-unresolvable.js |  2 +-
 ...-gen-meth-dflt-obj-ptrn-id-trailing-comma.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-list-err.js     |  2 +-
 ...dstr-gen-meth-dflt-obj-ptrn-prop-ary-init.js |  2 +-
 ...eth-dflt-obj-ptrn-prop-ary-trailing-comma.js |  2 +-
 ...en-meth-dflt-obj-ptrn-prop-ary-value-null.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-prop-ary.js     |  2 +-
 ...dstr-gen-meth-dflt-obj-ptrn-prop-eval-err.js |  2 +-
 ...-meth-dflt-obj-ptrn-prop-id-get-value-err.js |  2 +-
 ...n-meth-dflt-obj-ptrn-prop-id-init-skipped.js |  2 +-
 ...en-meth-dflt-obj-ptrn-prop-id-init-throws.js |  2 +-
 ...h-dflt-obj-ptrn-prop-id-init-unresolvable.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-prop-id-init.js |  2 +-
 ...meth-dflt-obj-ptrn-prop-id-trailing-comma.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-prop-id.js      |  2 +-
 ...dstr-gen-meth-dflt-obj-ptrn-prop-obj-init.js |  2 +-
 ...en-meth-dflt-obj-ptrn-prop-obj-value-null.js |  2 +-
 ...n-meth-dflt-obj-ptrn-prop-obj-value-undef.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-prop-obj.js     |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-rest-getter.js  |  2 +-
 ...th-dflt-obj-ptrn-rest-skip-non-enumerable.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js |  2 +-
 .../class/dstr-gen-meth-obj-init-null.js        |  2 +-
 .../class/dstr-gen-meth-obj-init-undefined.js   |  2 +-
 .../class/dstr-gen-meth-obj-ptrn-empty.js       |  2 +-
 .../dstr-gen-meth-obj-ptrn-id-get-value-err.js  |  2 +-
 ...r-gen-meth-obj-ptrn-id-init-fn-name-arrow.js |  2 +-
 ...r-gen-meth-obj-ptrn-id-init-fn-name-class.js |  2 +-
 ...r-gen-meth-obj-ptrn-id-init-fn-name-cover.js |  2 +-
 ...dstr-gen-meth-obj-ptrn-id-init-fn-name-fn.js |  2 +-
 ...str-gen-meth-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 .../dstr-gen-meth-obj-ptrn-id-init-skipped.js   |  2 +-
 .../dstr-gen-meth-obj-ptrn-id-init-throws.js    |  2 +-
 ...tr-gen-meth-obj-ptrn-id-init-unresolvable.js |  2 +-
 .../dstr-gen-meth-obj-ptrn-id-trailing-comma.js |  2 +-
 .../class/dstr-gen-meth-obj-ptrn-list-err.js    |  2 +-
 .../dstr-gen-meth-obj-ptrn-prop-ary-init.js     |  2 +-
 ...gen-meth-obj-ptrn-prop-ary-trailing-comma.js |  2 +-
 ...str-gen-meth-obj-ptrn-prop-ary-value-null.js |  2 +-
 .../class/dstr-gen-meth-obj-ptrn-prop-ary.js    |  2 +-
 .../dstr-gen-meth-obj-ptrn-prop-eval-err.js     |  2 +-
 ...r-gen-meth-obj-ptrn-prop-id-get-value-err.js |  2 +-
 ...tr-gen-meth-obj-ptrn-prop-id-init-skipped.js |  2 +-
 ...str-gen-meth-obj-ptrn-prop-id-init-throws.js |  2 +-
 ...n-meth-obj-ptrn-prop-id-init-unresolvable.js |  2 +-
 .../dstr-gen-meth-obj-ptrn-prop-id-init.js      |  2 +-
 ...-gen-meth-obj-ptrn-prop-id-trailing-comma.js |  2 +-
 .../class/dstr-gen-meth-obj-ptrn-prop-id.js     |  2 +-
 .../dstr-gen-meth-obj-ptrn-prop-obj-init.js     |  2 +-
 ...str-gen-meth-obj-ptrn-prop-obj-value-null.js |  2 +-
 ...tr-gen-meth-obj-ptrn-prop-obj-value-undef.js |  2 +-
 .../class/dstr-gen-meth-obj-ptrn-prop-obj.js    |  2 +-
 .../class/dstr-gen-meth-obj-ptrn-rest-getter.js |  2 +-
 ...en-meth-obj-ptrn-rest-skip-non-enumerable.js |  2 +-
 .../dstr-gen-meth-obj-ptrn-rest-val-obj.js      |  2 +-
 .../dstr-gen-meth-static-ary-init-iter-close.js |  2 +-
 ...str-gen-meth-static-ary-init-iter-get-err.js |  2 +-
 ...tr-gen-meth-static-ary-init-iter-no-close.js |  2 +-
 .../dstr-gen-meth-static-ary-name-iter-val.js   |  2 +-
 ...n-meth-static-ary-ptrn-elem-ary-elem-init.js |  2 +-
 ...n-meth-static-ary-ptrn-elem-ary-elem-iter.js |  2 +-
 ...-meth-static-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...-meth-static-ary-ptrn-elem-ary-empty-iter.js |  2 +-
 ...n-meth-static-ary-ptrn-elem-ary-rest-init.js |  2 +-
 ...n-meth-static-ary-ptrn-elem-ary-rest-iter.js |  2 +-
 ...en-meth-static-ary-ptrn-elem-ary-val-null.js |  2 +-
 ...th-static-ary-ptrn-elem-id-init-exhausted.js |  2 +-
 ...tatic-ary-ptrn-elem-id-init-fn-name-arrow.js |  2 +-
 ...tatic-ary-ptrn-elem-id-init-fn-name-class.js |  2 +-
 ...tatic-ary-ptrn-elem-id-init-fn-name-cover.js |  2 +-
 ...h-static-ary-ptrn-elem-id-init-fn-name-fn.js |  2 +-
 ...-static-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...en-meth-static-ary-ptrn-elem-id-init-hole.js |  2 +-
 ...meth-static-ary-ptrn-elem-id-init-skipped.js |  2 +-
 ...-meth-static-ary-ptrn-elem-id-init-throws.js |  2 +-
 ...n-meth-static-ary-ptrn-elem-id-init-undef.js |  2 +-
 ...static-ary-ptrn-elem-id-init-unresolvable.js |  2 +-
 ...eth-static-ary-ptrn-elem-id-iter-complete.js |  2 +-
 ...en-meth-static-ary-ptrn-elem-id-iter-done.js |  2 +-
 ...eth-static-ary-ptrn-elem-id-iter-step-err.js |  2 +-
 ...meth-static-ary-ptrn-elem-id-iter-val-err.js |  2 +-
 ...gen-meth-static-ary-ptrn-elem-id-iter-val.js |  2 +-
 ...gen-meth-static-ary-ptrn-elem-obj-id-init.js |  2 +-
 ...dstr-gen-meth-static-ary-ptrn-elem-obj-id.js |  2 +-
 ...eth-static-ary-ptrn-elem-obj-prop-id-init.js |  2 +-
 ...gen-meth-static-ary-ptrn-elem-obj-prop-id.js |  2 +-
 ...en-meth-static-ary-ptrn-elem-obj-val-null.js |  2 +-
 ...n-meth-static-ary-ptrn-elem-obj-val-undef.js |  2 +-
 ...tr-gen-meth-static-ary-ptrn-rest-ary-elem.js |  2 +-
 ...tr-gen-meth-static-ary-ptrn-rest-ary-rest.js |  2 +-
 ...-gen-meth-static-ary-ptrn-rest-id-elision.js |  2 +-
 ...en-meth-static-ary-ptrn-rest-id-exhausted.js |  2 +-
 ...meth-static-ary-ptrn-rest-id-iter-val-err.js |  2 +-
 .../dstr-gen-meth-static-ary-ptrn-rest-id.js    |  2 +-
 ...tr-gen-meth-static-ary-ptrn-rest-init-ary.js |  2 +-
 ...str-gen-meth-static-ary-ptrn-rest-init-id.js |  2 +-
 ...tr-gen-meth-static-ary-ptrn-rest-init-obj.js |  2 +-
 ...n-meth-static-ary-ptrn-rest-not-final-ary.js |  2 +-
 ...en-meth-static-ary-ptrn-rest-not-final-id.js |  2 +-
 ...n-meth-static-ary-ptrn-rest-not-final-obj.js |  2 +-
 ...dstr-gen-meth-static-ary-ptrn-rest-obj-id.js |  2 +-
 ...gen-meth-static-ary-ptrn-rest-obj-prop-id.js |  2 +-
 ...-gen-meth-static-dflt-ary-init-iter-close.js |  2 +-
 ...en-meth-static-dflt-ary-init-iter-get-err.js |  2 +-
 ...n-meth-static-dflt-ary-init-iter-no-close.js |  2 +-
 ...tr-gen-meth-static-dflt-ary-name-iter-val.js |  2 +-
 ...h-static-dflt-ary-ptrn-elem-ary-elem-init.js |  2 +-
 ...h-static-dflt-ary-ptrn-elem-ary-elem-iter.js |  2 +-
 ...-static-dflt-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...-static-dflt-ary-ptrn-elem-ary-empty-iter.js |  2 +-
 ...h-static-dflt-ary-ptrn-elem-ary-rest-init.js |  2 +-
 ...h-static-dflt-ary-ptrn-elem-ary-rest-iter.js |  2 +-
 ...th-static-dflt-ary-ptrn-elem-ary-val-null.js |  2 +-
 ...atic-dflt-ary-ptrn-elem-id-init-exhausted.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-class.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-cover.js |  2 +-
 ...tic-dflt-ary-ptrn-elem-id-init-fn-name-fn.js |  2 +-
 ...ic-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...th-static-dflt-ary-ptrn-elem-id-init-hole.js |  2 +-
 ...static-dflt-ary-ptrn-elem-id-init-skipped.js |  2 +-
 ...-static-dflt-ary-ptrn-elem-id-init-throws.js |  2 +-
 ...h-static-dflt-ary-ptrn-elem-id-init-undef.js |  2 +-
 ...c-dflt-ary-ptrn-elem-id-init-unresolvable.js |  2 +-
 ...tatic-dflt-ary-ptrn-elem-id-iter-complete.js |  2 +-
 ...th-static-dflt-ary-ptrn-elem-id-iter-done.js |  2 +-
 ...tatic-dflt-ary-ptrn-elem-id-iter-step-err.js |  2 +-
 ...static-dflt-ary-ptrn-elem-id-iter-val-err.js |  2 +-
 ...eth-static-dflt-ary-ptrn-elem-id-iter-val.js |  2 +-
 ...eth-static-dflt-ary-ptrn-elem-obj-id-init.js |  2 +-
 ...gen-meth-static-dflt-ary-ptrn-elem-obj-id.js |  2 +-
 ...tatic-dflt-ary-ptrn-elem-obj-prop-id-init.js |  2 +-
 ...eth-static-dflt-ary-ptrn-elem-obj-prop-id.js |  2 +-
 ...th-static-dflt-ary-ptrn-elem-obj-val-null.js |  2 +-
 ...h-static-dflt-ary-ptrn-elem-obj-val-undef.js |  2 +-
 ...n-meth-static-dflt-ary-ptrn-rest-ary-elem.js |  2 +-
 ...n-meth-static-dflt-ary-ptrn-rest-ary-rest.js |  2 +-
 ...meth-static-dflt-ary-ptrn-rest-id-elision.js |  2 +-
 ...th-static-dflt-ary-ptrn-rest-id-exhausted.js |  2 +-
 ...static-dflt-ary-ptrn-rest-id-iter-val-err.js |  2 +-
 ...str-gen-meth-static-dflt-ary-ptrn-rest-id.js |  2 +-
 ...n-meth-static-dflt-ary-ptrn-rest-init-ary.js |  2 +-
 ...en-meth-static-dflt-ary-ptrn-rest-init-id.js |  2 +-
 ...n-meth-static-dflt-ary-ptrn-rest-init-obj.js |  2 +-
 ...h-static-dflt-ary-ptrn-rest-not-final-ary.js |  2 +-
 ...th-static-dflt-ary-ptrn-rest-not-final-id.js |  2 +-
 ...h-static-dflt-ary-ptrn-rest-not-final-obj.js |  2 +-
 ...gen-meth-static-dflt-ary-ptrn-rest-obj-id.js |  2 +-
 ...eth-static-dflt-ary-ptrn-rest-obj-prop-id.js |  2 +-
 .../dstr-gen-meth-static-dflt-obj-init-null.js  |  2 +-
 ...r-gen-meth-static-dflt-obj-init-undefined.js |  2 +-
 .../dstr-gen-meth-static-dflt-obj-ptrn-empty.js |  2 +-
 ...eth-static-dflt-obj-ptrn-id-get-value-err.js |  2 +-
 ...tatic-dflt-obj-ptrn-id-init-fn-name-arrow.js |  2 +-
 ...tatic-dflt-obj-ptrn-id-init-fn-name-class.js |  2 +-
 ...tatic-dflt-obj-ptrn-id-init-fn-name-cover.js |  2 +-
 ...h-static-dflt-obj-ptrn-id-init-fn-name-fn.js |  2 +-
 ...-static-dflt-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...meth-static-dflt-obj-ptrn-id-init-skipped.js |  2 +-
 ...-meth-static-dflt-obj-ptrn-id-init-throws.js |  2 +-
 ...static-dflt-obj-ptrn-id-init-unresolvable.js |  2 +-
 ...th-static-dflt-obj-ptrn-id-trailing-comma.js |  2 +-
 ...tr-gen-meth-static-dflt-obj-ptrn-list-err.js |  2 +-
 ...n-meth-static-dflt-obj-ptrn-prop-ary-init.js |  2 +-
 ...tic-dflt-obj-ptrn-prop-ary-trailing-comma.js |  2 +-
 ...-static-dflt-obj-ptrn-prop-ary-value-null.js |  2 +-
 ...tr-gen-meth-static-dflt-obj-ptrn-prop-ary.js |  2 +-
 ...n-meth-static-dflt-obj-ptrn-prop-eval-err.js |  2 +-
 ...tatic-dflt-obj-ptrn-prop-id-get-value-err.js |  2 +-
 ...static-dflt-obj-ptrn-prop-id-init-skipped.js |  2 +-
 ...-static-dflt-obj-ptrn-prop-id-init-throws.js |  2 +-
 ...c-dflt-obj-ptrn-prop-id-init-unresolvable.js |  2 +-
 ...en-meth-static-dflt-obj-ptrn-prop-id-init.js |  2 +-
 ...atic-dflt-obj-ptrn-prop-id-trailing-comma.js |  2 +-
 ...str-gen-meth-static-dflt-obj-ptrn-prop-id.js |  2 +-
 ...n-meth-static-dflt-obj-ptrn-prop-obj-init.js |  2 +-
 ...-static-dflt-obj-ptrn-prop-obj-value-null.js |  2 +-
 ...static-dflt-obj-ptrn-prop-obj-value-undef.js |  2 +-
 ...tr-gen-meth-static-dflt-obj-ptrn-prop-obj.js |  2 +-
 ...gen-meth-static-dflt-obj-ptrn-rest-getter.js |  2 +-
 ...ic-dflt-obj-ptrn-rest-skip-non-enumerable.js |  2 +-
 ...en-meth-static-dflt-obj-ptrn-rest-val-obj.js |  2 +-
 .../class/dstr-gen-meth-static-obj-init-null.js |  2 +-
 .../dstr-gen-meth-static-obj-init-undefined.js  |  2 +-
 .../dstr-gen-meth-static-obj-ptrn-empty.js      |  2 +-
 ...gen-meth-static-obj-ptrn-id-get-value-err.js |  2 +-
 ...eth-static-obj-ptrn-id-init-fn-name-arrow.js |  2 +-
 ...eth-static-obj-ptrn-id-init-fn-name-class.js |  2 +-
 ...eth-static-obj-ptrn-id-init-fn-name-cover.js |  2 +-
 ...n-meth-static-obj-ptrn-id-init-fn-name-fn.js |  2 +-
 ...-meth-static-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...-gen-meth-static-obj-ptrn-id-init-skipped.js |  2 +-
 ...r-gen-meth-static-obj-ptrn-id-init-throws.js |  2 +-
 ...meth-static-obj-ptrn-id-init-unresolvable.js |  2 +-
 ...en-meth-static-obj-ptrn-id-trailing-comma.js |  2 +-
 .../dstr-gen-meth-static-obj-ptrn-list-err.js   |  2 +-
 ...tr-gen-meth-static-obj-ptrn-prop-ary-init.js |  2 +-
 ...h-static-obj-ptrn-prop-ary-trailing-comma.js |  2 +-
 ...-meth-static-obj-ptrn-prop-ary-value-null.js |  2 +-
 .../dstr-gen-meth-static-obj-ptrn-prop-ary.js   |  2 +-
 ...tr-gen-meth-static-obj-ptrn-prop-eval-err.js |  2 +-
 ...eth-static-obj-ptrn-prop-id-get-value-err.js |  2 +-
 ...meth-static-obj-ptrn-prop-id-init-skipped.js |  2 +-
 ...-meth-static-obj-ptrn-prop-id-init-throws.js |  2 +-
 ...static-obj-ptrn-prop-id-init-unresolvable.js |  2 +-
 ...str-gen-meth-static-obj-ptrn-prop-id-init.js |  2 +-
 ...th-static-obj-ptrn-prop-id-trailing-comma.js |  2 +-
 .../dstr-gen-meth-static-obj-ptrn-prop-id.js    |  2 +-
 ...tr-gen-meth-static-obj-ptrn-prop-obj-init.js |  2 +-
 ...-meth-static-obj-ptrn-prop-obj-value-null.js |  2 +-
 ...meth-static-obj-ptrn-prop-obj-value-undef.js |  2 +-
 .../dstr-gen-meth-static-obj-ptrn-prop-obj.js   |  2 +-
 ...dstr-gen-meth-static-obj-ptrn-rest-getter.js |  2 +-
 ...-static-obj-ptrn-rest-skip-non-enumerable.js |  2 +-
 ...str-gen-meth-static-obj-ptrn-rest-val-obj.js |  2 +-
 .../dstr-meth-ary-ptrn-elem-ary-empty-init.js   |  3 ++-
 ...tr-meth-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...tr-meth-dflt-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...th-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...tr-meth-dflt-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 .../dstr-meth-obj-ptrn-id-init-fn-name-gen.js   |  3 ++-
 ...-meth-static-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...-static-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...-static-dflt-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...ic-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...-static-dflt-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...-meth-static-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 .../class/gen-meth-dflt-params-abrupt.js        |  3 ++-
 ...en-meth-dflt-params-arg-val-not-undefined.js |  3 ++-
 .../gen-meth-dflt-params-arg-val-undefined.js   |  3 ++-
 .../class/gen-meth-dflt-params-duplicates.js    |  3 ++-
 .../class/gen-meth-dflt-params-ref-later.js     |  3 ++-
 .../class/gen-meth-dflt-params-ref-prior.js     |  3 ++-
 .../class/gen-meth-dflt-params-ref-self.js      |  3 ++-
 .../class/gen-meth-dflt-params-rest.js          |  3 ++-
 .../gen-meth-dflt-params-trailing-comma.js      |  2 ++
 .../gen-meth-params-trailing-comma-multiple.js  |  2 ++
 .../gen-meth-params-trailing-comma-single.js    |  2 ++
 ...th-rest-params-trailing-comma-early-error.js |  2 ++
 .../class/gen-meth-static-dflt-params-abrupt.js |  3 ++-
 ...-static-dflt-params-arg-val-not-undefined.js |  3 ++-
 ...meth-static-dflt-params-arg-val-undefined.js |  3 ++-
 .../gen-meth-static-dflt-params-duplicates.js   |  3 ++-
 .../gen-meth-static-dflt-params-ref-later.js    |  3 ++-
 .../gen-meth-static-dflt-params-ref-prior.js    |  3 ++-
 .../gen-meth-static-dflt-params-ref-self.js     |  3 ++-
 .../class/gen-meth-static-dflt-params-rest.js   |  3 ++-
 ...en-meth-static-dflt-params-trailing-comma.js |  2 ++
 ...eth-static-params-trailing-comma-multiple.js |  2 ++
 ...-meth-static-params-trailing-comma-single.js |  2 ++
 ...ic-rest-params-trailing-comma-early-error.js |  2 ++
 ...tatic-yield-as-binding-identifier-escaped.js |  2 ++
 ...method-static-yield-as-binding-identifier.js |  2 ++
 ...tic-yield-as-identifier-reference-escaped.js |  2 ++
 ...thod-static-yield-as-identifier-reference.js |  2 ++
 ...-static-yield-as-label-identifier-escaped.js |  2 ++
 ...n-method-static-yield-as-label-identifier.js |  2 ++
 ...hod-static-yield-identifier-spread-strict.js |  3 ++-
 ...gen-method-static-yield-identifier-strict.js |  2 ++
 ...n-method-static-yield-spread-arr-multiple.js |  2 ++
 ...gen-method-static-yield-spread-arr-single.js |  2 ++
 .../class/gen-method-static-yield-spread-obj.js |  3 ++-
 ...ethod-yield-as-binding-identifier-escaped.js |  2 ++
 .../gen-method-yield-as-binding-identifier.js   |  2 ++
 ...hod-yield-as-identifier-reference-escaped.js |  2 ++
 .../gen-method-yield-as-identifier-reference.js |  2 ++
 ...-method-yield-as-label-identifier-escaped.js |  2 ++
 .../gen-method-yield-as-label-identifier.js     |  2 ++
 ...gen-method-yield-identifier-spread-strict.js |  3 ++-
 .../class/gen-method-yield-identifier-strict.js |  2 ++
 .../gen-method-yield-spread-arr-multiple.js     |  2 ++
 .../class/gen-method-yield-spread-arr-single.js |  2 ++
 .../class/gen-method-yield-spread-obj.js        |  3 ++-
 .../dstr-ary-ptrn-elem-ary-empty-init.js        |  3 ++-
 .../dstr-ary-ptrn-elem-id-init-fn-name-gen.js   |  3 ++-
 .../dstr-dflt-ary-ptrn-elem-ary-empty-init.js   |  3 ++-
 ...tr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 .../dstr-dflt-obj-ptrn-id-init-fn-name-gen.js   |  3 ++-
 .../dstr-obj-ptrn-id-init-fn-name-gen.js        |  3 ++-
 .../generators/arguments-with-arguments-fn.js   |  1 +
 .../generators/arguments-with-arguments-lex.js  |  1 +
 .../expressions/generators/default-proto.js     |  1 +
 .../generators/dflt-params-abrupt.js            |  3 ++-
 .../dflt-params-arg-val-not-undefined.js        |  3 ++-
 .../generators/dflt-params-arg-val-undefined.js |  3 ++-
 .../generators/dflt-params-duplicates.js        |  3 ++-
 .../generators/dflt-params-ref-later.js         |  3 ++-
 .../generators/dflt-params-ref-prior.js         |  3 ++-
 .../generators/dflt-params-ref-self.js          |  3 ++-
 .../expressions/generators/dflt-params-rest.js  |  3 ++-
 .../generators/dflt-params-trailing-comma.js    |  2 ++
 .../generators/dstr-ary-init-iter-close.js      |  2 +-
 .../generators/dstr-ary-init-iter-get-err.js    |  2 +-
 .../generators/dstr-ary-init-iter-no-close.js   |  2 +-
 .../generators/dstr-ary-name-iter-val.js        |  2 +-
 .../dstr-ary-ptrn-elem-ary-elem-init.js         |  2 +-
 .../dstr-ary-ptrn-elem-ary-elem-iter.js         |  2 +-
 .../dstr-ary-ptrn-elem-ary-empty-init.js        |  3 ++-
 .../dstr-ary-ptrn-elem-ary-empty-iter.js        |  2 +-
 .../dstr-ary-ptrn-elem-ary-rest-init.js         |  2 +-
 .../dstr-ary-ptrn-elem-ary-rest-iter.js         |  2 +-
 .../dstr-ary-ptrn-elem-ary-val-null.js          |  2 +-
 .../dstr-ary-ptrn-elem-id-init-exhausted.js     |  2 +-
 .../dstr-ary-ptrn-elem-id-init-fn-name-arrow.js |  2 +-
 .../dstr-ary-ptrn-elem-id-init-fn-name-class.js |  2 +-
 .../dstr-ary-ptrn-elem-id-init-fn-name-cover.js |  2 +-
 .../dstr-ary-ptrn-elem-id-init-fn-name-fn.js    |  2 +-
 .../dstr-ary-ptrn-elem-id-init-fn-name-gen.js   |  3 ++-
 .../dstr-ary-ptrn-elem-id-init-hole.js          |  2 +-
 .../dstr-ary-ptrn-elem-id-init-skipped.js       |  2 +-
 .../dstr-ary-ptrn-elem-id-init-throws.js        |  2 +-
 .../dstr-ary-ptrn-elem-id-init-undef.js         |  2 +-
 .../dstr-ary-ptrn-elem-id-init-unresolvable.js  |  2 +-
 .../dstr-ary-ptrn-elem-id-iter-complete.js      |  2 +-
 .../dstr-ary-ptrn-elem-id-iter-done.js          |  2 +-
 .../dstr-ary-ptrn-elem-id-iter-step-err.js      |  2 +-
 .../dstr-ary-ptrn-elem-id-iter-val-err.js       |  2 +-
 .../dstr-ary-ptrn-elem-id-iter-val.js           |  2 +-
 .../dstr-ary-ptrn-elem-obj-id-init.js           |  2 +-
 .../generators/dstr-ary-ptrn-elem-obj-id.js     |  2 +-
 .../dstr-ary-ptrn-elem-obj-prop-id-init.js      |  2 +-
 .../dstr-ary-ptrn-elem-obj-prop-id.js           |  2 +-
 .../dstr-ary-ptrn-elem-obj-val-null.js          |  2 +-
 .../dstr-ary-ptrn-elem-obj-val-undef.js         |  2 +-
 .../generators/dstr-ary-ptrn-rest-ary-elem.js   |  2 +-
 .../generators/dstr-ary-ptrn-rest-ary-rest.js   |  2 +-
 .../generators/dstr-ary-ptrn-rest-id-elision.js |  2 +-
 .../dstr-ary-ptrn-rest-id-exhausted.js          |  2 +-
 .../dstr-ary-ptrn-rest-id-iter-val-err.js       |  2 +-
 .../generators/dstr-ary-ptrn-rest-id.js         |  2 +-
 .../generators/dstr-ary-ptrn-rest-init-ary.js   |  2 +-
 .../generators/dstr-ary-ptrn-rest-init-id.js    |  2 +-
 .../generators/dstr-ary-ptrn-rest-init-obj.js   |  2 +-
 .../dstr-ary-ptrn-rest-not-final-ary.js         |  2 +-
 .../dstr-ary-ptrn-rest-not-final-id.js          |  2 +-
 .../dstr-ary-ptrn-rest-not-final-obj.js         |  2 +-
 .../generators/dstr-ary-ptrn-rest-obj-id.js     |  2 +-
 .../dstr-ary-ptrn-rest-obj-prop-id.js           |  2 +-
 .../generators/dstr-dflt-ary-init-iter-close.js |  2 +-
 .../dstr-dflt-ary-init-iter-get-err.js          |  2 +-
 .../dstr-dflt-ary-init-iter-no-close.js         |  2 +-
 .../generators/dstr-dflt-ary-name-iter-val.js   |  2 +-
 .../dstr-dflt-ary-ptrn-elem-ary-elem-init.js    |  2 +-
 .../dstr-dflt-ary-ptrn-elem-ary-elem-iter.js    |  2 +-
 .../dstr-dflt-ary-ptrn-elem-ary-empty-init.js   |  3 ++-
 .../dstr-dflt-ary-ptrn-elem-ary-empty-iter.js   |  2 +-
 .../dstr-dflt-ary-ptrn-elem-ary-rest-init.js    |  2 +-
 .../dstr-dflt-ary-ptrn-elem-ary-rest-iter.js    |  2 +-
 .../dstr-dflt-ary-ptrn-elem-ary-val-null.js     |  2 +-
 ...dstr-dflt-ary-ptrn-elem-id-init-exhausted.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-class.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-cover.js |  2 +-
 ...str-dflt-ary-ptrn-elem-id-init-fn-name-fn.js |  2 +-
 ...tr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 .../dstr-dflt-ary-ptrn-elem-id-init-hole.js     |  2 +-
 .../dstr-dflt-ary-ptrn-elem-id-init-skipped.js  |  2 +-
 .../dstr-dflt-ary-ptrn-elem-id-init-throws.js   |  2 +-
 .../dstr-dflt-ary-ptrn-elem-id-init-undef.js    |  2 +-
 ...r-dflt-ary-ptrn-elem-id-init-unresolvable.js |  2 +-
 .../dstr-dflt-ary-ptrn-elem-id-iter-complete.js |  2 +-
 .../dstr-dflt-ary-ptrn-elem-id-iter-done.js     |  2 +-
 .../dstr-dflt-ary-ptrn-elem-id-iter-step-err.js |  2 +-
 .../dstr-dflt-ary-ptrn-elem-id-iter-val-err.js  |  2 +-
 .../dstr-dflt-ary-ptrn-elem-id-iter-val.js      |  2 +-
 .../dstr-dflt-ary-ptrn-elem-obj-id-init.js      |  2 +-
 .../dstr-dflt-ary-ptrn-elem-obj-id.js           |  2 +-
 .../dstr-dflt-ary-ptrn-elem-obj-prop-id-init.js |  2 +-
 .../dstr-dflt-ary-ptrn-elem-obj-prop-id.js      |  2 +-
 .../dstr-dflt-ary-ptrn-elem-obj-val-null.js     |  2 +-
 .../dstr-dflt-ary-ptrn-elem-obj-val-undef.js    |  2 +-
 .../dstr-dflt-ary-ptrn-rest-ary-elem.js         |  2 +-
 .../dstr-dflt-ary-ptrn-rest-ary-rest.js         |  2 +-
 .../dstr-dflt-ary-ptrn-rest-id-elision.js       |  2 +-
 .../dstr-dflt-ary-ptrn-rest-id-exhausted.js     |  2 +-
 .../dstr-dflt-ary-ptrn-rest-id-iter-val-err.js  |  2 +-
 .../generators/dstr-dflt-ary-ptrn-rest-id.js    |  2 +-
 .../dstr-dflt-ary-ptrn-rest-init-ary.js         |  2 +-
 .../dstr-dflt-ary-ptrn-rest-init-id.js          |  2 +-
 .../dstr-dflt-ary-ptrn-rest-init-obj.js         |  2 +-
 .../dstr-dflt-ary-ptrn-rest-not-final-ary.js    |  2 +-
 .../dstr-dflt-ary-ptrn-rest-not-final-id.js     |  2 +-
 .../dstr-dflt-ary-ptrn-rest-not-final-obj.js    |  2 +-
 .../dstr-dflt-ary-ptrn-rest-obj-id.js           |  2 +-
 .../dstr-dflt-ary-ptrn-rest-obj-prop-id.js      |  2 +-
 .../generators/dstr-dflt-obj-init-null.js       |  2 +-
 .../generators/dstr-dflt-obj-init-undefined.js  |  2 +-
 .../generators/dstr-dflt-obj-ptrn-empty.js      |  2 +-
 .../dstr-dflt-obj-ptrn-id-get-value-err.js      |  2 +-
 .../dstr-dflt-obj-ptrn-id-init-fn-name-arrow.js |  2 +-
 .../dstr-dflt-obj-ptrn-id-init-fn-name-class.js |  2 +-
 .../dstr-dflt-obj-ptrn-id-init-fn-name-cover.js |  2 +-
 .../dstr-dflt-obj-ptrn-id-init-fn-name-fn.js    |  2 +-
 .../dstr-dflt-obj-ptrn-id-init-fn-name-gen.js   |  3 ++-
 .../dstr-dflt-obj-ptrn-id-init-skipped.js       |  2 +-
 .../dstr-dflt-obj-ptrn-id-init-throws.js        |  2 +-
 .../dstr-dflt-obj-ptrn-id-init-unresolvable.js  |  2 +-
 .../dstr-dflt-obj-ptrn-id-trailing-comma.js     |  2 +-
 .../generators/dstr-dflt-obj-ptrn-list-err.js   |  2 +-
 .../dstr-dflt-obj-ptrn-prop-ary-init.js         |  2 +-
 ...str-dflt-obj-ptrn-prop-ary-trailing-comma.js |  2 +-
 .../dstr-dflt-obj-ptrn-prop-ary-value-null.js   |  2 +-
 .../generators/dstr-dflt-obj-ptrn-prop-ary.js   |  2 +-
 .../dstr-dflt-obj-ptrn-prop-eval-err.js         |  2 +-
 .../dstr-dflt-obj-ptrn-prop-id-get-value-err.js |  2 +-
 .../dstr-dflt-obj-ptrn-prop-id-init-skipped.js  |  2 +-
 .../dstr-dflt-obj-ptrn-prop-id-init-throws.js   |  2 +-
 ...r-dflt-obj-ptrn-prop-id-init-unresolvable.js |  2 +-
 .../dstr-dflt-obj-ptrn-prop-id-init.js          |  2 +-
 ...dstr-dflt-obj-ptrn-prop-id-trailing-comma.js |  2 +-
 .../generators/dstr-dflt-obj-ptrn-prop-id.js    |  2 +-
 .../dstr-dflt-obj-ptrn-prop-obj-init.js         |  2 +-
 .../dstr-dflt-obj-ptrn-prop-obj-value-null.js   |  2 +-
 .../dstr-dflt-obj-ptrn-prop-obj-value-undef.js  |  2 +-
 .../generators/dstr-dflt-obj-ptrn-prop-obj.js   |  2 +-
 .../dstr-dflt-obj-ptrn-rest-getter.js           |  2 +-
 ...tr-dflt-obj-ptrn-rest-skip-non-enumerable.js |  2 +-
 .../dstr-dflt-obj-ptrn-rest-val-obj.js          |  2 +-
 .../generators/dstr-obj-init-null.js            |  2 +-
 .../generators/dstr-obj-init-undefined.js       |  2 +-
 .../generators/dstr-obj-ptrn-empty.js           |  2 +-
 .../dstr-obj-ptrn-id-get-value-err.js           |  2 +-
 .../dstr-obj-ptrn-id-init-fn-name-arrow.js      |  2 +-
 .../dstr-obj-ptrn-id-init-fn-name-class.js      |  2 +-
 .../dstr-obj-ptrn-id-init-fn-name-cover.js      |  2 +-
 .../dstr-obj-ptrn-id-init-fn-name-fn.js         |  2 +-
 .../dstr-obj-ptrn-id-init-fn-name-gen.js        |  3 ++-
 .../generators/dstr-obj-ptrn-id-init-skipped.js |  2 +-
 .../generators/dstr-obj-ptrn-id-init-throws.js  |  2 +-
 .../dstr-obj-ptrn-id-init-unresolvable.js       |  2 +-
 .../dstr-obj-ptrn-id-trailing-comma.js          |  2 +-
 .../generators/dstr-obj-ptrn-list-err.js        |  2 +-
 .../generators/dstr-obj-ptrn-prop-ary-init.js   |  2 +-
 .../dstr-obj-ptrn-prop-ary-trailing-comma.js    |  2 +-
 .../dstr-obj-ptrn-prop-ary-value-null.js        |  2 +-
 .../generators/dstr-obj-ptrn-prop-ary.js        |  2 +-
 .../generators/dstr-obj-ptrn-prop-eval-err.js   |  2 +-
 .../dstr-obj-ptrn-prop-id-get-value-err.js      |  2 +-
 .../dstr-obj-ptrn-prop-id-init-skipped.js       |  2 +-
 .../dstr-obj-ptrn-prop-id-init-throws.js        |  2 +-
 .../dstr-obj-ptrn-prop-id-init-unresolvable.js  |  2 +-
 .../generators/dstr-obj-ptrn-prop-id-init.js    |  2 +-
 .../dstr-obj-ptrn-prop-id-trailing-comma.js     |  2 +-
 .../generators/dstr-obj-ptrn-prop-id.js         |  2 +-
 .../generators/dstr-obj-ptrn-prop-obj-init.js   |  2 +-
 .../dstr-obj-ptrn-prop-obj-value-null.js        |  2 +-
 .../dstr-obj-ptrn-prop-obj-value-undef.js       |  2 +-
 .../generators/dstr-obj-ptrn-prop-obj.js        |  2 +-
 .../generators/dstr-obj-ptrn-rest-getter.js     |  2 +-
 .../dstr-obj-ptrn-rest-skip-non-enumerable.js   |  2 +-
 .../generators/dstr-obj-ptrn-rest-val-obj.js    |  2 +-
 .../generators/eval-body-proto-realm.js         |  2 +-
 .../expressions/generators/has-instance.js      |  1 +
 .../expressions/generators/implicit-name.js     |  1 +
 .../generators/invoke-as-constructor.js         |  1 +
 .../expressions/generators/length-dflt.js       |  2 +-
 .../generators/length-property-descriptor.js    |  1 +
 test/language/expressions/generators/name.js    |  1 +
 ...named-yield-as-binding-identifier-escaped.js |  2 ++
 .../named-yield-as-binding-identifier.js        |  2 ++
 ...med-yield-as-identifier-reference-escaped.js |  2 ++
 .../named-yield-as-identifier-reference.js      |  2 ++
 .../named-yield-as-label-identifier-escaped.js  |  2 ++
 .../named-yield-as-label-identifier.js          |  2 ++
 .../named-yield-identifier-non-strict.js        |  2 ++
 .../named-yield-identifier-spread-non-strict.js |  3 ++-
 .../named-yield-identifier-spread-strict.js     |  3 ++-
 .../generators/named-yield-identifier-strict.js |  2 ++
 .../named-yield-spread-arr-multiple.js          |  2 ++
 .../generators/named-yield-spread-arr-single.js |  2 ++
 .../generators/named-yield-spread-obj.js        |  3 ++-
 test/language/expressions/generators/no-name.js |  1 +
 .../language/expressions/generators/no-yield.js | 11 ++++++-----
 .../expressions/generators/param-dflt-yield.js  |  2 +-
 .../generators/params-dflt-args-unmapped.js     |  2 +-
 .../generators/params-dflt-ref-arguments.js     |  2 +-
 .../params-trailing-comma-multiple.js           |  2 ++
 .../generators/params-trailing-comma-single.js  |  2 ++
 .../generators/prototype-own-properties.js      |  1 +
 .../generators/prototype-property-descriptor.js |  1 +
 .../prototype-relation-to-function.js           |  1 +
 .../expressions/generators/prototype-typeof.js  |  1 +
 .../generators/prototype-uniqueness.js          |  1 +
 .../expressions/generators/prototype-value.js   |  1 +
 .../rest-params-trailing-comma-early-error.js   |  2 ++
 test/language/expressions/generators/return.js  |  9 +++++----
 .../generators/scope-body-lex-distinct.js       |  2 +-
 .../generators/scope-name-var-close.js          |  1 +
 .../scope-name-var-open-non-strict.js           |  1 +
 .../generators/scope-name-var-open-strict.js    |  1 +
 .../generators/scope-param-elem-var-close.js    |  1 +
 .../generators/scope-param-elem-var-open.js     |  1 +
 .../scope-param-rest-elem-var-close.js          |  1 +
 .../scope-param-rest-elem-var-open.js           |  1 +
 .../generators/scope-paramsbody-var-close.js    |  1 +
 .../generators/scope-paramsbody-var-open.js     |  1 +
 .../use-strict-with-non-simple-param.js         |  1 +
 .../yield-as-binding-identifier-escaped.js      |  2 ++
 .../generators/yield-as-binding-identifier.js   |  2 ++
 ...as-function-expression-binding-identifier.js | 13 +++++++------
 ...s-generator-expression-binding-identifier.js | 17 +++++++++--------
 .../yield-as-identifier-in-nested-function.js   | 13 +++++++------
 .../yield-as-identifier-reference-escaped.js    |  2 ++
 .../generators/yield-as-identifier-reference.js |  2 ++
 .../yield-as-label-identifier-escaped.js        |  2 ++
 .../generators/yield-as-label-identifier.js     |  2 ++
 .../yield-as-literal-property-name.js           | 11 ++++++-----
 .../yield-as-logical-or-expression.js           | 15 ++++++++-------
 .../generators/yield-as-parameter.js            | 17 +++++++++--------
 .../generators/yield-as-property-name.js        | 11 ++++++-----
 .../generators/yield-as-statement.js            |  9 +++++----
 .../generators/yield-as-yield-operand.js        | 11 ++++++-----
 .../generators/yield-identifier-non-strict.js   |  2 ++
 .../yield-identifier-spread-non-strict.js       |  3 ++-
 .../yield-identifier-spread-strict.js           |  3 ++-
 .../generators/yield-identifier-strict.js       |  2 ++
 .../expressions/generators/yield-newline.js     |  9 +++++----
 .../generators/yield-spread-arr-multiple.js     |  2 ++
 .../generators/yield-spread-arr-single.js       |  2 ++
 .../expressions/generators/yield-spread-obj.js  |  3 ++-
 .../generators/yield-star-after-newline.js      | 15 ++++++++-------
 .../generators/yield-star-before-newline.js     |  9 +++++----
 .../generators/yield-weak-binding.js            | 15 ++++++++-------
 .../new/spread-err-mult-err-expr-throws.js      |  2 ++
 ...ync-gen-meth-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...en-meth-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...en-meth-dflt-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...th-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...en-meth-dflt-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...ync-gen-meth-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 .../object/dstr-gen-meth-ary-init-iter-close.js |  2 +-
 .../dstr-gen-meth-ary-init-iter-get-err.js      |  2 +-
 .../dstr-gen-meth-ary-init-iter-no-close.js     |  2 +-
 .../object/dstr-gen-meth-ary-name-iter-val.js   |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-ary-elem-init.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-ary-elem-iter.js |  2 +-
 ...str-gen-meth-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...str-gen-meth-ary-ptrn-elem-ary-empty-iter.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-ary-rest-init.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-ary-rest-iter.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-ary-val-null.js |  2 +-
 ...-gen-meth-ary-ptrn-elem-id-init-exhausted.js |  2 +-
 ...-meth-ary-ptrn-elem-id-init-fn-name-arrow.js |  2 +-
 ...-meth-ary-ptrn-elem-id-init-fn-name-class.js |  2 +-
 ...-meth-ary-ptrn-elem-id-init-fn-name-cover.js |  2 +-
 ...gen-meth-ary-ptrn-elem-id-init-fn-name-fn.js |  2 +-
 ...en-meth-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 .../dstr-gen-meth-ary-ptrn-elem-id-init-hole.js |  2 +-
 ...tr-gen-meth-ary-ptrn-elem-id-init-skipped.js |  2 +-
 ...str-gen-meth-ary-ptrn-elem-id-init-throws.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-id-init-undef.js |  2 +-
 ...n-meth-ary-ptrn-elem-id-init-unresolvable.js |  2 +-
 ...r-gen-meth-ary-ptrn-elem-id-iter-complete.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-id-iter-done.js |  2 +-
 ...r-gen-meth-ary-ptrn-elem-id-iter-step-err.js |  2 +-
 ...tr-gen-meth-ary-ptrn-elem-id-iter-val-err.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-id-iter-val.js  |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-obj-id-init.js  |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-obj-id.js       |  2 +-
 ...r-gen-meth-ary-ptrn-elem-obj-prop-id-init.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-obj-prop-id.js  |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-obj-val-null.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-obj-val-undef.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-ary-elem.js     |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-ary-rest.js     |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-id-elision.js   |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-id-exhausted.js |  2 +-
 ...tr-gen-meth-ary-ptrn-rest-id-iter-val-err.js |  2 +-
 .../object/dstr-gen-meth-ary-ptrn-rest-id.js    |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-init-ary.js     |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-init-id.js      |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-init-obj.js     |  2 +-
 ...dstr-gen-meth-ary-ptrn-rest-not-final-ary.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-not-final-id.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-rest-not-final-obj.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-obj-id.js       |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js  |  2 +-
 .../dstr-gen-meth-dflt-ary-init-iter-close.js   |  2 +-
 .../dstr-gen-meth-dflt-ary-init-iter-get-err.js |  2 +-
 ...dstr-gen-meth-dflt-ary-init-iter-no-close.js |  2 +-
 .../dstr-gen-meth-dflt-ary-name-iter-val.js     |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-ary-elem-init.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-ary-elem-iter.js |  2 +-
 ...en-meth-dflt-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...en-meth-dflt-ary-ptrn-elem-ary-empty-iter.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-ary-rest-init.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-ary-rest-iter.js |  2 +-
 ...-gen-meth-dflt-ary-ptrn-elem-ary-val-null.js |  2 +-
 ...meth-dflt-ary-ptrn-elem-id-init-exhausted.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-class.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-cover.js |  2 +-
 ...eth-dflt-ary-ptrn-elem-id-init-fn-name-fn.js |  2 +-
 ...th-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...-gen-meth-dflt-ary-ptrn-elem-id-init-hole.js |  2 +-
 ...n-meth-dflt-ary-ptrn-elem-id-init-skipped.js |  2 +-
 ...en-meth-dflt-ary-ptrn-elem-id-init-throws.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-id-init-undef.js |  2 +-
 ...h-dflt-ary-ptrn-elem-id-init-unresolvable.js |  2 +-
 ...-meth-dflt-ary-ptrn-elem-id-iter-complete.js |  2 +-
 ...-gen-meth-dflt-ary-ptrn-elem-id-iter-done.js |  2 +-
 ...-meth-dflt-ary-ptrn-elem-id-iter-step-err.js |  2 +-
 ...n-meth-dflt-ary-ptrn-elem-id-iter-val-err.js |  2 +-
 ...r-gen-meth-dflt-ary-ptrn-elem-id-iter-val.js |  2 +-
 ...r-gen-meth-dflt-ary-ptrn-elem-obj-id-init.js |  2 +-
 .../dstr-gen-meth-dflt-ary-ptrn-elem-obj-id.js  |  2 +-
 ...-meth-dflt-ary-ptrn-elem-obj-prop-id-init.js |  2 +-
 ...r-gen-meth-dflt-ary-ptrn-elem-obj-prop-id.js |  2 +-
 ...-gen-meth-dflt-ary-ptrn-elem-obj-val-null.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-obj-val-undef.js |  2 +-
 ...dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js |  2 +-
 ...dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js |  2 +-
 ...tr-gen-meth-dflt-ary-ptrn-rest-id-elision.js |  2 +-
 ...-gen-meth-dflt-ary-ptrn-rest-id-exhausted.js |  2 +-
 ...n-meth-dflt-ary-ptrn-rest-id-iter-val-err.js |  2 +-
 .../dstr-gen-meth-dflt-ary-ptrn-rest-id.js      |  2 +-
 ...dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js |  2 +-
 .../dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js |  2 +-
 ...dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-rest-not-final-ary.js |  2 +-
 ...-gen-meth-dflt-ary-ptrn-rest-not-final-id.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-rest-not-final-obj.js |  2 +-
 .../dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js  |  2 +-
 ...r-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js |  2 +-
 .../object/dstr-gen-meth-dflt-obj-init-null.js  |  2 +-
 .../dstr-gen-meth-dflt-obj-init-undefined.js    |  2 +-
 .../object/dstr-gen-meth-dflt-obj-ptrn-empty.js |  2 +-
 ...r-gen-meth-dflt-obj-ptrn-id-get-value-err.js |  2 +-
 ...-meth-dflt-obj-ptrn-id-init-fn-name-arrow.js |  2 +-
 ...-meth-dflt-obj-ptrn-id-init-fn-name-class.js |  2 +-
 ...-meth-dflt-obj-ptrn-id-init-fn-name-cover.js |  2 +-
 ...gen-meth-dflt-obj-ptrn-id-init-fn-name-fn.js |  2 +-
 ...en-meth-dflt-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...tr-gen-meth-dflt-obj-ptrn-id-init-skipped.js |  2 +-
 ...str-gen-meth-dflt-obj-ptrn-id-init-throws.js |  2 +-
 ...n-meth-dflt-obj-ptrn-id-init-unresolvable.js |  2 +-
 ...-gen-meth-dflt-obj-ptrn-id-trailing-comma.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-list-err.js     |  2 +-
 ...dstr-gen-meth-dflt-obj-ptrn-prop-ary-init.js |  2 +-
 ...eth-dflt-obj-ptrn-prop-ary-trailing-comma.js |  2 +-
 ...en-meth-dflt-obj-ptrn-prop-ary-value-null.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-prop-ary.js     |  2 +-
 ...dstr-gen-meth-dflt-obj-ptrn-prop-eval-err.js |  2 +-
 ...-meth-dflt-obj-ptrn-prop-id-get-value-err.js |  2 +-
 ...n-meth-dflt-obj-ptrn-prop-id-init-skipped.js |  2 +-
 ...en-meth-dflt-obj-ptrn-prop-id-init-throws.js |  2 +-
 ...h-dflt-obj-ptrn-prop-id-init-unresolvable.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-prop-id-init.js |  2 +-
 ...meth-dflt-obj-ptrn-prop-id-trailing-comma.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-prop-id.js      |  2 +-
 ...dstr-gen-meth-dflt-obj-ptrn-prop-obj-init.js |  2 +-
 ...en-meth-dflt-obj-ptrn-prop-obj-value-null.js |  2 +-
 ...n-meth-dflt-obj-ptrn-prop-obj-value-undef.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-prop-obj.js     |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-rest-getter.js  |  2 +-
 ...th-dflt-obj-ptrn-rest-skip-non-enumerable.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js |  2 +-
 .../object/dstr-gen-meth-obj-init-null.js       |  2 +-
 .../object/dstr-gen-meth-obj-init-undefined.js  |  2 +-
 .../object/dstr-gen-meth-obj-ptrn-empty.js      |  2 +-
 .../dstr-gen-meth-obj-ptrn-id-get-value-err.js  |  2 +-
 ...r-gen-meth-obj-ptrn-id-init-fn-name-arrow.js |  2 +-
 ...r-gen-meth-obj-ptrn-id-init-fn-name-class.js |  2 +-
 ...r-gen-meth-obj-ptrn-id-init-fn-name-cover.js |  2 +-
 ...dstr-gen-meth-obj-ptrn-id-init-fn-name-fn.js |  2 +-
 ...str-gen-meth-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 .../dstr-gen-meth-obj-ptrn-id-init-skipped.js   |  2 +-
 .../dstr-gen-meth-obj-ptrn-id-init-throws.js    |  2 +-
 ...tr-gen-meth-obj-ptrn-id-init-unresolvable.js |  2 +-
 .../dstr-gen-meth-obj-ptrn-id-trailing-comma.js |  2 +-
 .../object/dstr-gen-meth-obj-ptrn-list-err.js   |  2 +-
 .../dstr-gen-meth-obj-ptrn-prop-ary-init.js     |  2 +-
 ...gen-meth-obj-ptrn-prop-ary-trailing-comma.js |  2 +-
 ...str-gen-meth-obj-ptrn-prop-ary-value-null.js |  2 +-
 .../object/dstr-gen-meth-obj-ptrn-prop-ary.js   |  2 +-
 .../dstr-gen-meth-obj-ptrn-prop-eval-err.js     |  2 +-
 ...r-gen-meth-obj-ptrn-prop-id-get-value-err.js |  2 +-
 ...tr-gen-meth-obj-ptrn-prop-id-init-skipped.js |  2 +-
 ...str-gen-meth-obj-ptrn-prop-id-init-throws.js |  2 +-
 ...n-meth-obj-ptrn-prop-id-init-unresolvable.js |  2 +-
 .../dstr-gen-meth-obj-ptrn-prop-id-init.js      |  2 +-
 ...-gen-meth-obj-ptrn-prop-id-trailing-comma.js |  2 +-
 .../object/dstr-gen-meth-obj-ptrn-prop-id.js    |  2 +-
 .../dstr-gen-meth-obj-ptrn-prop-obj-init.js     |  2 +-
 ...str-gen-meth-obj-ptrn-prop-obj-value-null.js |  2 +-
 ...tr-gen-meth-obj-ptrn-prop-obj-value-undef.js |  2 +-
 .../object/dstr-gen-meth-obj-ptrn-prop-obj.js   |  2 +-
 .../dstr-gen-meth-obj-ptrn-rest-getter.js       |  2 +-
 ...en-meth-obj-ptrn-rest-skip-non-enumerable.js |  2 +-
 .../dstr-gen-meth-obj-ptrn-rest-val-obj.js      |  2 +-
 .../dstr-meth-ary-ptrn-elem-ary-empty-init.js   |  3 ++-
 ...tr-meth-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...tr-meth-dflt-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...th-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...tr-meth-dflt-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 .../dstr-meth-obj-ptrn-id-init-fn-name-gen.js   |  3 ++-
 .../gen-meth-dflt-params-abrupt.js              |  3 ++-
 ...en-meth-dflt-params-arg-val-not-undefined.js |  3 ++-
 .../gen-meth-dflt-params-arg-val-undefined.js   |  3 ++-
 .../gen-meth-dflt-params-duplicates.js          |  3 ++-
 .../gen-meth-dflt-params-ref-later.js           |  3 ++-
 .../gen-meth-dflt-params-ref-prior.js           |  3 ++-
 .../gen-meth-dflt-params-ref-self.js            |  3 ++-
 .../gen-meth-dflt-params-rest.js                |  3 ++-
 .../gen-meth-dflt-params-trailing-comma.js      |  2 ++
 .../gen-meth-params-trailing-comma-multiple.js  |  2 ++
 .../gen-meth-params-trailing-comma-single.js    |  2 ++
 ...th-rest-params-trailing-comma-early-error.js |  2 ++
 .../gen-yield-as-binding-identifier-escaped.js  |  2 ++
 .../gen-yield-as-binding-identifier.js          |  2 ++
 ...gen-yield-as-identifier-reference-escaped.js |  2 ++
 .../gen-yield-as-identifier-reference.js        |  2 ++
 .../gen-yield-as-label-identifier-escaped.js    |  2 ++
 .../gen-yield-as-label-identifier.js            |  2 ++
 .../gen-yield-identifier-non-strict.js          |  2 ++
 .../gen-yield-identifier-spread-non-strict.js   |  3 ++-
 .../gen-yield-identifier-spread-strict.js       |  3 ++-
 .../gen-yield-identifier-strict.js              |  2 ++
 .../gen-yield-spread-arr-multiple.js            |  2 ++
 .../gen-yield-spread-arr-single.js              |  2 ++
 .../method-definition/gen-yield-spread-obj.js   |  3 ++-
 .../call-spread-err-mult-err-expr-throws.js     |  2 ++
 .../yield/arguments-object-attributes.js        |  1 +
 .../expressions/yield/captured-free-vars.js     |  1 +
 ...-parameters-after-reassignment-non-strict.js |  1 +
 ...rmal-parameters-after-reassignment-strict.js |  1 +
 .../expressions/yield/formal-parameters.js      |  1 +
 test/language/expressions/yield/from-catch.js   |  1 +
 test/language/expressions/yield/from-try.js     |  1 +
 test/language/expressions/yield/from-with.js    |  1 +
 .../expressions/yield/in-iteration-stmt.js      |  1 +
 test/language/expressions/yield/in-rltn-expr.js |  1 +
 .../expressions/yield/iter-value-specified.js   |  1 +
 .../expressions/yield/iter-value-unspecified.js |  1 +
 test/language/expressions/yield/rhs-iter.js     |  2 +-
 test/language/expressions/yield/rhs-omitted.js  |  9 +++++----
 .../language/expressions/yield/rhs-primitive.js |  9 +++++----
 test/language/expressions/yield/rhs-regexp.js   |  1 +
 .../expressions/yield/rhs-template-middle.js    |  1 +
 .../expressions/yield/rhs-unresolvable.js       |  1 +
 test/language/expressions/yield/rhs-yield.js    |  1 +
 test/language/expressions/yield/star-array.js   |  1 +
 .../expressions/yield/star-in-iteration-stmt.js |  1 +
 .../expressions/yield/star-in-rltn-expr.js      |  2 +-
 .../language/expressions/yield/star-iterable.js |  2 +-
 .../yield/star-rhs-iter-get-call-err.js         |  2 +-
 .../yield/star-rhs-iter-get-call-non-obj.js     |  2 +-
 .../yield/star-rhs-iter-get-get-err.js          |  2 +-
 .../yield/star-rhs-iter-nrml-next-call-err.js   |  2 +-
 .../star-rhs-iter-nrml-next-call-non-obj.js     |  2 +-
 .../yield/star-rhs-iter-nrml-next-get-err.js    |  2 +-
 .../yield/star-rhs-iter-nrml-next-invoke.js     |  2 +-
 .../yield/star-rhs-iter-nrml-res-done-err.js    |  2 +-
 .../star-rhs-iter-nrml-res-done-no-value.js     |  2 +-
 .../yield/star-rhs-iter-nrml-res-value-err.js   |  2 +-
 .../yield/star-rhs-iter-nrml-res-value-final.js |  2 +-
 .../yield/star-rhs-iter-rtrn-no-rtrn.js         |  2 +-
 .../yield/star-rhs-iter-rtrn-res-done-err.js    |  2 +-
 .../star-rhs-iter-rtrn-res-done-no-value.js     |  2 +-
 .../yield/star-rhs-iter-rtrn-res-value-err.js   |  2 +-
 .../yield/star-rhs-iter-rtrn-res-value-final.js |  2 +-
 .../yield/star-rhs-iter-rtrn-rtrn-call-err.js   |  2 +-
 .../star-rhs-iter-rtrn-rtrn-call-non-obj.js     |  2 +-
 .../yield/star-rhs-iter-rtrn-rtrn-get-err.js    |  2 +-
 .../yield/star-rhs-iter-rtrn-rtrn-invoke.js     |  2 +-
 .../yield/star-rhs-iter-thrw-res-done-err.js    |  2 +-
 .../star-rhs-iter-thrw-res-done-no-value.js     |  2 +-
 .../yield/star-rhs-iter-thrw-res-value-err.js   |  2 +-
 .../yield/star-rhs-iter-thrw-res-value-final.js |  2 +-
 .../yield/star-rhs-iter-thrw-thrw-call-err.js   |  2 +-
 .../star-rhs-iter-thrw-thrw-call-non-obj.js     |  2 +-
 .../yield/star-rhs-iter-thrw-thrw-get-err.js    |  2 +-
 .../yield/star-rhs-iter-thrw-thrw-invoke.js     |  2 +-
 .../star-rhs-iter-thrw-violation-no-rtrn.js     |  2 +-
 ...tar-rhs-iter-thrw-violation-rtrn-call-err.js |  2 +-
 ...rhs-iter-thrw-violation-rtrn-call-non-obj.js |  2 +-
 ...star-rhs-iter-thrw-violation-rtrn-get-err.js |  2 +-
 .../star-rhs-iter-thrw-violation-rtrn-invoke.js |  2 +-
 .../expressions/yield/star-rhs-unresolvable.js  |  1 +
 test/language/expressions/yield/star-string.js  |  1 +
 test/language/expressions/yield/then-return.js  |  1 +
 test/language/expressions/yield/within-for.js   |  1 +
 .../dstr-ary-ptrn-elem-ary-empty-init.js        |  3 ++-
 .../dstr-ary-ptrn-elem-id-init-fn-name-gen.js   |  3 ++-
 .../dstr-dflt-ary-ptrn-elem-ary-empty-init.js   |  3 ++-
 ...tr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 .../dstr-dflt-obj-ptrn-id-init-fn-name-gen.js   |  3 ++-
 .../dstr-obj-ptrn-id-init-fn-name-gen.js        |  3 ++-
 ...ync-gen-meth-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...en-meth-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...en-meth-dflt-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...th-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...en-meth-dflt-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...ync-gen-meth-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...-meth-static-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...-static-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...-static-dflt-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...ic-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...-static-dflt-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...-meth-static-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 .../class/dstr-gen-meth-ary-init-iter-close.js  |  2 +-
 .../dstr-gen-meth-ary-init-iter-get-err.js      |  2 +-
 .../dstr-gen-meth-ary-init-iter-no-close.js     |  2 +-
 .../class/dstr-gen-meth-ary-name-iter-val.js    |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-ary-elem-init.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-ary-elem-iter.js |  2 +-
 ...str-gen-meth-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...str-gen-meth-ary-ptrn-elem-ary-empty-iter.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-ary-rest-init.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-ary-rest-iter.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-ary-val-null.js |  2 +-
 ...-gen-meth-ary-ptrn-elem-id-init-exhausted.js |  2 +-
 ...-meth-ary-ptrn-elem-id-init-fn-name-arrow.js |  2 +-
 ...-meth-ary-ptrn-elem-id-init-fn-name-class.js |  2 +-
 ...-meth-ary-ptrn-elem-id-init-fn-name-cover.js |  2 +-
 ...gen-meth-ary-ptrn-elem-id-init-fn-name-fn.js |  2 +-
 ...en-meth-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 .../dstr-gen-meth-ary-ptrn-elem-id-init-hole.js |  2 +-
 ...tr-gen-meth-ary-ptrn-elem-id-init-skipped.js |  2 +-
 ...str-gen-meth-ary-ptrn-elem-id-init-throws.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-id-init-undef.js |  2 +-
 ...n-meth-ary-ptrn-elem-id-init-unresolvable.js |  2 +-
 ...r-gen-meth-ary-ptrn-elem-id-iter-complete.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-id-iter-done.js |  2 +-
 ...r-gen-meth-ary-ptrn-elem-id-iter-step-err.js |  2 +-
 ...tr-gen-meth-ary-ptrn-elem-id-iter-val-err.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-id-iter-val.js  |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-obj-id-init.js  |  2 +-
 .../class/dstr-gen-meth-ary-ptrn-elem-obj-id.js |  2 +-
 ...r-gen-meth-ary-ptrn-elem-obj-prop-id-init.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-obj-prop-id.js  |  2 +-
 .../dstr-gen-meth-ary-ptrn-elem-obj-val-null.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-elem-obj-val-undef.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-ary-elem.js     |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-ary-rest.js     |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-id-elision.js   |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-id-exhausted.js |  2 +-
 ...tr-gen-meth-ary-ptrn-rest-id-iter-val-err.js |  2 +-
 .../class/dstr-gen-meth-ary-ptrn-rest-id.js     |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-init-ary.js     |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-init-id.js      |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-init-obj.js     |  2 +-
 ...dstr-gen-meth-ary-ptrn-rest-not-final-ary.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-not-final-id.js |  2 +-
 ...dstr-gen-meth-ary-ptrn-rest-not-final-obj.js |  2 +-
 .../class/dstr-gen-meth-ary-ptrn-rest-obj-id.js |  2 +-
 .../dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js  |  2 +-
 .../dstr-gen-meth-dflt-ary-init-iter-close.js   |  2 +-
 .../dstr-gen-meth-dflt-ary-init-iter-get-err.js |  2 +-
 ...dstr-gen-meth-dflt-ary-init-iter-no-close.js |  2 +-
 .../dstr-gen-meth-dflt-ary-name-iter-val.js     |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-ary-elem-init.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-ary-elem-iter.js |  2 +-
 ...en-meth-dflt-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...en-meth-dflt-ary-ptrn-elem-ary-empty-iter.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-ary-rest-init.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-ary-rest-iter.js |  2 +-
 ...-gen-meth-dflt-ary-ptrn-elem-ary-val-null.js |  2 +-
 ...meth-dflt-ary-ptrn-elem-id-init-exhausted.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-class.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-cover.js |  2 +-
 ...eth-dflt-ary-ptrn-elem-id-init-fn-name-fn.js |  2 +-
 ...th-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...-gen-meth-dflt-ary-ptrn-elem-id-init-hole.js |  2 +-
 ...n-meth-dflt-ary-ptrn-elem-id-init-skipped.js |  2 +-
 ...en-meth-dflt-ary-ptrn-elem-id-init-throws.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-id-init-undef.js |  2 +-
 ...h-dflt-ary-ptrn-elem-id-init-unresolvable.js |  2 +-
 ...-meth-dflt-ary-ptrn-elem-id-iter-complete.js |  2 +-
 ...-gen-meth-dflt-ary-ptrn-elem-id-iter-done.js |  2 +-
 ...-meth-dflt-ary-ptrn-elem-id-iter-step-err.js |  2 +-
 ...n-meth-dflt-ary-ptrn-elem-id-iter-val-err.js |  2 +-
 ...r-gen-meth-dflt-ary-ptrn-elem-id-iter-val.js |  2 +-
 ...r-gen-meth-dflt-ary-ptrn-elem-obj-id-init.js |  2 +-
 .../dstr-gen-meth-dflt-ary-ptrn-elem-obj-id.js  |  2 +-
 ...-meth-dflt-ary-ptrn-elem-obj-prop-id-init.js |  2 +-
 ...r-gen-meth-dflt-ary-ptrn-elem-obj-prop-id.js |  2 +-
 ...-gen-meth-dflt-ary-ptrn-elem-obj-val-null.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-elem-obj-val-undef.js |  2 +-
 ...dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js |  2 +-
 ...dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js |  2 +-
 ...tr-gen-meth-dflt-ary-ptrn-rest-id-elision.js |  2 +-
 ...-gen-meth-dflt-ary-ptrn-rest-id-exhausted.js |  2 +-
 ...n-meth-dflt-ary-ptrn-rest-id-iter-val-err.js |  2 +-
 .../dstr-gen-meth-dflt-ary-ptrn-rest-id.js      |  2 +-
 ...dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js |  2 +-
 .../dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js |  2 +-
 ...dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-rest-not-final-ary.js |  2 +-
 ...-gen-meth-dflt-ary-ptrn-rest-not-final-id.js |  2 +-
 ...gen-meth-dflt-ary-ptrn-rest-not-final-obj.js |  2 +-
 .../dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js  |  2 +-
 ...r-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js |  2 +-
 .../class/dstr-gen-meth-dflt-obj-init-null.js   |  2 +-
 .../dstr-gen-meth-dflt-obj-init-undefined.js    |  2 +-
 .../class/dstr-gen-meth-dflt-obj-ptrn-empty.js  |  2 +-
 ...r-gen-meth-dflt-obj-ptrn-id-get-value-err.js |  2 +-
 ...-meth-dflt-obj-ptrn-id-init-fn-name-arrow.js |  2 +-
 ...-meth-dflt-obj-ptrn-id-init-fn-name-class.js |  2 +-
 ...-meth-dflt-obj-ptrn-id-init-fn-name-cover.js |  2 +-
 ...gen-meth-dflt-obj-ptrn-id-init-fn-name-fn.js |  2 +-
 ...en-meth-dflt-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...tr-gen-meth-dflt-obj-ptrn-id-init-skipped.js |  2 +-
 ...str-gen-meth-dflt-obj-ptrn-id-init-throws.js |  2 +-
 ...n-meth-dflt-obj-ptrn-id-init-unresolvable.js |  2 +-
 ...-gen-meth-dflt-obj-ptrn-id-trailing-comma.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-list-err.js     |  2 +-
 ...dstr-gen-meth-dflt-obj-ptrn-prop-ary-init.js |  2 +-
 ...eth-dflt-obj-ptrn-prop-ary-trailing-comma.js |  2 +-
 ...en-meth-dflt-obj-ptrn-prop-ary-value-null.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-prop-ary.js     |  2 +-
 ...dstr-gen-meth-dflt-obj-ptrn-prop-eval-err.js |  2 +-
 ...-meth-dflt-obj-ptrn-prop-id-get-value-err.js |  2 +-
 ...n-meth-dflt-obj-ptrn-prop-id-init-skipped.js |  2 +-
 ...en-meth-dflt-obj-ptrn-prop-id-init-throws.js |  2 +-
 ...h-dflt-obj-ptrn-prop-id-init-unresolvable.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-prop-id-init.js |  2 +-
 ...meth-dflt-obj-ptrn-prop-id-trailing-comma.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-prop-id.js      |  2 +-
 ...dstr-gen-meth-dflt-obj-ptrn-prop-obj-init.js |  2 +-
 ...en-meth-dflt-obj-ptrn-prop-obj-value-null.js |  2 +-
 ...n-meth-dflt-obj-ptrn-prop-obj-value-undef.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-prop-obj.js     |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-rest-getter.js  |  2 +-
 ...th-dflt-obj-ptrn-rest-skip-non-enumerable.js |  2 +-
 .../dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js |  2 +-
 .../class/dstr-gen-meth-obj-init-null.js        |  2 +-
 .../class/dstr-gen-meth-obj-init-undefined.js   |  2 +-
 .../class/dstr-gen-meth-obj-ptrn-empty.js       |  2 +-
 .../dstr-gen-meth-obj-ptrn-id-get-value-err.js  |  2 +-
 ...r-gen-meth-obj-ptrn-id-init-fn-name-arrow.js |  2 +-
 ...r-gen-meth-obj-ptrn-id-init-fn-name-class.js |  2 +-
 ...r-gen-meth-obj-ptrn-id-init-fn-name-cover.js |  2 +-
 ...dstr-gen-meth-obj-ptrn-id-init-fn-name-fn.js |  2 +-
 ...str-gen-meth-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 .../dstr-gen-meth-obj-ptrn-id-init-skipped.js   |  2 +-
 .../dstr-gen-meth-obj-ptrn-id-init-throws.js    |  2 +-
 ...tr-gen-meth-obj-ptrn-id-init-unresolvable.js |  2 +-
 .../dstr-gen-meth-obj-ptrn-id-trailing-comma.js |  2 +-
 .../class/dstr-gen-meth-obj-ptrn-list-err.js    |  2 +-
 .../dstr-gen-meth-obj-ptrn-prop-ary-init.js     |  2 +-
 ...gen-meth-obj-ptrn-prop-ary-trailing-comma.js |  2 +-
 ...str-gen-meth-obj-ptrn-prop-ary-value-null.js |  2 +-
 .../class/dstr-gen-meth-obj-ptrn-prop-ary.js    |  2 +-
 .../dstr-gen-meth-obj-ptrn-prop-eval-err.js     |  2 +-
 ...r-gen-meth-obj-ptrn-prop-id-get-value-err.js |  2 +-
 ...tr-gen-meth-obj-ptrn-prop-id-init-skipped.js |  2 +-
 ...str-gen-meth-obj-ptrn-prop-id-init-throws.js |  2 +-
 ...n-meth-obj-ptrn-prop-id-init-unresolvable.js |  2 +-
 .../dstr-gen-meth-obj-ptrn-prop-id-init.js      |  2 +-
 ...-gen-meth-obj-ptrn-prop-id-trailing-comma.js |  2 +-
 .../class/dstr-gen-meth-obj-ptrn-prop-id.js     |  2 +-
 .../dstr-gen-meth-obj-ptrn-prop-obj-init.js     |  2 +-
 ...str-gen-meth-obj-ptrn-prop-obj-value-null.js |  2 +-
 ...tr-gen-meth-obj-ptrn-prop-obj-value-undef.js |  2 +-
 .../class/dstr-gen-meth-obj-ptrn-prop-obj.js    |  2 +-
 .../class/dstr-gen-meth-obj-ptrn-rest-getter.js |  2 +-
 ...en-meth-obj-ptrn-rest-skip-non-enumerable.js |  2 +-
 .../dstr-gen-meth-obj-ptrn-rest-val-obj.js      |  2 +-
 .../dstr-gen-meth-static-ary-init-iter-close.js |  2 +-
 ...str-gen-meth-static-ary-init-iter-get-err.js |  2 +-
 ...tr-gen-meth-static-ary-init-iter-no-close.js |  2 +-
 .../dstr-gen-meth-static-ary-name-iter-val.js   |  2 +-
 ...n-meth-static-ary-ptrn-elem-ary-elem-init.js |  2 +-
 ...n-meth-static-ary-ptrn-elem-ary-elem-iter.js |  2 +-
 ...-meth-static-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...-meth-static-ary-ptrn-elem-ary-empty-iter.js |  2 +-
 ...n-meth-static-ary-ptrn-elem-ary-rest-init.js |  2 +-
 ...n-meth-static-ary-ptrn-elem-ary-rest-iter.js |  2 +-
 ...en-meth-static-ary-ptrn-elem-ary-val-null.js |  2 +-
 ...th-static-ary-ptrn-elem-id-init-exhausted.js |  2 +-
 ...tatic-ary-ptrn-elem-id-init-fn-name-arrow.js |  2 +-
 ...tatic-ary-ptrn-elem-id-init-fn-name-class.js |  2 +-
 ...tatic-ary-ptrn-elem-id-init-fn-name-cover.js |  2 +-
 ...h-static-ary-ptrn-elem-id-init-fn-name-fn.js |  2 +-
 ...-static-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...en-meth-static-ary-ptrn-elem-id-init-hole.js |  2 +-
 ...meth-static-ary-ptrn-elem-id-init-skipped.js |  2 +-
 ...-meth-static-ary-ptrn-elem-id-init-throws.js |  2 +-
 ...n-meth-static-ary-ptrn-elem-id-init-undef.js |  2 +-
 ...static-ary-ptrn-elem-id-init-unresolvable.js |  2 +-
 ...eth-static-ary-ptrn-elem-id-iter-complete.js |  2 +-
 ...en-meth-static-ary-ptrn-elem-id-iter-done.js |  2 +-
 ...eth-static-ary-ptrn-elem-id-iter-step-err.js |  2 +-
 ...meth-static-ary-ptrn-elem-id-iter-val-err.js |  2 +-
 ...gen-meth-static-ary-ptrn-elem-id-iter-val.js |  2 +-
 ...gen-meth-static-ary-ptrn-elem-obj-id-init.js |  2 +-
 ...dstr-gen-meth-static-ary-ptrn-elem-obj-id.js |  2 +-
 ...eth-static-ary-ptrn-elem-obj-prop-id-init.js |  2 +-
 ...gen-meth-static-ary-ptrn-elem-obj-prop-id.js |  2 +-
 ...en-meth-static-ary-ptrn-elem-obj-val-null.js |  2 +-
 ...n-meth-static-ary-ptrn-elem-obj-val-undef.js |  2 +-
 ...tr-gen-meth-static-ary-ptrn-rest-ary-elem.js |  2 +-
 ...tr-gen-meth-static-ary-ptrn-rest-ary-rest.js |  2 +-
 ...-gen-meth-static-ary-ptrn-rest-id-elision.js |  2 +-
 ...en-meth-static-ary-ptrn-rest-id-exhausted.js |  2 +-
 ...meth-static-ary-ptrn-rest-id-iter-val-err.js |  2 +-
 .../dstr-gen-meth-static-ary-ptrn-rest-id.js    |  2 +-
 ...tr-gen-meth-static-ary-ptrn-rest-init-ary.js |  2 +-
 ...str-gen-meth-static-ary-ptrn-rest-init-id.js |  2 +-
 ...tr-gen-meth-static-ary-ptrn-rest-init-obj.js |  2 +-
 ...n-meth-static-ary-ptrn-rest-not-final-ary.js |  2 +-
 ...en-meth-static-ary-ptrn-rest-not-final-id.js |  2 +-
 ...n-meth-static-ary-ptrn-rest-not-final-obj.js |  2 +-
 ...dstr-gen-meth-static-ary-ptrn-rest-obj-id.js |  2 +-
 ...gen-meth-static-ary-ptrn-rest-obj-prop-id.js |  2 +-
 ...-gen-meth-static-dflt-ary-init-iter-close.js |  2 +-
 ...en-meth-static-dflt-ary-init-iter-get-err.js |  2 +-
 ...n-meth-static-dflt-ary-init-iter-no-close.js |  2 +-
 ...tr-gen-meth-static-dflt-ary-name-iter-val.js |  2 +-
 ...h-static-dflt-ary-ptrn-elem-ary-elem-init.js |  2 +-
 ...h-static-dflt-ary-ptrn-elem-ary-elem-iter.js |  2 +-
 ...-static-dflt-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...-static-dflt-ary-ptrn-elem-ary-empty-iter.js |  2 +-
 ...h-static-dflt-ary-ptrn-elem-ary-rest-init.js |  2 +-
 ...h-static-dflt-ary-ptrn-elem-ary-rest-iter.js |  2 +-
 ...th-static-dflt-ary-ptrn-elem-ary-val-null.js |  2 +-
 ...atic-dflt-ary-ptrn-elem-id-init-exhausted.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-class.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-cover.js |  2 +-
 ...tic-dflt-ary-ptrn-elem-id-init-fn-name-fn.js |  2 +-
 ...ic-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...th-static-dflt-ary-ptrn-elem-id-init-hole.js |  2 +-
 ...static-dflt-ary-ptrn-elem-id-init-skipped.js |  2 +-
 ...-static-dflt-ary-ptrn-elem-id-init-throws.js |  2 +-
 ...h-static-dflt-ary-ptrn-elem-id-init-undef.js |  2 +-
 ...c-dflt-ary-ptrn-elem-id-init-unresolvable.js |  2 +-
 ...tatic-dflt-ary-ptrn-elem-id-iter-complete.js |  2 +-
 ...th-static-dflt-ary-ptrn-elem-id-iter-done.js |  2 +-
 ...tatic-dflt-ary-ptrn-elem-id-iter-step-err.js |  2 +-
 ...static-dflt-ary-ptrn-elem-id-iter-val-err.js |  2 +-
 ...eth-static-dflt-ary-ptrn-elem-id-iter-val.js |  2 +-
 ...eth-static-dflt-ary-ptrn-elem-obj-id-init.js |  2 +-
 ...gen-meth-static-dflt-ary-ptrn-elem-obj-id.js |  2 +-
 ...tatic-dflt-ary-ptrn-elem-obj-prop-id-init.js |  2 +-
 ...eth-static-dflt-ary-ptrn-elem-obj-prop-id.js |  2 +-
 ...th-static-dflt-ary-ptrn-elem-obj-val-null.js |  2 +-
 ...h-static-dflt-ary-ptrn-elem-obj-val-undef.js |  2 +-
 ...n-meth-static-dflt-ary-ptrn-rest-ary-elem.js |  2 +-
 ...n-meth-static-dflt-ary-ptrn-rest-ary-rest.js |  2 +-
 ...meth-static-dflt-ary-ptrn-rest-id-elision.js |  2 +-
 ...th-static-dflt-ary-ptrn-rest-id-exhausted.js |  2 +-
 ...static-dflt-ary-ptrn-rest-id-iter-val-err.js |  2 +-
 ...str-gen-meth-static-dflt-ary-ptrn-rest-id.js |  2 +-
 ...n-meth-static-dflt-ary-ptrn-rest-init-ary.js |  2 +-
 ...en-meth-static-dflt-ary-ptrn-rest-init-id.js |  2 +-
 ...n-meth-static-dflt-ary-ptrn-rest-init-obj.js |  2 +-
 ...h-static-dflt-ary-ptrn-rest-not-final-ary.js |  2 +-
 ...th-static-dflt-ary-ptrn-rest-not-final-id.js |  2 +-
 ...h-static-dflt-ary-ptrn-rest-not-final-obj.js |  2 +-
 ...gen-meth-static-dflt-ary-ptrn-rest-obj-id.js |  2 +-
 ...eth-static-dflt-ary-ptrn-rest-obj-prop-id.js |  2 +-
 .../dstr-gen-meth-static-dflt-obj-init-null.js  |  2 +-
 ...r-gen-meth-static-dflt-obj-init-undefined.js |  2 +-
 .../dstr-gen-meth-static-dflt-obj-ptrn-empty.js |  2 +-
 ...eth-static-dflt-obj-ptrn-id-get-value-err.js |  2 +-
 ...tatic-dflt-obj-ptrn-id-init-fn-name-arrow.js |  2 +-
 ...tatic-dflt-obj-ptrn-id-init-fn-name-class.js |  2 +-
 ...tatic-dflt-obj-ptrn-id-init-fn-name-cover.js |  2 +-
 ...h-static-dflt-obj-ptrn-id-init-fn-name-fn.js |  2 +-
 ...-static-dflt-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...meth-static-dflt-obj-ptrn-id-init-skipped.js |  2 +-
 ...-meth-static-dflt-obj-ptrn-id-init-throws.js |  2 +-
 ...static-dflt-obj-ptrn-id-init-unresolvable.js |  2 +-
 ...th-static-dflt-obj-ptrn-id-trailing-comma.js |  2 +-
 ...tr-gen-meth-static-dflt-obj-ptrn-list-err.js |  2 +-
 ...n-meth-static-dflt-obj-ptrn-prop-ary-init.js |  2 +-
 ...tic-dflt-obj-ptrn-prop-ary-trailing-comma.js |  2 +-
 ...-static-dflt-obj-ptrn-prop-ary-value-null.js |  2 +-
 ...tr-gen-meth-static-dflt-obj-ptrn-prop-ary.js |  2 +-
 ...n-meth-static-dflt-obj-ptrn-prop-eval-err.js |  2 +-
 ...tatic-dflt-obj-ptrn-prop-id-get-value-err.js |  2 +-
 ...static-dflt-obj-ptrn-prop-id-init-skipped.js |  2 +-
 ...-static-dflt-obj-ptrn-prop-id-init-throws.js |  2 +-
 ...c-dflt-obj-ptrn-prop-id-init-unresolvable.js |  2 +-
 ...en-meth-static-dflt-obj-ptrn-prop-id-init.js |  2 +-
 ...atic-dflt-obj-ptrn-prop-id-trailing-comma.js |  2 +-
 ...str-gen-meth-static-dflt-obj-ptrn-prop-id.js |  2 +-
 ...n-meth-static-dflt-obj-ptrn-prop-obj-init.js |  2 +-
 ...-static-dflt-obj-ptrn-prop-obj-value-null.js |  2 +-
 ...static-dflt-obj-ptrn-prop-obj-value-undef.js |  2 +-
 ...tr-gen-meth-static-dflt-obj-ptrn-prop-obj.js |  2 +-
 ...gen-meth-static-dflt-obj-ptrn-rest-getter.js |  2 +-
 ...ic-dflt-obj-ptrn-rest-skip-non-enumerable.js |  2 +-
 ...en-meth-static-dflt-obj-ptrn-rest-val-obj.js |  2 +-
 .../class/dstr-gen-meth-static-obj-init-null.js |  2 +-
 .../dstr-gen-meth-static-obj-init-undefined.js  |  2 +-
 .../dstr-gen-meth-static-obj-ptrn-empty.js      |  2 +-
 ...gen-meth-static-obj-ptrn-id-get-value-err.js |  2 +-
 ...eth-static-obj-ptrn-id-init-fn-name-arrow.js |  2 +-
 ...eth-static-obj-ptrn-id-init-fn-name-class.js |  2 +-
 ...eth-static-obj-ptrn-id-init-fn-name-cover.js |  2 +-
 ...n-meth-static-obj-ptrn-id-init-fn-name-fn.js |  2 +-
 ...-meth-static-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...-gen-meth-static-obj-ptrn-id-init-skipped.js |  2 +-
 ...r-gen-meth-static-obj-ptrn-id-init-throws.js |  2 +-
 ...meth-static-obj-ptrn-id-init-unresolvable.js |  2 +-
 ...en-meth-static-obj-ptrn-id-trailing-comma.js |  2 +-
 .../dstr-gen-meth-static-obj-ptrn-list-err.js   |  2 +-
 ...tr-gen-meth-static-obj-ptrn-prop-ary-init.js |  2 +-
 ...h-static-obj-ptrn-prop-ary-trailing-comma.js |  2 +-
 ...-meth-static-obj-ptrn-prop-ary-value-null.js |  2 +-
 .../dstr-gen-meth-static-obj-ptrn-prop-ary.js   |  2 +-
 ...tr-gen-meth-static-obj-ptrn-prop-eval-err.js |  2 +-
 ...eth-static-obj-ptrn-prop-id-get-value-err.js |  2 +-
 ...meth-static-obj-ptrn-prop-id-init-skipped.js |  2 +-
 ...-meth-static-obj-ptrn-prop-id-init-throws.js |  2 +-
 ...static-obj-ptrn-prop-id-init-unresolvable.js |  2 +-
 ...str-gen-meth-static-obj-ptrn-prop-id-init.js |  2 +-
 ...th-static-obj-ptrn-prop-id-trailing-comma.js |  2 +-
 .../dstr-gen-meth-static-obj-ptrn-prop-id.js    |  2 +-
 ...tr-gen-meth-static-obj-ptrn-prop-obj-init.js |  2 +-
 ...-meth-static-obj-ptrn-prop-obj-value-null.js |  2 +-
 ...meth-static-obj-ptrn-prop-obj-value-undef.js |  2 +-
 .../dstr-gen-meth-static-obj-ptrn-prop-obj.js   |  2 +-
 ...dstr-gen-meth-static-obj-ptrn-rest-getter.js |  2 +-
 ...-static-obj-ptrn-rest-skip-non-enumerable.js |  2 +-
 ...str-gen-meth-static-obj-ptrn-rest-val-obj.js |  2 +-
 .../dstr-meth-ary-ptrn-elem-ary-empty-init.js   |  3 ++-
 ...tr-meth-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...tr-meth-dflt-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...th-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...tr-meth-dflt-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 .../dstr-meth-obj-ptrn-id-init-fn-name-gen.js   |  3 ++-
 ...-meth-static-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...-static-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...-static-dflt-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...ic-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...-static-dflt-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...-meth-static-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 .../class/gen-meth-dflt-params-abrupt.js        |  3 ++-
 ...en-meth-dflt-params-arg-val-not-undefined.js |  3 ++-
 .../gen-meth-dflt-params-arg-val-undefined.js   |  3 ++-
 .../class/gen-meth-dflt-params-duplicates.js    |  3 ++-
 .../class/gen-meth-dflt-params-ref-later.js     |  3 ++-
 .../class/gen-meth-dflt-params-ref-prior.js     |  3 ++-
 .../class/gen-meth-dflt-params-ref-self.js      |  3 ++-
 .../class/gen-meth-dflt-params-rest.js          |  3 ++-
 .../gen-meth-dflt-params-trailing-comma.js      |  2 ++
 .../gen-meth-params-trailing-comma-multiple.js  |  2 ++
 .../gen-meth-params-trailing-comma-single.js    |  2 ++
 ...th-rest-params-trailing-comma-early-error.js |  2 ++
 .../class/gen-meth-static-dflt-params-abrupt.js |  3 ++-
 ...-static-dflt-params-arg-val-not-undefined.js |  3 ++-
 ...meth-static-dflt-params-arg-val-undefined.js |  3 ++-
 .../gen-meth-static-dflt-params-duplicates.js   |  3 ++-
 .../gen-meth-static-dflt-params-ref-later.js    |  3 ++-
 .../gen-meth-static-dflt-params-ref-prior.js    |  3 ++-
 .../gen-meth-static-dflt-params-ref-self.js     |  3 ++-
 .../class/gen-meth-static-dflt-params-rest.js   |  3 ++-
 ...en-meth-static-dflt-params-trailing-comma.js |  2 ++
 ...eth-static-params-trailing-comma-multiple.js |  2 ++
 ...-meth-static-params-trailing-comma-single.js |  2 ++
 ...ic-rest-params-trailing-comma-early-error.js |  2 ++
 ...tatic-yield-as-binding-identifier-escaped.js |  2 ++
 ...method-static-yield-as-binding-identifier.js |  2 ++
 ...tic-yield-as-identifier-reference-escaped.js |  2 ++
 ...thod-static-yield-as-identifier-reference.js |  2 ++
 ...-static-yield-as-label-identifier-escaped.js |  2 ++
 ...n-method-static-yield-as-label-identifier.js |  2 ++
 ...hod-static-yield-identifier-spread-strict.js |  3 ++-
 ...gen-method-static-yield-identifier-strict.js |  2 ++
 ...n-method-static-yield-spread-arr-multiple.js |  2 ++
 ...gen-method-static-yield-spread-arr-single.js |  2 ++
 .../class/gen-method-static-yield-spread-obj.js |  3 ++-
 ...ethod-yield-as-binding-identifier-escaped.js |  2 ++
 .../gen-method-yield-as-binding-identifier.js   |  2 ++
 ...hod-yield-as-identifier-reference-escaped.js |  2 ++
 .../gen-method-yield-as-identifier-reference.js |  2 ++
 ...-method-yield-as-label-identifier-escaped.js |  2 ++
 .../gen-method-yield-as-label-identifier.js     |  2 ++
 ...gen-method-yield-identifier-spread-strict.js |  3 ++-
 .../class/gen-method-yield-identifier-strict.js |  2 ++
 .../gen-method-yield-spread-arr-multiple.js     |  2 ++
 .../class/gen-method-yield-spread-arr-single.js |  2 ++
 .../class/gen-method-yield-spread-obj.js        |  3 ++-
 .../const/dstr-ary-ptrn-elem-ary-empty-init.js  |  3 ++-
 .../dstr-ary-ptrn-elem-id-init-fn-name-gen.js   |  3 ++-
 .../const/dstr-obj-ptrn-id-init-fn-name-gen.js  |  3 ++-
 ...c-dstr-const-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...r-const-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...nc-dstr-const-ary-ptrn-elision-iter-close.js |  2 +-
 ...nc-dstr-const-ary-ptrn-rest-id-iter-close.js |  2 +-
 ...-const-async-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...t-async-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...-const-async-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...c-dstr-const-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...unc-dstr-let-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...str-let-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...func-dstr-let-ary-ptrn-elision-iter-close.js |  2 +-
 ...func-dstr-let-ary-ptrn-rest-id-iter-close.js |  2 +-
 ...tr-let-async-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...t-async-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...tr-let-async-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...unc-dstr-let-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...unc-dstr-var-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...str-var-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...func-dstr-var-ary-ptrn-elision-iter-close.js |  2 +-
 ...func-dstr-var-ary-ptrn-rest-id-iter-close.js |  2 +-
 ...tr-var-async-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...r-async-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...tr-var-async-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...unc-dstr-var-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...n-dstr-const-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...r-const-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...en-dstr-const-ary-ptrn-elision-iter-close.js |  2 +-
 ...en-dstr-const-ary-ptrn-rest-id-iter-close.js |  2 +-
 ...-const-async-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...t-async-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...-const-async-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...n-dstr-const-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...gen-dstr-let-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...str-let-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...-gen-dstr-let-ary-ptrn-elision-iter-close.js |  2 +-
 ...-gen-dstr-let-ary-ptrn-rest-id-iter-close.js |  2 +-
 ...tr-let-async-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...t-async-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...tr-let-async-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...gen-dstr-let-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...gen-dstr-var-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...str-var-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...-gen-dstr-var-ary-ptrn-elision-iter-close.js |  2 +-
 ...-gen-dstr-var-ary-ptrn-rest-id-iter-close.js |  2 +-
 ...tr-var-async-ary-ptrn-elem-ary-empty-init.js |  3 ++-
 ...r-async-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 ...tr-var-async-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 ...gen-dstr-var-obj-ptrn-id-init-fn-name-gen.js |  3 ++-
 .../dstr-const-ary-ptrn-elem-ary-empty-init.js  |  3 ++-
 ...r-const-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 .../dstr-const-ary-ptrn-elision-iter-close.js   |  2 +-
 .../dstr-const-ary-ptrn-rest-id-iter-close.js   |  2 +-
 .../dstr-const-obj-ptrn-id-init-fn-name-gen.js  |  3 ++-
 .../dstr-let-ary-ptrn-elem-ary-empty-init.js    |  3 ++-
 ...str-let-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 .../dstr-let-ary-ptrn-elision-iter-close.js     |  2 +-
 .../dstr-let-ary-ptrn-rest-id-iter-close.js     |  2 +-
 .../dstr-let-obj-ptrn-id-init-fn-name-gen.js    |  3 ++-
 .../dstr-var-ary-ptrn-elem-ary-empty-init.js    |  3 ++-
 ...str-var-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 .../dstr-var-ary-ptrn-elision-iter-close.js     |  2 +-
 .../dstr-var-ary-ptrn-rest-id-iter-close.js     |  2 +-
 .../dstr-var-obj-ptrn-id-init-fn-name-gen.js    |  3 ++-
 .../dstr-const-ary-ptrn-elem-ary-empty-init.js  |  3 ++-
 ...r-const-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 .../dstr-const-ary-ptrn-elision-iter-close.js   |  2 +-
 .../dstr-const-ary-ptrn-rest-id-iter-close.js   |  2 +-
 .../dstr-const-obj-ptrn-id-init-fn-name-gen.js  |  3 ++-
 .../dstr-let-ary-ptrn-elem-ary-empty-init.js    |  3 ++-
 ...str-let-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 .../for/dstr-let-ary-ptrn-elision-iter-close.js |  2 +-
 .../for/dstr-let-ary-ptrn-rest-id-iter-close.js |  2 +-
 .../dstr-let-obj-ptrn-id-init-fn-name-gen.js    |  3 ++-
 .../dstr-var-ary-ptrn-elem-ary-empty-init.js    |  3 ++-
 ...str-var-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 .../for/dstr-var-ary-ptrn-elision-iter-close.js |  2 +-
 .../for/dstr-var-ary-ptrn-rest-id-iter-close.js |  2 +-
 .../dstr-var-obj-ptrn-id-init-fn-name-gen.js    |  3 ++-
 .../dstr-ary-ptrn-elem-ary-empty-init.js        |  3 ++-
 .../dstr-ary-ptrn-elem-id-init-fn-name-gen.js   |  3 ++-
 .../dstr-dflt-ary-ptrn-elem-ary-empty-init.js   |  3 ++-
 ...tr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 .../dstr-dflt-obj-ptrn-id-init-fn-name-gen.js   |  3 ++-
 .../dstr-obj-ptrn-id-init-fn-name-gen.js        |  3 ++-
 .../generators/arguments-with-arguments-fn.js   |  1 +
 .../generators/arguments-with-arguments-lex.js  |  1 +
 .../language/statements/generators/cptn-decl.js |  1 +
 .../statements/generators/declaration.js        |  1 +
 .../statements/generators/default-proto.js      |  1 +
 .../statements/generators/dflt-params-abrupt.js |  3 ++-
 .../dflt-params-arg-val-not-undefined.js        |  3 ++-
 .../generators/dflt-params-arg-val-undefined.js |  3 ++-
 .../generators/dflt-params-duplicates.js        |  3 ++-
 .../generators/dflt-params-ref-later.js         |  3 ++-
 .../generators/dflt-params-ref-prior.js         |  3 ++-
 .../generators/dflt-params-ref-self.js          |  3 ++-
 .../statements/generators/dflt-params-rest.js   |  3 ++-
 .../generators/dflt-params-trailing-comma.js    |  2 ++
 .../generators/dstr-ary-init-iter-close.js      |  2 +-
 .../generators/dstr-ary-init-iter-get-err.js    |  2 +-
 .../generators/dstr-ary-init-iter-no-close.js   |  2 +-
 .../generators/dstr-ary-name-iter-val.js        |  2 +-
 .../dstr-ary-ptrn-elem-ary-elem-init.js         |  2 +-
 .../dstr-ary-ptrn-elem-ary-elem-iter.js         |  2 +-
 .../dstr-ary-ptrn-elem-ary-empty-init.js        |  3 ++-
 .../dstr-ary-ptrn-elem-ary-empty-iter.js        |  2 +-
 .../dstr-ary-ptrn-elem-ary-rest-init.js         |  2 +-
 .../dstr-ary-ptrn-elem-ary-rest-iter.js         |  2 +-
 .../dstr-ary-ptrn-elem-ary-val-null.js          |  2 +-
 .../dstr-ary-ptrn-elem-id-init-exhausted.js     |  2 +-
 .../dstr-ary-ptrn-elem-id-init-fn-name-arrow.js |  2 +-
 .../dstr-ary-ptrn-elem-id-init-fn-name-class.js |  2 +-
 .../dstr-ary-ptrn-elem-id-init-fn-name-cover.js |  2 +-
 .../dstr-ary-ptrn-elem-id-init-fn-name-fn.js    |  2 +-
 .../dstr-ary-ptrn-elem-id-init-fn-name-gen.js   |  3 ++-
 .../dstr-ary-ptrn-elem-id-init-hole.js          |  2 +-
 .../dstr-ary-ptrn-elem-id-init-skipped.js       |  2 +-
 .../dstr-ary-ptrn-elem-id-init-throws.js        |  2 +-
 .../dstr-ary-ptrn-elem-id-init-undef.js         |  2 +-
 .../dstr-ary-ptrn-elem-id-init-unresolvable.js  |  2 +-
 .../dstr-ary-ptrn-elem-id-iter-complete.js      |  2 +-
 .../dstr-ary-ptrn-elem-id-iter-done.js          |  2 +-
 .../dstr-ary-ptrn-elem-id-iter-step-err.js      |  2 +-
 .../dstr-ary-ptrn-elem-id-iter-val-err.js       |  2 +-
 .../dstr-ary-ptrn-elem-id-iter-val.js           |  2 +-
 .../dstr-ary-ptrn-elem-obj-id-init.js           |  2 +-
 .../generators/dstr-ary-ptrn-elem-obj-id.js     |  2 +-
 .../dstr-ary-ptrn-elem-obj-prop-id-init.js      |  2 +-
 .../dstr-ary-ptrn-elem-obj-prop-id.js           |  2 +-
 .../dstr-ary-ptrn-elem-obj-val-null.js          |  2 +-
 .../dstr-ary-ptrn-elem-obj-val-undef.js         |  2 +-
 .../generators/dstr-ary-ptrn-rest-ary-elem.js   |  2 +-
 .../generators/dstr-ary-ptrn-rest-ary-rest.js   |  2 +-
 .../generators/dstr-ary-ptrn-rest-id-elision.js |  2 +-
 .../dstr-ary-ptrn-rest-id-exhausted.js          |  2 +-
 .../dstr-ary-ptrn-rest-id-iter-val-err.js       |  2 +-
 .../generators/dstr-ary-ptrn-rest-id.js         |  2 +-
 .../generators/dstr-ary-ptrn-rest-init-ary.js   |  2 +-
 .../generators/dstr-ary-ptrn-rest-init-id.js    |  2 +-
 .../generators/dstr-ary-ptrn-rest-init-obj.js   |  2 +-
 .../dstr-ary-ptrn-rest-not-final-ary.js         |  2 +-
 .../dstr-ary-ptrn-rest-not-final-id.js          |  2 +-
 .../dstr-ary-ptrn-rest-not-final-obj.js         |  2 +-
 .../generators/dstr-ary-ptrn-rest-obj-id.js     |  2 +-
 .../dstr-ary-ptrn-rest-obj-prop-id.js           |  2 +-
 .../generators/dstr-dflt-ary-init-iter-close.js |  2 +-
 .../dstr-dflt-ary-init-iter-get-err.js          |  2 +-
 .../dstr-dflt-ary-init-iter-no-close.js         |  2 +-
 .../generators/dstr-dflt-ary-name-iter-val.js   |  2 +-
 .../dstr-dflt-ary-ptrn-elem-ary-elem-init.js    |  2 +-
 .../dstr-dflt-ary-ptrn-elem-ary-elem-iter.js    |  2 +-
 .../dstr-dflt-ary-ptrn-elem-ary-empty-init.js   |  3 ++-
 .../dstr-dflt-ary-ptrn-elem-ary-empty-iter.js   |  2 +-
 .../dstr-dflt-ary-ptrn-elem-ary-rest-init.js    |  2 +-
 .../dstr-dflt-ary-ptrn-elem-ary-rest-iter.js    |  2 +-
 .../dstr-dflt-ary-ptrn-elem-ary-val-null.js     |  2 +-
 ...dstr-dflt-ary-ptrn-elem-id-init-exhausted.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-class.js |  2 +-
 ...-dflt-ary-ptrn-elem-id-init-fn-name-cover.js |  2 +-
 ...str-dflt-ary-ptrn-elem-id-init-fn-name-fn.js |  2 +-
 ...tr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js |  3 ++-
 .../dstr-dflt-ary-ptrn-elem-id-init-hole.js     |  2 +-
 .../dstr-dflt-ary-ptrn-elem-id-init-skipped.js  |  2 +-
 .../dstr-dflt-ary-ptrn-elem-id-init-throws.js   |  2 +-
 .../dstr-dflt-ary-ptrn-elem-id-init-undef.js    |  2 +-
 ...r-dflt-ary-ptrn-elem-id-init-unresolvable.js |  2 +-
 .../dstr-dflt-ary-ptrn-elem-id-iter-complete.js |  2 +-
 .../dstr-dflt-ary-ptrn-elem-id-iter-done.js     |  2 +-
 .../dstr-dflt-ary-ptrn-elem-id-iter-step-err.js |  2 +-
 .../dstr-dflt-ary-ptrn-elem-id-iter-val-err.js  |  2 +-
 .../dstr-dflt-ary-ptrn-elem-id-iter-val.js      |  2 +-
 .../dstr-dflt-ary-ptrn-elem-obj-id-init.js      |  2 +-
 .../dstr-dflt-ary-ptrn-elem-obj-id.js           |  2 +-
 .../dstr-dflt-ary-ptrn-elem-obj-prop-id-init.js |  2 +-
 .../dstr-dflt-ary-ptrn-elem-obj-prop-id.js      |  2 +-
 .../dstr-dflt-ary-ptrn-elem-obj-val-null.js     |  2 +-
 .../dstr-dflt-ary-ptrn-elem-obj-val-undef.js    |  2 +-
 .../dstr-dflt-ary-ptrn-rest-ary-elem.js         |  2 +-
 .../dstr-dflt-ary-ptrn-rest-ary-rest.js         |  2 +-
 .../dstr-dflt-ary-ptrn-rest-id-elision.js       |  2 +-
 .../dstr-dflt-ary-ptrn-rest-id-exhausted.js     |  2 +-
 .../dstr-dflt-ary-ptrn-rest-id-iter-val-err.js  |  2 +-
 .../generators/dstr-dflt-ary-ptrn-rest-id.js    |  2 +-
 .../dstr-dflt-ary-ptrn-rest-init-ary.js         |  2 +-
 .../dstr-dflt-ary-ptrn-rest-init-id.js          |  2 +-
 .../dstr-dflt-ary-ptrn-rest-init-obj.js         |  2 +-
 .../dstr-dflt-ary-ptrn-rest-not-final-ary.js    |  2 +-
 .../dstr-dflt-ary-ptrn-rest-not-final-id.js     |  2 +-
 .../dstr-dflt-ary-ptrn-rest-not-final-obj.js    |  2 +-
 .../dstr-dflt-ary-ptrn-rest-obj-id.js           |  2 +-
 .../dstr-dflt-ary-ptrn-rest-obj-prop-id.js      |  2 +-
 .../generators/dstr-dflt-obj-init-null.js       |  2 +-
 .../generators/dstr-dflt-obj-init-undefined.js  |  2 +-
 .../generators/dstr-dflt-obj-ptrn-empty.js      |  2 +-
 .../dstr-dflt-obj-ptrn-id-get-value-err.js      |  2 +-
 .../dstr-dflt-obj-ptrn-id-init-fn-name-arrow.js |  2 +-
 .../dstr-dflt-obj-ptrn-id-init-fn-name-class.js |  2 +-
 .../dstr-dflt-obj-ptrn-id-init-fn-name-cover.js |  2 +-
 .../dstr-dflt-obj-ptrn-id-init-fn-name-fn.js    |  2 +-
 .../dstr-dflt-obj-ptrn-id-init-fn-name-gen.js   |  3 ++-
 .../dstr-dflt-obj-ptrn-id-init-skipped.js       |  2 +-
 .../dstr-dflt-obj-ptrn-id-init-throws.js        |  2 +-
 .../dstr-dflt-obj-ptrn-id-init-unresolvable.js  |  2 +-
 .../dstr-dflt-obj-ptrn-id-trailing-comma.js     |  2 +-
 .../generators/dstr-dflt-obj-ptrn-list-err.js   |  2 +-
 .../dstr-dflt-obj-ptrn-prop-ary-init.js         |  2 +-
 ...str-dflt-obj-ptrn-prop-ary-trailing-comma.js |  2 +-
 .../dstr-dflt-obj-ptrn-prop-ary-value-null.js   |  2 +-
 .../generators/dstr-dflt-obj-ptrn-prop-ary.js   |  2 +-
 .../dstr-dflt-obj-ptrn-prop-eval-err.js         |  2 +-
 .../dstr-dflt-obj-ptrn-prop-id-get-value-err.js |  2 +-
 .../dstr-dflt-obj-ptrn-prop-id-init-skipped.js  |  2 +-
 .../dstr-dflt-obj-ptrn-prop-id-init-throws.js   |  2 +-
 ...r-dflt-obj-ptrn-prop-id-init-unresolvable.js |  2 +-
 .../dstr-dflt-obj-ptrn-prop-id-init.js          |  2 +-
 ...dstr-dflt-obj-ptrn-prop-id-trailing-comma.js |  2 +-
 .../generators/dstr-dflt-obj-ptrn-prop-id.js    |  2 +-
 .../dstr-dflt-obj-ptrn-prop-obj-init.js         |  2 +-
 .../dstr-dflt-obj-ptrn-prop-obj-value-null.js   |  2 +-
 .../dstr-dflt-obj-ptrn-prop-obj-value-undef.js  |  2 +-
 .../generators/dstr-dflt-obj-ptrn-prop-obj.js   |  2 +-
 .../dstr-dflt-obj-ptrn-rest-getter.js           |  2 +-
 ...tr-dflt-obj-ptrn-rest-skip-non-enumerable.js |  2 +-
 .../dstr-dflt-obj-ptrn-rest-val-obj.js          |  2 +-
 .../statements/generators/dstr-obj-init-null.js |  2 +-
 .../generators/dstr-obj-init-undefined.js       |  2 +-
 .../generators/dstr-obj-ptrn-empty.js           |  2 +-
 .../dstr-obj-ptrn-id-get-value-err.js           |  2 +-
 .../dstr-obj-ptrn-id-init-fn-name-arrow.js      |  2 +-
 .../dstr-obj-ptrn-id-init-fn-name-class.js      |  2 +-
 .../dstr-obj-ptrn-id-init-fn-name-cover.js      |  2 +-
 .../dstr-obj-ptrn-id-init-fn-name-fn.js         |  2 +-
 .../dstr-obj-ptrn-id-init-fn-name-gen.js        |  3 ++-
 .../generators/dstr-obj-ptrn-id-init-skipped.js |  2 +-
 .../generators/dstr-obj-ptrn-id-init-throws.js  |  2 +-
 .../dstr-obj-ptrn-id-init-unresolvable.js       |  2 +-
 .../dstr-obj-ptrn-id-trailing-comma.js          |  2 +-
 .../generators/dstr-obj-ptrn-list-err.js        |  2 +-
 .../generators/dstr-obj-ptrn-prop-ary-init.js   |  2 +-
 .../dstr-obj-ptrn-prop-ary-trailing-comma.js    |  2 +-
 .../dstr-obj-ptrn-prop-ary-value-null.js        |  2 +-
 .../generators/dstr-obj-ptrn-prop-ary.js        |  2 +-
 .../generators/dstr-obj-ptrn-prop-eval-err.js   |  2 +-
 .../dstr-obj-ptrn-prop-id-get-value-err.js      |  2 +-
 .../dstr-obj-ptrn-prop-id-init-skipped.js       |  2 +-
 .../dstr-obj-ptrn-prop-id-init-throws.js        |  2 +-
 .../dstr-obj-ptrn-prop-id-init-unresolvable.js  |  2 +-
 .../generators/dstr-obj-ptrn-prop-id-init.js    |  2 +-
 .../dstr-obj-ptrn-prop-id-trailing-comma.js     |  2 +-
 .../generators/dstr-obj-ptrn-prop-id.js         |  2 +-
 .../generators/dstr-obj-ptrn-prop-obj-init.js   |  2 +-
 .../dstr-obj-ptrn-prop-obj-value-null.js        |  2 +-
 .../dstr-obj-ptrn-prop-obj-value-undef.js       |  2 +-
 .../generators/dstr-obj-ptrn-prop-obj.js        |  2 +-
 .../generators/dstr-obj-ptrn-rest-getter.js     |  2 +-
 .../dstr-obj-ptrn-rest-skip-non-enumerable.js   |  2 +-
 .../generators/dstr-obj-ptrn-rest-val-obj.js    |  2 +-
 .../statements/generators/has-instance.js       |  1 +
 .../generators/invoke-as-constructor.js         |  1 +
 .../statements/generators/length-dflt.js        |  2 +-
 .../generators/length-property-descriptor.js    |  1 +
 test/language/statements/generators/name.js     |  1 +
 test/language/statements/generators/no-yield.js | 11 ++++++-----
 .../statements/generators/param-dflt-yield.js   |  2 +-
 .../generators/params-dflt-args-unmapped.js     |  2 +-
 .../generators/params-dflt-ref-arguments.js     |  2 +-
 .../params-trailing-comma-multiple.js           |  2 ++
 .../generators/params-trailing-comma-single.js  |  2 ++
 .../generators/prototype-own-properties.js      |  1 +
 .../generators/prototype-property-descriptor.js |  1 +
 .../prototype-relation-to-function.js           |  1 +
 .../statements/generators/prototype-typeof.js   |  1 +
 .../generators/prototype-uniqueness.js          |  1 +
 .../statements/generators/prototype-value.js    |  1 +
 .../rest-params-trailing-comma-early-error.js   |  2 ++
 test/language/statements/generators/return.js   |  9 +++++----
 .../generators/scope-body-lex-distinct.js       |  2 +-
 .../generators/scope-param-elem-var-close.js    |  1 +
 .../generators/scope-param-elem-var-open.js     |  1 +
 .../scope-param-rest-elem-var-close.js          |  1 +
 .../scope-param-rest-elem-var-open.js           |  1 +
 .../generators/scope-paramsbody-var-close.js    |  1 +
 .../generators/scope-paramsbody-var-open.js     |  1 +
 .../use-strict-with-non-simple-param.js         |  1 +
 .../yield-as-binding-identifier-escaped.js      |  2 ++
 .../generators/yield-as-binding-identifier.js   |  2 ++
 ...as-function-expression-binding-identifier.js | 13 +++++++------
 ...-generator-declaration-binding-identifier.js | 13 +++++++------
 .../yield-as-identifier-in-nested-function.js   | 13 +++++++------
 .../yield-as-identifier-reference-escaped.js    |  2 ++
 .../generators/yield-as-identifier-reference.js |  2 ++
 .../yield-as-label-identifier-escaped.js        |  2 ++
 .../generators/yield-as-label-identifier.js     |  2 ++
 .../yield-as-literal-property-name.js           | 11 ++++++-----
 .../yield-as-logical-or-expression.js           | 15 ++++++++-------
 .../statements/generators/yield-as-parameter.js | 17 +++++++++--------
 .../generators/yield-as-property-name.js        | 11 ++++++-----
 .../statements/generators/yield-as-statement.js |  9 +++++----
 .../generators/yield-as-yield-operand.js        | 11 ++++++-----
 .../generators/yield-identifier-non-strict.js   |  2 ++
 .../yield-identifier-spread-non-strict.js       |  3 ++-
 .../yield-identifier-spread-strict.js           |  3 ++-
 .../generators/yield-identifier-strict.js       |  2 ++
 .../statements/generators/yield-newline.js      |  9 +++++----
 .../generators/yield-spread-arr-multiple.js     |  2 ++
 .../generators/yield-spread-arr-single.js       |  2 ++
 .../statements/generators/yield-spread-obj.js   |  3 ++-
 .../generators/yield-star-after-newline.js      | 15 ++++++++-------
 .../generators/yield-star-before-newline.js     |  9 +++++----
 .../statements/generators/yield-weak-binding.js | 15 ++++++++-------
 .../let/dstr-ary-ptrn-elem-ary-empty-init.js    |  3 ++-
 .../dstr-ary-ptrn-elem-id-init-fn-name-gen.js   |  3 ++-
 .../let/dstr-obj-ptrn-id-init-fn-name-gen.js    |  3 ++-
 ...t-to-redeclare-with-generator-declaration.js |  2 +-
 ...t-to-redeclare-with-generator-declaration.js |  2 +-
 ...t-to-redeclare-with-generator-declaration.js |  1 +
 ...t-to-redeclare-with-generator-declaration.js |  1 +
 ...t-to-redeclare-with-generator-declaration.js |  1 +
 ...redeclare-with-async-function-declaration.js |  2 +-
 ...edeclare-with-async-generator-declaration.js |  2 +-
 ...tempt-to-redeclare-with-class-declaration.js |  1 +
 ...tempt-to-redeclare-with-const-declaration.js |  1 +
 ...pt-to-redeclare-with-function-declaration.js |  1 +
 ...t-to-redeclare-with-generator-declaration.js |  1 +
 ...attempt-to-redeclare-with-let-declaration.js |  1 +
 ...attempt-to-redeclare-with-var-declaration.js |  1 +
 ...t-to-redeclare-with-generator-declaration.js |  1 +
 ...t-to-redeclare-with-generator-declaration.js |  1 +
 .../try/dstr-ary-ptrn-elem-ary-empty-init.js    |  3 ++-
 .../dstr-ary-ptrn-elem-id-init-fn-name-gen.js   |  3 ++-
 .../try/dstr-obj-ptrn-id-init-fn-name-gen.js    |  3 ++-
 .../dstr-ary-ptrn-elem-ary-empty-init.js        |  3 ++-
 .../dstr-ary-ptrn-elem-id-init-fn-name-gen.js   |  3 ++-
 .../dstr-obj-ptrn-id-init-fn-name-gen.js        |  3 ++-
 1841 files changed, 2413 insertions(+), 1647 deletions(-)

diff --git a/src/arguments/default/gen-func-decl.template b/src/arguments/default/gen-func-decl.template
index 36bd0e7963..b9828f144c 100644
--- a/src/arguments/default/gen-func-decl.template
+++ b/src/arguments/default/gen-func-decl.template
@@ -11,6 +11,7 @@ info: |
     Most ECMAScript functions make an arguments object available to their code. Depending upon the
     characteristics of the function definition, its arguments object is either an ordinary object
     or an arguments exotic object.
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/arguments/default/gen-func-expr.template b/src/arguments/default/gen-func-expr.template
index 6d3392264f..079f9ad320 100644
--- a/src/arguments/default/gen-func-expr.template
+++ b/src/arguments/default/gen-func-expr.template
@@ -11,6 +11,7 @@ info: |
     Most ECMAScript functions make an arguments object available to their code. Depending upon the
     characteristics of the function definition, its arguments object is either an ordinary object
     or an arguments exotic object.
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/declarations/redeclare-allow-sloppy-function/block-attempt-to-redeclare-generator-declaration.template b/src/declarations/redeclare-allow-sloppy-function/block-attempt-to-redeclare-generator-declaration.template
index bee74b6fb6..8f740055a2 100644
--- a/src/declarations/redeclare-allow-sloppy-function/block-attempt-to-redeclare-generator-declaration.template
+++ b/src/declarations/redeclare-allow-sloppy-function/block-attempt-to-redeclare-generator-declaration.template
@@ -13,6 +13,7 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+features: [generators]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/declarations/redeclare-allow-sloppy-function/switch-attempt-to-redeclare-generator-declaration.template b/src/declarations/redeclare-allow-sloppy-function/switch-attempt-to-redeclare-generator-declaration.template
index 2cac174f72..683123be5f 100644
--- a/src/declarations/redeclare-allow-sloppy-function/switch-attempt-to-redeclare-generator-declaration.template
+++ b/src/declarations/redeclare-allow-sloppy-function/switch-attempt-to-redeclare-generator-declaration.template
@@ -13,6 +13,7 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+features: [generators]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/declarations/redeclare-allow-var/block-attempt-to-redeclare-generator-declaration.template b/src/declarations/redeclare-allow-var/block-attempt-to-redeclare-generator-declaration.template
index 91ab5086f6..ccf57caeea 100644
--- a/src/declarations/redeclare-allow-var/block-attempt-to-redeclare-generator-declaration.template
+++ b/src/declarations/redeclare-allow-var/block-attempt-to-redeclare-generator-declaration.template
@@ -13,6 +13,7 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+features: [generators]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/declarations/redeclare-allow-var/switch-attempt-to-redeclare-generator-declaration.template b/src/declarations/redeclare-allow-var/switch-attempt-to-redeclare-generator-declaration.template
index 039476cbda..cf14e0f29c 100644
--- a/src/declarations/redeclare-allow-var/switch-attempt-to-redeclare-generator-declaration.template
+++ b/src/declarations/redeclare-allow-var/switch-attempt-to-redeclare-generator-declaration.template
@@ -13,6 +13,7 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+features: [generators]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/declarations/redeclare-with-generator-declaration.case b/src/declarations/redeclare-with-generator-declaration.case
index 91b8398bc7..930831494d 100644
--- a/src/declarations/redeclare-with-generator-declaration.case
+++ b/src/declarations/redeclare-with-generator-declaration.case
@@ -5,6 +5,7 @@
 desc: >
   redeclaration with GeneratorDeclaration
 template: redeclare
+features: [generators]
 ---*/
 
 //- body
diff --git a/src/declarations/redeclare/block-attempt-to-redeclare-generator-declaration.template b/src/declarations/redeclare/block-attempt-to-redeclare-generator-declaration.template
index bee74b6fb6..8f740055a2 100644
--- a/src/declarations/redeclare/block-attempt-to-redeclare-generator-declaration.template
+++ b/src/declarations/redeclare/block-attempt-to-redeclare-generator-declaration.template
@@ -13,6 +13,7 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+features: [generators]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/declarations/redeclare/switch-attempt-to-redeclare-generator-declaration.template b/src/declarations/redeclare/switch-attempt-to-redeclare-generator-declaration.template
index 2cac174f72..683123be5f 100644
--- a/src/declarations/redeclare/switch-attempt-to-redeclare-generator-declaration.template
+++ b/src/declarations/redeclare/switch-attempt-to-redeclare-generator-declaration.template
@@ -13,6 +13,7 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+features: [generators]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/dstr-binding-for-await/ary-ptrn-elem-ary-empty-init.case b/src/dstr-binding-for-await/ary-ptrn-elem-ary-empty-init.case
index fcec666f24..7883e387ef 100644
--- a/src/dstr-binding-for-await/ary-ptrn-elem-ary-empty-init.case
+++ b/src/dstr-binding-for-await/ary-ptrn-elem-ary-empty-init.case
@@ -15,6 +15,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+features: [generators]
 ---*/
 
 //- setup
diff --git a/src/dstr-binding-for-await/ary-ptrn-elem-id-init-fn-name-gen.case b/src/dstr-binding-for-await/ary-ptrn-elem-id-init-fn-name-gen.case
index 5b1736e884..824946d12b 100644
--- a/src/dstr-binding-for-await/ary-ptrn-elem-id-init-fn-name-gen.case
+++ b/src/dstr-binding-for-await/ary-ptrn-elem-id-init-fn-name-gen.case
@@ -16,6 +16,7 @@ info: |
           [...]
     6. If environment is undefined, return PutValue(lhs, v).
     7. Return InitializeReferencedBinding(lhs, v).
+features: [generators]
 ---*/
 
 //- elems
diff --git a/src/dstr-binding-for-await/ary-ptrn-elision-iter-close.case b/src/dstr-binding-for-await/ary-ptrn-elision-iter-close.case
index 18c0046a3a..74f3faad89 100644
--- a/src/dstr-binding-for-await/ary-ptrn-elision-iter-close.case
+++ b/src/dstr-binding-for-await/ary-ptrn-elision-iter-close.case
@@ -5,6 +5,7 @@
 template: iter-close
 desc: >
   The iterator is properly consumed by the destructuring pattern
+features: [generators]
 ---*/
 
 //- setup
diff --git a/src/dstr-binding-for-await/ary-ptrn-rest-id-iter-close.case b/src/dstr-binding-for-await/ary-ptrn-rest-id-iter-close.case
index 2127b9edaf..d0ca059821 100644
--- a/src/dstr-binding-for-await/ary-ptrn-rest-id-iter-close.case
+++ b/src/dstr-binding-for-await/ary-ptrn-rest-id-iter-close.case
@@ -5,6 +5,7 @@
 template: iter-close
 desc: >
   The iterator is properly consumed by the destructuring pattern
+features: [generators]
 ---*/
 
 //- setup
diff --git a/src/dstr-binding-for-await/obj-ptrn-id-init-fn-name-gen.case b/src/dstr-binding-for-await/obj-ptrn-id-init-fn-name-gen.case
index 3eb8bcd5d5..fa45deca8e 100644
--- a/src/dstr-binding-for-await/obj-ptrn-id-init-fn-name-gen.case
+++ b/src/dstr-binding-for-await/obj-ptrn-id-init-fn-name-gen.case
@@ -16,6 +16,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+features: [generators]
 ---*/
 
 //- elems
diff --git a/src/dstr-binding/ary-ptrn-elem-ary-empty-init.case b/src/dstr-binding/ary-ptrn-elem-ary-empty-init.case
index df0c90fdb5..763a259304 100644
--- a/src/dstr-binding/ary-ptrn-elem-ary-empty-init.case
+++ b/src/dstr-binding/ary-ptrn-elem-ary-empty-init.case
@@ -15,6 +15,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+features: [generators]
 ---*/
 
 //- setup
diff --git a/src/dstr-binding/ary-ptrn-elem-id-init-fn-name-gen.case b/src/dstr-binding/ary-ptrn-elem-id-init-fn-name-gen.case
index 04587c07cd..db53d00c8a 100644
--- a/src/dstr-binding/ary-ptrn-elem-id-init-fn-name-gen.case
+++ b/src/dstr-binding/ary-ptrn-elem-id-init-fn-name-gen.case
@@ -17,6 +17,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+features: [generators]
 ---*/
 
 //- elems
diff --git a/src/dstr-binding/ary-ptrn-elision-iter-close.case b/src/dstr-binding/ary-ptrn-elision-iter-close.case
index 18c0046a3a..74f3faad89 100644
--- a/src/dstr-binding/ary-ptrn-elision-iter-close.case
+++ b/src/dstr-binding/ary-ptrn-elision-iter-close.case
@@ -5,6 +5,7 @@
 template: iter-close
 desc: >
   The iterator is properly consumed by the destructuring pattern
+features: [generators]
 ---*/
 
 //- setup
diff --git a/src/dstr-binding/ary-ptrn-rest-id-iter-close.case b/src/dstr-binding/ary-ptrn-rest-id-iter-close.case
index 2127b9edaf..d0ca059821 100644
--- a/src/dstr-binding/ary-ptrn-rest-id-iter-close.case
+++ b/src/dstr-binding/ary-ptrn-rest-id-iter-close.case
@@ -5,6 +5,7 @@
 template: iter-close
 desc: >
   The iterator is properly consumed by the destructuring pattern
+features: [generators]
 ---*/
 
 //- setup
diff --git a/src/dstr-binding/default/cls-decl-gen-meth-dflt.template b/src/dstr-binding/default/cls-decl-gen-meth-dflt.template
index 3523cd63b9..c486163c4c 100644
--- a/src/dstr-binding/default/cls-decl-gen-meth-dflt.template
+++ b/src/dstr-binding/default/cls-decl-gen-meth-dflt.template
@@ -5,7 +5,7 @@ path: language/statements/class/dstr-gen-meth-dflt-
 name: class expression method (default parameters)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
 
diff --git a/src/dstr-binding/default/cls-decl-gen-meth-static-dflt.template b/src/dstr-binding/default/cls-decl-gen-meth-static-dflt.template
index bb257929b9..2541351951 100644
--- a/src/dstr-binding/default/cls-decl-gen-meth-static-dflt.template
+++ b/src/dstr-binding/default/cls-decl-gen-meth-static-dflt.template
@@ -5,7 +5,7 @@ path: language/statements/class/dstr-gen-meth-static-dflt-
 name: static class expression generator method (default parameter)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
 
diff --git a/src/dstr-binding/default/cls-decl-gen-meth-static.template b/src/dstr-binding/default/cls-decl-gen-meth-static.template
index 7fe1a43bd1..150c19e2a9 100644
--- a/src/dstr-binding/default/cls-decl-gen-meth-static.template
+++ b/src/dstr-binding/default/cls-decl-gen-meth-static.template
@@ -5,7 +5,7 @@ path: language/statements/class/dstr-gen-meth-static-
 name: static class expression generator method
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
 
diff --git a/src/dstr-binding/default/cls-decl-gen-meth.template b/src/dstr-binding/default/cls-decl-gen-meth.template
index 73fbf2c3a9..2df18311d5 100644
--- a/src/dstr-binding/default/cls-decl-gen-meth.template
+++ b/src/dstr-binding/default/cls-decl-gen-meth.template
@@ -5,7 +5,7 @@ path: language/statements/class/dstr-gen-meth-
 name: class expression method
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
 
diff --git a/src/dstr-binding/default/cls-expr-gen-meth-dflt.template b/src/dstr-binding/default/cls-expr-gen-meth-dflt.template
index b8963fdc05..29d90bd76e 100644
--- a/src/dstr-binding/default/cls-expr-gen-meth-dflt.template
+++ b/src/dstr-binding/default/cls-expr-gen-meth-dflt.template
@@ -5,7 +5,7 @@ path: language/expressions/class/dstr-gen-meth-dflt-
 name: class expression method (default parameter)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
 
diff --git a/src/dstr-binding/default/cls-expr-gen-meth-static-dflt.template b/src/dstr-binding/default/cls-expr-gen-meth-static-dflt.template
index fd512fc015..652189ce24 100644
--- a/src/dstr-binding/default/cls-expr-gen-meth-static-dflt.template
+++ b/src/dstr-binding/default/cls-expr-gen-meth-static-dflt.template
@@ -5,7 +5,7 @@ path: language/expressions/class/dstr-gen-meth-static-dflt-
 name: static class expression generator method (default parameter)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
 
diff --git a/src/dstr-binding/default/cls-expr-gen-meth-static.template b/src/dstr-binding/default/cls-expr-gen-meth-static.template
index 847c11f3c7..9bcb541a3b 100644
--- a/src/dstr-binding/default/cls-expr-gen-meth-static.template
+++ b/src/dstr-binding/default/cls-expr-gen-meth-static.template
@@ -5,7 +5,7 @@ path: language/expressions/class/dstr-gen-meth-static-
 name: static class expression generator method
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
 
diff --git a/src/dstr-binding/default/cls-expr-gen-meth.template b/src/dstr-binding/default/cls-expr-gen-meth.template
index cf62b3a5d9..1f1e47904f 100644
--- a/src/dstr-binding/default/cls-expr-gen-meth.template
+++ b/src/dstr-binding/default/cls-expr-gen-meth.template
@@ -5,7 +5,7 @@ path: language/expressions/class/dstr-gen-meth-
 name: class expression method
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
 
diff --git a/src/dstr-binding/default/gen-func-decl-dflt.template b/src/dstr-binding/default/gen-func-decl-dflt.template
index a5eb965ab0..52f8d9cb58 100644
--- a/src/dstr-binding/default/gen-func-decl-dflt.template
+++ b/src/dstr-binding/default/gen-func-decl-dflt.template
@@ -5,7 +5,7 @@ path: language/statements/generators/dstr-dflt-
 name: generator function declaration (default parameter)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
 
diff --git a/src/dstr-binding/default/gen-func-decl.template b/src/dstr-binding/default/gen-func-decl.template
index 8e9b6dea02..68f176115f 100644
--- a/src/dstr-binding/default/gen-func-decl.template
+++ b/src/dstr-binding/default/gen-func-decl.template
@@ -5,7 +5,7 @@ path: language/statements/generators/dstr-
 name: generator function declaration
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
 
diff --git a/src/dstr-binding/default/gen-func-expr-dflt.template b/src/dstr-binding/default/gen-func-expr-dflt.template
index f3f16ae6d8..87ed77993a 100644
--- a/src/dstr-binding/default/gen-func-expr-dflt.template
+++ b/src/dstr-binding/default/gen-func-expr-dflt.template
@@ -5,7 +5,7 @@ path: language/expressions/generators/dstr-dflt-
 name: generator function expression (default parameter)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
 
diff --git a/src/dstr-binding/default/gen-func-expr.template b/src/dstr-binding/default/gen-func-expr.template
index 8292448a6e..bbcea8cc02 100644
--- a/src/dstr-binding/default/gen-func-expr.template
+++ b/src/dstr-binding/default/gen-func-expr.template
@@ -5,7 +5,7 @@ path: language/expressions/generators/dstr-
 name: generator function expression
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
 
diff --git a/src/dstr-binding/default/gen-meth.template b/src/dstr-binding/default/gen-meth.template
index bd4e9938ef..50bf051055 100644
--- a/src/dstr-binding/default/gen-meth.template
+++ b/src/dstr-binding/default/gen-meth.template
@@ -5,7 +5,7 @@ path: language/expressions/object/dstr-gen-meth-
 name: generator method
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 info: |
     GeneratorMethod :
         * PropertyName ( StrictFormalParameters ) { GeneratorBody }
diff --git a/src/dstr-binding/default/gen-method-dflt.template b/src/dstr-binding/default/gen-method-dflt.template
index 0a75534c61..59aa756e31 100644
--- a/src/dstr-binding/default/gen-method-dflt.template
+++ b/src/dstr-binding/default/gen-method-dflt.template
@@ -5,7 +5,7 @@ path: language/expressions/object/dstr-gen-meth-dflt-
 name: generator method (default parameter)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 info: |
     GeneratorMethod :
         * PropertyName ( StrictFormalParameters ) { GeneratorBody }
diff --git a/src/dstr-binding/error/cls-decl-gen-meth-dflt.template b/src/dstr-binding/error/cls-decl-gen-meth-dflt.template
index 48479af1b1..4f51d6a21c 100644
--- a/src/dstr-binding/error/cls-decl-gen-meth-dflt.template
+++ b/src/dstr-binding/error/cls-decl-gen-meth-dflt.template
@@ -5,7 +5,7 @@ path: language/statements/class/dstr-gen-meth-dflt-
 name: class expression method (default parameter)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
 
diff --git a/src/dstr-binding/error/cls-decl-gen-meth-static-dflt.template b/src/dstr-binding/error/cls-decl-gen-meth-static-dflt.template
index ba0ee63759..d722764253 100644
--- a/src/dstr-binding/error/cls-decl-gen-meth-static-dflt.template
+++ b/src/dstr-binding/error/cls-decl-gen-meth-static-dflt.template
@@ -5,7 +5,7 @@ path: language/statements/class/dstr-gen-meth-static-dflt-
 name: static class expression generator method (default parameter)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
 
diff --git a/src/dstr-binding/error/cls-decl-gen-meth-static.template b/src/dstr-binding/error/cls-decl-gen-meth-static.template
index 21467eb02b..7785f7ec7d 100644
--- a/src/dstr-binding/error/cls-decl-gen-meth-static.template
+++ b/src/dstr-binding/error/cls-decl-gen-meth-static.template
@@ -5,7 +5,7 @@ path: language/statements/class/dstr-gen-meth-static-
 name: static class expression generator method
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
 
diff --git a/src/dstr-binding/error/cls-decl-gen-meth.template b/src/dstr-binding/error/cls-decl-gen-meth.template
index 347402fd94..f313d1c0ec 100644
--- a/src/dstr-binding/error/cls-decl-gen-meth.template
+++ b/src/dstr-binding/error/cls-decl-gen-meth.template
@@ -5,7 +5,7 @@ path: language/statements/class/dstr-gen-meth-
 name: class expression method
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
 
diff --git a/src/dstr-binding/error/cls-expr-gen-meth-dflt.template b/src/dstr-binding/error/cls-expr-gen-meth-dflt.template
index e6bdc24765..9595e42c9e 100644
--- a/src/dstr-binding/error/cls-expr-gen-meth-dflt.template
+++ b/src/dstr-binding/error/cls-expr-gen-meth-dflt.template
@@ -5,7 +5,7 @@ path: language/expressions/class/dstr-gen-meth-dflt-
 name: class expression method (default parameter)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
 
diff --git a/src/dstr-binding/error/cls-expr-gen-meth-static-dflt.template b/src/dstr-binding/error/cls-expr-gen-meth-static-dflt.template
index 75cd41fe88..6a4aaec82c 100644
--- a/src/dstr-binding/error/cls-expr-gen-meth-static-dflt.template
+++ b/src/dstr-binding/error/cls-expr-gen-meth-static-dflt.template
@@ -5,7 +5,7 @@ path: language/expressions/class/dstr-gen-meth-static-dflt-
 name: static class expression generator method (default parameter)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
 
diff --git a/src/dstr-binding/error/cls-expr-gen-meth-static.template b/src/dstr-binding/error/cls-expr-gen-meth-static.template
index 73c67100fb..a1304926ca 100644
--- a/src/dstr-binding/error/cls-expr-gen-meth-static.template
+++ b/src/dstr-binding/error/cls-expr-gen-meth-static.template
@@ -5,7 +5,7 @@ path: language/expressions/class/dstr-gen-meth-static-
 name: static class expression generator method
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
 
diff --git a/src/dstr-binding/error/cls-expr-gen-meth.template b/src/dstr-binding/error/cls-expr-gen-meth.template
index 4a90b4d7af..c173439067 100644
--- a/src/dstr-binding/error/cls-expr-gen-meth.template
+++ b/src/dstr-binding/error/cls-expr-gen-meth.template
@@ -5,7 +5,7 @@ path: language/expressions/class/dstr-gen-meth-
 name: class expression method
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
 
diff --git a/src/dstr-binding/error/gen-func-decl-dflt.template b/src/dstr-binding/error/gen-func-decl-dflt.template
index 523836662b..f88a13f08c 100644
--- a/src/dstr-binding/error/gen-func-decl-dflt.template
+++ b/src/dstr-binding/error/gen-func-decl-dflt.template
@@ -5,7 +5,7 @@ path: language/statements/generators/dstr-dflt-
 name: generator function declaration (default parameter)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
 
diff --git a/src/dstr-binding/error/gen-func-decl.template b/src/dstr-binding/error/gen-func-decl.template
index 3e3f83e160..1a507ccd78 100644
--- a/src/dstr-binding/error/gen-func-decl.template
+++ b/src/dstr-binding/error/gen-func-decl.template
@@ -5,7 +5,7 @@ path: language/statements/generators/dstr-
 name: generator function declaration
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
 
diff --git a/src/dstr-binding/error/gen-func-expr-dflt.template b/src/dstr-binding/error/gen-func-expr-dflt.template
index 2689749a29..e45f94ec9d 100644
--- a/src/dstr-binding/error/gen-func-expr-dflt.template
+++ b/src/dstr-binding/error/gen-func-expr-dflt.template
@@ -5,7 +5,7 @@ path: language/expressions/generators/dstr-dflt-
 name: generator function expression (default parameter)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
 
diff --git a/src/dstr-binding/error/gen-func-expr.template b/src/dstr-binding/error/gen-func-expr.template
index 8351bb5e5c..7554ef722e 100644
--- a/src/dstr-binding/error/gen-func-expr.template
+++ b/src/dstr-binding/error/gen-func-expr.template
@@ -5,7 +5,7 @@ path: language/expressions/generators/dstr-
 name: generator function expression
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
 
diff --git a/src/dstr-binding/error/gen-meth-dflt.template b/src/dstr-binding/error/gen-meth-dflt.template
index d738d6b2d3..24e7aa2bc0 100644
--- a/src/dstr-binding/error/gen-meth-dflt.template
+++ b/src/dstr-binding/error/gen-meth-dflt.template
@@ -5,7 +5,7 @@ path: language/expressions/object/dstr-gen-meth-dflt-
 name: generator method (default parameter)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 info: |
     GeneratorMethod :
         * PropertyName ( StrictFormalParameters ) { GeneratorBody }
diff --git a/src/dstr-binding/error/gen-meth.template b/src/dstr-binding/error/gen-meth.template
index 2abd12f537..821d08a2d9 100644
--- a/src/dstr-binding/error/gen-meth.template
+++ b/src/dstr-binding/error/gen-meth.template
@@ -5,7 +5,7 @@ path: language/expressions/object/dstr-gen-meth-
 name: generator method
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 info: |
     GeneratorMethod :
         * PropertyName ( StrictFormalParameters ) { GeneratorBody }
diff --git a/src/dstr-binding/obj-ptrn-id-init-fn-name-gen.case b/src/dstr-binding/obj-ptrn-id-init-fn-name-gen.case
index 977d9f08d9..57ccf457a1 100644
--- a/src/dstr-binding/obj-ptrn-id-init-fn-name-gen.case
+++ b/src/dstr-binding/obj-ptrn-id-init-fn-name-gen.case
@@ -16,6 +16,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+features: [generators]
 ---*/
 
 //- elems
diff --git a/src/function-forms/default/cls-decl-gen-meth-static.template b/src/function-forms/default/cls-decl-gen-meth-static.template
index fd8639a30c..70577ea99d 100644
--- a/src/function-forms/default/cls-decl-gen-meth-static.template
+++ b/src/function-forms/default/cls-decl-gen-meth-static.template
@@ -55,6 +55,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/function-forms/default/cls-decl-gen-meth.template b/src/function-forms/default/cls-decl-gen-meth.template
index 731f437302..675da76740 100644
--- a/src/function-forms/default/cls-decl-gen-meth.template
+++ b/src/function-forms/default/cls-decl-gen-meth.template
@@ -55,6 +55,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/function-forms/default/cls-expr-gen-meth-static.template b/src/function-forms/default/cls-expr-gen-meth-static.template
index 7cd524ed30..d1480f8dff 100644
--- a/src/function-forms/default/cls-expr-gen-meth-static.template
+++ b/src/function-forms/default/cls-expr-gen-meth-static.template
@@ -57,6 +57,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/function-forms/default/cls-expr-gen-meth.template b/src/function-forms/default/cls-expr-gen-meth.template
index bc863bfd3b..1a537ca14f 100644
--- a/src/function-forms/default/cls-expr-gen-meth.template
+++ b/src/function-forms/default/cls-expr-gen-meth.template
@@ -57,6 +57,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/function-forms/default/gen-func-decl.template b/src/function-forms/default/gen-func-decl.template
index 14e7379721..d5bd846c1c 100644
--- a/src/function-forms/default/gen-func-decl.template
+++ b/src/function-forms/default/gen-func-decl.template
@@ -34,6 +34,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/function-forms/default/gen-func-expr.template b/src/function-forms/default/gen-func-expr.template
index a59300437a..9939273a7c 100644
--- a/src/function-forms/default/gen-func-expr.template
+++ b/src/function-forms/default/gen-func-expr.template
@@ -34,6 +34,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/function-forms/default/gen-meth.template b/src/function-forms/default/gen-meth.template
index 3e2fe8ac61..ee6be34f94 100644
--- a/src/function-forms/default/gen-meth.template
+++ b/src/function-forms/default/gen-meth.template
@@ -39,6 +39,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/function-forms/error/cls-decl-gen-meth-static.template b/src/function-forms/error/cls-decl-gen-meth-static.template
index 272f037968..513de136b5 100644
--- a/src/function-forms/error/cls-decl-gen-meth-static.template
+++ b/src/function-forms/error/cls-decl-gen-meth-static.template
@@ -55,6 +55,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/function-forms/error/cls-decl-gen-meth.template b/src/function-forms/error/cls-decl-gen-meth.template
index 31389ed892..0519d95412 100644
--- a/src/function-forms/error/cls-decl-gen-meth.template
+++ b/src/function-forms/error/cls-decl-gen-meth.template
@@ -55,6 +55,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/function-forms/error/cls-expr-gen-meth-static.template b/src/function-forms/error/cls-expr-gen-meth-static.template
index ac61f1c024..a292acfdde 100644
--- a/src/function-forms/error/cls-expr-gen-meth-static.template
+++ b/src/function-forms/error/cls-expr-gen-meth-static.template
@@ -57,6 +57,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/function-forms/error/cls-expr-gen-meth.template b/src/function-forms/error/cls-expr-gen-meth.template
index 804d2d8a1c..a9a32455bc 100644
--- a/src/function-forms/error/cls-expr-gen-meth.template
+++ b/src/function-forms/error/cls-expr-gen-meth.template
@@ -57,6 +57,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/function-forms/error/gen-func-decl.template b/src/function-forms/error/gen-func-decl.template
index 4f6cbeb0e5..b701571319 100644
--- a/src/function-forms/error/gen-func-decl.template
+++ b/src/function-forms/error/gen-func-decl.template
@@ -34,6 +34,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/function-forms/error/gen-func-expr.template b/src/function-forms/error/gen-func-expr.template
index c84b1d5960..c200cd4e30 100644
--- a/src/function-forms/error/gen-func-expr.template
+++ b/src/function-forms/error/gen-func-expr.template
@@ -34,6 +34,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/function-forms/error/gen-meth.template b/src/function-forms/error/gen-meth.template
index ddc1db97b9..dc9c40f1a8 100644
--- a/src/function-forms/error/gen-meth.template
+++ b/src/function-forms/error/gen-meth.template
@@ -39,6 +39,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/function-forms/syntax/cls-decl-gen-meth-static.template b/src/function-forms/syntax/cls-decl-gen-meth-static.template
index c0db9b4992..bcac531200 100644
--- a/src/function-forms/syntax/cls-decl-gen-meth-static.template
+++ b/src/function-forms/syntax/cls-decl-gen-meth-static.template
@@ -55,6 +55,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 class C {
diff --git a/src/function-forms/syntax/cls-decl-gen-meth.template b/src/function-forms/syntax/cls-decl-gen-meth.template
index 786b317a2b..d33a041491 100644
--- a/src/function-forms/syntax/cls-decl-gen-meth.template
+++ b/src/function-forms/syntax/cls-decl-gen-meth.template
@@ -55,6 +55,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 class C {
diff --git a/src/function-forms/syntax/cls-expr-gen-meth-static.template b/src/function-forms/syntax/cls-expr-gen-meth-static.template
index 7bf6f00e13..077fca09e3 100644
--- a/src/function-forms/syntax/cls-expr-gen-meth-static.template
+++ b/src/function-forms/syntax/cls-expr-gen-meth-static.template
@@ -57,6 +57,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 0, class {
diff --git a/src/function-forms/syntax/cls-expr-gen-meth.template b/src/function-forms/syntax/cls-expr-gen-meth.template
index 33891b3a22..f385dd8d91 100644
--- a/src/function-forms/syntax/cls-expr-gen-meth.template
+++ b/src/function-forms/syntax/cls-expr-gen-meth.template
@@ -57,6 +57,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 0, class {
diff --git a/src/function-forms/syntax/gen-func-decl.template b/src/function-forms/syntax/gen-func-decl.template
index 6dd1da6ec4..6d7fbbf619 100644
--- a/src/function-forms/syntax/gen-func-decl.template
+++ b/src/function-forms/syntax/gen-func-decl.template
@@ -34,6 +34,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 function* f(/*{ params }*/) {
diff --git a/src/function-forms/syntax/gen-func-expr.template b/src/function-forms/syntax/gen-func-expr.template
index 141e88e98d..f9cffd7da9 100644
--- a/src/function-forms/syntax/gen-func-expr.template
+++ b/src/function-forms/syntax/gen-func-expr.template
@@ -34,6 +34,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 0, function*(/*{ params }*/) {
diff --git a/src/function-forms/syntax/gen-meth.template b/src/function-forms/syntax/gen-meth.template
index c44507f91f..49797b0f60 100644
--- a/src/function-forms/syntax/gen-meth.template
+++ b/src/function-forms/syntax/gen-meth.template
@@ -39,6 +39,7 @@ info: |
         b. Let formalStatus be IteratorBindingInitialization for formals with
            iteratorRecord and env as arguments.
     [...]
+features: [generators]
 ---*/
 
 0, {
diff --git a/src/generators/default/class-decl-method.template b/src/generators/default/class-decl-method.template
index ad49590307..334145980a 100644
--- a/src/generators/default/class-decl-method.template
+++ b/src/generators/default/class-decl-method.template
@@ -15,6 +15,7 @@ info: |
 
   GeneratorMethod :
     * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/generators/default/class-decl-static-method.template b/src/generators/default/class-decl-static-method.template
index dcd8f4e68c..e25ce70a5a 100644
--- a/src/generators/default/class-decl-static-method.template
+++ b/src/generators/default/class-decl-static-method.template
@@ -15,6 +15,7 @@ info: |
 
   GeneratorMethod :
     * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/generators/default/class-expr-method.template b/src/generators/default/class-expr-method.template
index 8580bb9391..7ab56d1cb3 100644
--- a/src/generators/default/class-expr-method.template
+++ b/src/generators/default/class-expr-method.template
@@ -15,6 +15,7 @@ info: |
 
   GeneratorMethod :
     * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/generators/default/class-expr-static-method.template b/src/generators/default/class-expr-static-method.template
index dd6e4ef0f7..609097dbcb 100644
--- a/src/generators/default/class-expr-static-method.template
+++ b/src/generators/default/class-expr-static-method.template
@@ -15,6 +15,7 @@ info: |
 
   GeneratorMethod :
     * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/generators/default/declaration.template b/src/generators/default/declaration.template
index c9454f6921..a1a248a818 100644
--- a/src/generators/default/declaration.template
+++ b/src/generators/default/declaration.template
@@ -9,6 +9,7 @@ info: |
 
   GeneratorDeclaration :
     function * BindingIdentifier ( FormalParameters ) { GeneratorBody }
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/generators/default/expression-named.template b/src/generators/default/expression-named.template
index 1a2ad892d9..a914bd4264 100644
--- a/src/generators/default/expression-named.template
+++ b/src/generators/default/expression-named.template
@@ -9,6 +9,7 @@ info: |
 
   GeneratorExpression:
     function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/generators/default/expression.template b/src/generators/default/expression.template
index f66994b8b1..1479881094 100644
--- a/src/generators/default/expression.template
+++ b/src/generators/default/expression.template
@@ -9,6 +9,7 @@ info: |
 
   GeneratorExpression:
     function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/generators/default/obj-method.template b/src/generators/default/obj-method.template
index d909462bc7..7cf8b98123 100644
--- a/src/generators/default/obj-method.template
+++ b/src/generators/default/obj-method.template
@@ -9,6 +9,7 @@ info: |
 
   GeneratorMethod[Yield, Await]:
     * PropertyName[?Yield, ?Await] ( UniqueFormalParameters[+Yield, ~Await] ) { GeneratorBody }
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/generators/non-strict/declaration.template b/src/generators/non-strict/declaration.template
index 5409b5134a..49f8045e34 100644
--- a/src/generators/non-strict/declaration.template
+++ b/src/generators/non-strict/declaration.template
@@ -9,6 +9,7 @@ info: |
 
   GeneratorDeclaration[Yield, Await, Default]:
     function * BindingIdentifier[?Yield, ?Await] ( FormalParameters[+Yield, ~Await] ) { GeneratorBody }
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/generators/non-strict/expression-named.template b/src/generators/non-strict/expression-named.template
index 43448e0963..30dd92156a 100644
--- a/src/generators/non-strict/expression-named.template
+++ b/src/generators/non-strict/expression-named.template
@@ -9,6 +9,7 @@ info: |
 
   GeneratorExpression:
     function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/generators/non-strict/expression.template b/src/generators/non-strict/expression.template
index 285a84b75b..7e2db5f8c4 100644
--- a/src/generators/non-strict/expression.template
+++ b/src/generators/non-strict/expression.template
@@ -9,6 +9,7 @@ info: |
 
   GeneratorExpression:
     function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/generators/non-strict/obj-method.template b/src/generators/non-strict/obj-method.template
index 67b6e23377..9360d50994 100644
--- a/src/generators/non-strict/obj-method.template
+++ b/src/generators/non-strict/obj-method.template
@@ -9,6 +9,7 @@ info: |
 
   GeneratorMethod[Yield, Await]:
     * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+features: [generators]
 ---*/
 
 var callCount = 0;
diff --git a/src/generators/syntax/class-decl-method.template b/src/generators/syntax/class-decl-method.template
index 0dd8b66afb..0bffb7201c 100644
--- a/src/generators/syntax/class-decl-method.template
+++ b/src/generators/syntax/class-decl-method.template
@@ -15,6 +15,7 @@ info: |
 
   GeneratorMethod :
     * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+features: [generators]
 ---*/
 
 class C { *gen() {
diff --git a/src/generators/syntax/class-decl-static-method.template b/src/generators/syntax/class-decl-static-method.template
index 217e854914..2a1b84f587 100644
--- a/src/generators/syntax/class-decl-static-method.template
+++ b/src/generators/syntax/class-decl-static-method.template
@@ -15,6 +15,7 @@ info: |
 
   GeneratorMethod :
     * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+features: [generators]
 ---*/
 
 class C {static *gen() {
diff --git a/src/generators/syntax/class-expr-method.template b/src/generators/syntax/class-expr-method.template
index 9ee72a08d9..f4f524e9d3 100644
--- a/src/generators/syntax/class-expr-method.template
+++ b/src/generators/syntax/class-expr-method.template
@@ -15,6 +15,7 @@ info: |
 
   GeneratorMethod :
     * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+features: [generators]
 ---*/
 
 var C = class {*gen() {
diff --git a/src/generators/syntax/class-expr-static-method.template b/src/generators/syntax/class-expr-static-method.template
index c6dd24225a..62b1e85f77 100644
--- a/src/generators/syntax/class-expr-static-method.template
+++ b/src/generators/syntax/class-expr-static-method.template
@@ -15,6 +15,7 @@ info: |
 
   GeneratorMethod :
     * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+features: [generators]
 ---*/
 
 var C = class { static *gen() {
diff --git a/src/generators/syntax/declaration.template b/src/generators/syntax/declaration.template
index 99b003f28c..0924dd5882 100644
--- a/src/generators/syntax/declaration.template
+++ b/src/generators/syntax/declaration.template
@@ -9,6 +9,7 @@ info: |
 
   GeneratorDeclaration :
     function * BindingIdentifier ( FormalParameters ) { GeneratorBody }
+features: [generators]
 ---*/
 
 function *gen() {
diff --git a/src/generators/syntax/expression-named.template b/src/generators/syntax/expression-named.template
index 17cd90d224..0362578994 100644
--- a/src/generators/syntax/expression-named.template
+++ b/src/generators/syntax/expression-named.template
@@ -9,6 +9,7 @@ info: |
 
   GeneratorExpression:
     function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
+features: [generators]
 ---*/
 
 var gen = function *g() {
diff --git a/src/generators/syntax/expression.template b/src/generators/syntax/expression.template
index 03622695d3..21e808540d 100644
--- a/src/generators/syntax/expression.template
+++ b/src/generators/syntax/expression.template
@@ -9,6 +9,7 @@ info: |
 
   GeneratorExpression:
     function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
+features: [generators]
 ---*/
 
 var gen = function *() {
diff --git a/src/generators/syntax/obj-method.template b/src/generators/syntax/obj-method.template
index 4da2043566..124e9747d9 100644
--- a/src/generators/syntax/obj-method.template
+++ b/src/generators/syntax/obj-method.template
@@ -9,6 +9,7 @@ info: |
 
   GeneratorMethod[Yield, Await]:
     * PropertyName[?Yield, ?Await] ( UniqueFormalParameters[+Yield, ~Await] ) { GeneratorBody }
+features: [generators]
 ---*/
 
 var obj = {
diff --git a/src/spread/mult-err-expr-throws.case b/src/spread/mult-err-expr-throws.case
index e06e549f8d..e3cb140f9d 100644
--- a/src/spread/mult-err-expr-throws.case
+++ b/src/spread/mult-err-expr-throws.case
@@ -12,6 +12,7 @@ info: |
     2. Let spreadRef be the result of evaluating AssignmentExpression.
     3. Let iterator be GetIterator(GetValue(spreadRef) ).
     4. ReturnIfAbrupt(iterator).
+features: [generators]
 ---*/
 
 //- error
diff --git a/test/built-ins/GeneratorFunction/extensibility.js b/test/built-ins/GeneratorFunction/extensibility.js
index e8cd2ff078..42d23956bc 100644
--- a/test/built-ins/GeneratorFunction/extensibility.js
+++ b/test/built-ins/GeneratorFunction/extensibility.js
@@ -7,6 +7,7 @@ description: Object extensibility
 info: >
   The value of the [[Extensible]] internal slot of the GeneratorFunction
   constructor is true.
+features: [generators]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/GeneratorFunction/has-instance.js b/test/built-ins/GeneratorFunction/has-instance.js
index 0f69a38895..80d176b784 100644
--- a/test/built-ins/GeneratorFunction/has-instance.js
+++ b/test/built-ins/GeneratorFunction/has-instance.js
@@ -5,6 +5,7 @@ es6id: 25.2
 description: >
     Generator function instances are correctly reported as instances of the
     GeneratorFunction intrinsic.
+features: [generators]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/GeneratorFunction/instance-construct-throws.js b/test/built-ins/GeneratorFunction/instance-construct-throws.js
index fc22cb1538..8225a4776a 100644
--- a/test/built-ins/GeneratorFunction/instance-construct-throws.js
+++ b/test/built-ins/GeneratorFunction/instance-construct-throws.js
@@ -18,6 +18,7 @@ info: |
         b. Perform DefinePropertyOrThrow(F, "prototype", PropertyDescriptor{[[Value]]: prototype,
             [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: false}).
     ...
+features: [generators]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/GeneratorFunction/instance-length.js b/test/built-ins/GeneratorFunction/instance-length.js
index 857988fe9f..fb1389f736 100644
--- a/test/built-ins/GeneratorFunction/instance-length.js
+++ b/test/built-ins/GeneratorFunction/instance-length.js
@@ -22,6 +22,7 @@ info: |
        false, [[Configurable]]: true}).
     [...]
 includes: [propertyHelper.js]
+features: [generators]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/GeneratorFunction/instance-name.js b/test/built-ins/GeneratorFunction/instance-name.js
index c779cee116..af05291f23 100644
--- a/test/built-ins/GeneratorFunction/instance-name.js
+++ b/test/built-ins/GeneratorFunction/instance-name.js
@@ -14,6 +14,7 @@ info: >
     [...]
     29. Perform SetFunctionName(F, "anonymous").
 includes: [propertyHelper.js]
+features: [generators]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/GeneratorFunction/instance-prototype.js b/test/built-ins/GeneratorFunction/instance-prototype.js
index 09c6f0a613..3f6db037d2 100644
--- a/test/built-ins/GeneratorFunction/instance-prototype.js
+++ b/test/built-ins/GeneratorFunction/instance-prototype.js
@@ -18,6 +18,7 @@ info: |
            [[Enumerable]]: false, [[Configurable]]: false}).
     [...]
 includes: [propertyHelper.js]
+features: [generators]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/GeneratorFunction/instance-yield-expr-in-param.js b/test/built-ins/GeneratorFunction/instance-yield-expr-in-param.js
index 35bb8ad3b1..a04982da88 100644
--- a/test/built-ins/GeneratorFunction/instance-yield-expr-in-param.js
+++ b/test/built-ins/GeneratorFunction/instance-yield-expr-in-param.js
@@ -14,6 +14,7 @@ info: |
     20. If kind is "generator", then
         a. If parameters Contains YieldExpression is true, throw a SyntaxError
            exception.
+features: [generators]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/GeneratorFunction/invoked-as-constructor-no-arguments.js b/test/built-ins/GeneratorFunction/invoked-as-constructor-no-arguments.js
index bb70482e3c..cb5bf8e8a9 100644
--- a/test/built-ins/GeneratorFunction/invoked-as-constructor-no-arguments.js
+++ b/test/built-ins/GeneratorFunction/invoked-as-constructor-no-arguments.js
@@ -5,6 +5,7 @@ es6id: 25.2
 description: >
     When invoked via the constructor invocation pattern without arguments, the
     GeneratorFunction intrinsic returns a valid generator with an empty body.
+features: [generators]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/GeneratorFunction/invoked-as-function-multiple-arguments.js b/test/built-ins/GeneratorFunction/invoked-as-function-multiple-arguments.js
index e3c83abdc8..a32adad02a 100644
--- a/test/built-ins/GeneratorFunction/invoked-as-function-multiple-arguments.js
+++ b/test/built-ins/GeneratorFunction/invoked-as-function-multiple-arguments.js
@@ -7,6 +7,7 @@ description: >
     the GeneratorFunction intrinsic creates a valid generator whose body is the
     last argument evaluated as source code and whose formal parameters are
     defined by the preceeding arguments.
+features: [generators]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/GeneratorFunction/invoked-as-function-no-arguments.js b/test/built-ins/GeneratorFunction/invoked-as-function-no-arguments.js
index 52d6686da9..928f733744 100644
--- a/test/built-ins/GeneratorFunction/invoked-as-function-no-arguments.js
+++ b/test/built-ins/GeneratorFunction/invoked-as-function-no-arguments.js
@@ -5,6 +5,7 @@ es6id: 25.2
 description: >
     When invoked via the function invocation pattern without arguments, the
     GeneratorFunction intrinsic returns a valid generator with an empty body.
+features: [generators]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/GeneratorFunction/invoked-as-function-single-argument.js b/test/built-ins/GeneratorFunction/invoked-as-function-single-argument.js
index 8e1411039a..e49ddcbc4e 100644
--- a/test/built-ins/GeneratorFunction/invoked-as-function-single-argument.js
+++ b/test/built-ins/GeneratorFunction/invoked-as-function-single-argument.js
@@ -6,6 +6,7 @@ description: >
     When invoked via the function invocation pattern with a single argument,
     the GeneratorFunction intrinsic creates a valid generator whose body is the
     first argument evaluated as source code.
+features: [generators]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/GeneratorFunction/length.js b/test/built-ins/GeneratorFunction/length.js
index f60239cc2a..f118d1de61 100644
--- a/test/built-ins/GeneratorFunction/length.js
+++ b/test/built-ins/GeneratorFunction/length.js
@@ -7,6 +7,7 @@ description: >
   This is a data property with a value of 1. This property has the attributes {
   [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [generators]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/GeneratorFunction/name.js b/test/built-ins/GeneratorFunction/name.js
index 707489cc70..bebaba54df 100644
--- a/test/built-ins/GeneratorFunction/name.js
+++ b/test/built-ins/GeneratorFunction/name.js
@@ -17,6 +17,7 @@ info: >
   if it exists, has the attributes { [[Writable]]: false, [[Enumerable]]:
   false, [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [generators]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/GeneratorFunction/proto-from-ctor-realm.js b/test/built-ins/GeneratorFunction/proto-from-ctor-realm.js
index 6e1bc5fb9a..b8215acf4e 100644
--- a/test/built-ins/GeneratorFunction/proto-from-ctor-realm.js
+++ b/test/built-ins/GeneratorFunction/proto-from-ctor-realm.js
@@ -26,7 +26,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [cross-realm, Reflect]
+features: [generators, cross-realm, Reflect]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/GeneratorFunction/prototype/Symbol.toStringTag.js b/test/built-ins/GeneratorFunction/prototype/Symbol.toStringTag.js
index e542b8dd11..59f7647e88 100644
--- a/test/built-ins/GeneratorFunction/prototype/Symbol.toStringTag.js
+++ b/test/built-ins/GeneratorFunction/prototype/Symbol.toStringTag.js
@@ -12,7 +12,7 @@ info: >
     false, [[Configurable]]: true }.
 es6id: 25.2.3.3
 includes: [propertyHelper.js]
-features: [Symbol.toStringTag]
+features: [generators, Symbol.toStringTag]
 ---*/
 
 var GeneratorFunctionPrototype = Object.getPrototypeOf(function*() {});
diff --git a/test/built-ins/GeneratorFunction/prototype/constructor.js b/test/built-ins/GeneratorFunction/prototype/constructor.js
index 132bde1001..b6b66c05da 100644
--- a/test/built-ins/GeneratorFunction/prototype/constructor.js
+++ b/test/built-ins/GeneratorFunction/prototype/constructor.js
@@ -12,6 +12,7 @@ info: >
   This property has the attributes { [[Writable]]: false, [[Enumerable]]:
   false, [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [generators]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/GeneratorFunction/prototype/extensibility.js b/test/built-ins/GeneratorFunction/prototype/extensibility.js
index 231a23b0a1..493e752f7f 100644
--- a/test/built-ins/GeneratorFunction/prototype/extensibility.js
+++ b/test/built-ins/GeneratorFunction/prototype/extensibility.js
@@ -7,6 +7,7 @@ description: Object extensibility
 info: >
   The initial value of the [[Extensible]] internal slot of the
   GeneratorFunction prototype object is true.
+features: [generators]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/GeneratorFunction/prototype/prop-desc.js b/test/built-ins/GeneratorFunction/prototype/prop-desc.js
index ffb674591e..9901ebcf5c 100644
--- a/test/built-ins/GeneratorFunction/prototype/prop-desc.js
+++ b/test/built-ins/GeneratorFunction/prototype/prop-desc.js
@@ -7,6 +7,7 @@ info: >
   This property has the attributes { [[Writable]]: false, [[Enumerable]]:
   false, [[Configurable]]: false }.
 includes: [propertyHelper.js]
+features: [generators]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/GeneratorFunction/prototype/prototype.js b/test/built-ins/GeneratorFunction/prototype/prototype.js
index c90d452741..a5e6fd51d8 100644
--- a/test/built-ins/GeneratorFunction/prototype/prototype.js
+++ b/test/built-ins/GeneratorFunction/prototype/prototype.js
@@ -9,6 +9,7 @@ description: >
     This property has the attributes { [[Writable]]: false, [[Enumerable]]:
     false, [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [generators]
 ---*/
 
 var GeneratorFunctionPrototype = Object.getPrototypeOf(function*() {});
diff --git a/test/built-ins/GeneratorPrototype/Symbol.toStringTag.js b/test/built-ins/GeneratorPrototype/Symbol.toStringTag.js
index 29a62affd6..81996ea4ce 100644
--- a/test/built-ins/GeneratorPrototype/Symbol.toStringTag.js
+++ b/test/built-ins/GeneratorPrototype/Symbol.toStringTag.js
@@ -12,7 +12,7 @@ info: >
     false, [[Configurable]]: true }.
 es6id: 25.3.1.5
 includes: [propertyHelper.js]
-features: [Symbol.toStringTag]
+features: [generators, Symbol.toStringTag]
 ---*/
 
 var GeneratorPrototype = Object.getPrototypeOf(
diff --git a/test/built-ins/GeneratorPrototype/constructor.js b/test/built-ins/GeneratorPrototype/constructor.js
index 4594a8846a..439715b82c 100644
--- a/test/built-ins/GeneratorPrototype/constructor.js
+++ b/test/built-ins/GeneratorPrototype/constructor.js
@@ -7,6 +7,7 @@ description: >
     that is non-enumerable, non-writable, and configurable.
 includes: [propertyHelper.js]
 es6id: 25.3.1
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/next/consecutive-yields.js b/test/built-ins/GeneratorPrototype/next/consecutive-yields.js
index 0288eae2a3..3f6332163c 100644
--- a/test/built-ins/GeneratorPrototype/next/consecutive-yields.js
+++ b/test/built-ins/GeneratorPrototype/next/consecutive-yields.js
@@ -5,6 +5,7 @@ es6id: 25.2
 description: >
     When a generator body contains two consecutive yield statements, it should
     produce an iterable that visits each yielded value and then completes.
+features: [generators]
 ---*/
 
 function* g() { yield 1; yield 2; }
diff --git a/test/built-ins/GeneratorPrototype/next/context-method-invocation.js b/test/built-ins/GeneratorPrototype/next/context-method-invocation.js
index c80e13b1c8..5e6f3ed5a5 100644
--- a/test/built-ins/GeneratorPrototype/next/context-method-invocation.js
+++ b/test/built-ins/GeneratorPrototype/next/context-method-invocation.js
@@ -5,6 +5,7 @@ es6id: 25.2
 description: >
     When a generator function is invoked as a method of an object, its context
     is that object.
+features: [generators]
 ---*/
 
 var context;
diff --git a/test/built-ins/GeneratorPrototype/next/from-state-executing.js b/test/built-ins/GeneratorPrototype/next/from-state-executing.js
index 0490ed31dc..29461cc117 100644
--- a/test/built-ins/GeneratorPrototype/next/from-state-executing.js
+++ b/test/built-ins/GeneratorPrototype/next/from-state-executing.js
@@ -33,6 +33,7 @@ info: |
   3. Assert: generator also has a [[GeneratorContext]] internal slot.
   4. Let state be generator.[[GeneratorState]].
   5. If state is "executing", throw a TypeError exception.
+features: [generators]
 ---*/
 
 var iter, result;
diff --git a/test/built-ins/GeneratorPrototype/next/length.js b/test/built-ins/GeneratorPrototype/next/length.js
index 8660b391ad..e45d5c8859 100644
--- a/test/built-ins/GeneratorPrototype/next/length.js
+++ b/test/built-ins/GeneratorPrototype/next/length.js
@@ -20,6 +20,7 @@ info: >
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/next/lone-return.js b/test/built-ins/GeneratorPrototype/next/lone-return.js
index 7afdb9dae3..cae93289b4 100644
--- a/test/built-ins/GeneratorPrototype/next/lone-return.js
+++ b/test/built-ins/GeneratorPrototype/next/lone-return.js
@@ -5,6 +5,7 @@ es6id: 25.2
 description: >
     When a generator body contains a lone return statement, it should produce
     an iterator that immediately completes with the returned value.
+features: [generators]
 ---*/
 
 function* g() { return 23; }
diff --git a/test/built-ins/GeneratorPrototype/next/lone-yield.js b/test/built-ins/GeneratorPrototype/next/lone-yield.js
index 90b2eddae3..76199c6721 100644
--- a/test/built-ins/GeneratorPrototype/next/lone-yield.js
+++ b/test/built-ins/GeneratorPrototype/next/lone-yield.js
@@ -5,6 +5,7 @@ es6id: 25.2
 description: >
     When a generator body contains a lone yield statement, it should produce an
     iterable that visits the yielded value and then completes.
+features: [generators]
 ---*/
 
 function* g() { yield 1; }
diff --git a/test/built-ins/GeneratorPrototype/next/name.js b/test/built-ins/GeneratorPrototype/next/name.js
index a71fec48e0..abc4d8b0d4 100644
--- a/test/built-ins/GeneratorPrototype/next/name.js
+++ b/test/built-ins/GeneratorPrototype/next/name.js
@@ -17,6 +17,7 @@ info: >
     object, if it exists, has the attributes { [[Writable]]: false,
     [[Enumerable]]: false, [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/next/no-control-flow.js b/test/built-ins/GeneratorPrototype/next/no-control-flow.js
index 9ce9f920a1..abb4134c4b 100644
--- a/test/built-ins/GeneratorPrototype/next/no-control-flow.js
+++ b/test/built-ins/GeneratorPrototype/next/no-control-flow.js
@@ -6,6 +6,7 @@ description: >
     When a generator body contains no control flow statements, it should
     produce an iterator that is initially completed with `undefined` as its
     value.
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/next/property-descriptor.js b/test/built-ins/GeneratorPrototype/next/property-descriptor.js
index 58166bffce..4430764ec1 100644
--- a/test/built-ins/GeneratorPrototype/next/property-descriptor.js
+++ b/test/built-ins/GeneratorPrototype/next/property-descriptor.js
@@ -7,6 +7,7 @@ description: >
     non-enumerable, writable, and configurable (as per section 17).
 includes: [propertyHelper.js]
 es6id: 25.3.1
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/next/result-prototype.js b/test/built-ins/GeneratorPrototype/next/result-prototype.js
index 441e686948..a65010b87b 100644
--- a/test/built-ins/GeneratorPrototype/next/result-prototype.js
+++ b/test/built-ins/GeneratorPrototype/next/result-prototype.js
@@ -5,6 +5,7 @@ es6id: 25.2
 description: >
     The `next` method returns an object that has "own" properties `value` and
     `done` and that inherits directly from the Object prototype.
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/next/return-yield-expr.js b/test/built-ins/GeneratorPrototype/next/return-yield-expr.js
index 62a54d8b7e..4c97cb7d31 100644
--- a/test/built-ins/GeneratorPrototype/next/return-yield-expr.js
+++ b/test/built-ins/GeneratorPrototype/next/return-yield-expr.js
@@ -4,6 +4,7 @@
 es6id: 25.2
 description: >
     Yield expressions are valid yield expression operands.
+features: [generators]
 ---*/
 
 function* g() {
diff --git a/test/built-ins/GeneratorPrototype/next/this-val-not-generator.js b/test/built-ins/GeneratorPrototype/next/this-val-not-generator.js
index afabed53b2..dee7dfc4ef 100644
--- a/test/built-ins/GeneratorPrototype/next/this-val-not-generator.js
+++ b/test/built-ins/GeneratorPrototype/next/this-val-not-generator.js
@@ -19,6 +19,7 @@ info: |
   [...]
   2. If generator does not have a [[GeneratorState]] internal slot, throw a
      TypeError exception.
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/next/this-val-not-object.js b/test/built-ins/GeneratorPrototype/next/this-val-not-object.js
index 6530075e6a..646590b6fe 100644
--- a/test/built-ins/GeneratorPrototype/next/this-val-not-object.js
+++ b/test/built-ins/GeneratorPrototype/next/this-val-not-object.js
@@ -17,7 +17,7 @@ info: |
   25.3.3.2 GeneratorValidate
 
   1. If Type(generator) is not Object, throw a TypeError exception.
-features: [Symbol]
+features: [generators, Symbol]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/return/from-state-completed.js b/test/built-ins/GeneratorPrototype/return/from-state-completed.js
index 6748f90e3c..2745647741 100644
--- a/test/built-ins/GeneratorPrototype/return/from-state-completed.js
+++ b/test/built-ins/GeneratorPrototype/return/from-state-completed.js
@@ -5,6 +5,7 @@ es6id: 25.3.1.3
 description: >
     Resuming abruptly from a generator in the 'completed' state should honor the
     abrupt completion and remain in the 'completed' state.
+features: [generators]
 ---*/
 
 function* G() {}
diff --git a/test/built-ins/GeneratorPrototype/return/from-state-executing.js b/test/built-ins/GeneratorPrototype/return/from-state-executing.js
index 2dc4c51536..9cf5a78bdf 100644
--- a/test/built-ins/GeneratorPrototype/return/from-state-executing.js
+++ b/test/built-ins/GeneratorPrototype/return/from-state-executing.js
@@ -33,6 +33,7 @@ info: |
   3. Assert: generator also has a [[GeneratorContext]] internal slot.
   4. Let state be generator.[[GeneratorState]].
   5. If state is "executing", throw a TypeError exception.
+features: [generators]
 ---*/
 
 var iter, result;
diff --git a/test/built-ins/GeneratorPrototype/return/from-state-suspended-start.js b/test/built-ins/GeneratorPrototype/return/from-state-suspended-start.js
index a824596d9d..b20ad0aed5 100644
--- a/test/built-ins/GeneratorPrototype/return/from-state-suspended-start.js
+++ b/test/built-ins/GeneratorPrototype/return/from-state-suspended-start.js
@@ -6,6 +6,7 @@ description: >
     Resuming abruptly from a generator in the 'suspendedStart' state should
     honor the abrupt completion and trigger a transition into the 'completed'
     state.
+features: [generators]
 ---*/
 
 var bodyCount = 0;
diff --git a/test/built-ins/GeneratorPrototype/return/length.js b/test/built-ins/GeneratorPrototype/return/length.js
index fd7e72aa52..07232ff21e 100644
--- a/test/built-ins/GeneratorPrototype/return/length.js
+++ b/test/built-ins/GeneratorPrototype/return/length.js
@@ -20,6 +20,7 @@ info: >
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/return/name.js b/test/built-ins/GeneratorPrototype/return/name.js
index 79f1df8c19..397e308977 100644
--- a/test/built-ins/GeneratorPrototype/return/name.js
+++ b/test/built-ins/GeneratorPrototype/return/name.js
@@ -17,6 +17,7 @@ info: >
     object, if it exists, has the attributes { [[Writable]]: false,
     [[Enumerable]]: false, [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/return/property-descriptor.js b/test/built-ins/GeneratorPrototype/return/property-descriptor.js
index 3ed7e2823a..5bad0d1527 100644
--- a/test/built-ins/GeneratorPrototype/return/property-descriptor.js
+++ b/test/built-ins/GeneratorPrototype/return/property-descriptor.js
@@ -7,6 +7,7 @@ description: >
     non-enumerable, writable, and configurable (as per section 17).
 includes: [propertyHelper.js]
 es6id: 25.3.1
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/return/this-val-not-generator.js b/test/built-ins/GeneratorPrototype/return/this-val-not-generator.js
index b0f0177879..1af04d2996 100644
--- a/test/built-ins/GeneratorPrototype/return/this-val-not-generator.js
+++ b/test/built-ins/GeneratorPrototype/return/this-val-not-generator.js
@@ -19,6 +19,7 @@ info: |
   [...]
   2. If generator does not have a [[GeneratorState]] internal slot, throw a
      TypeError exception.
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/return/this-val-not-object.js b/test/built-ins/GeneratorPrototype/return/this-val-not-object.js
index 942991cecf..edf0b124ed 100644
--- a/test/built-ins/GeneratorPrototype/return/this-val-not-object.js
+++ b/test/built-ins/GeneratorPrototype/return/this-val-not-object.js
@@ -17,7 +17,7 @@ info: |
   25.3.3.2 GeneratorValidate
 
   1. If Type(generator) is not Object, throw a TypeError exception.
-features: [Symbol]
+features: [generators, Symbol]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/return/try-catch-before-try.js b/test/built-ins/GeneratorPrototype/return/try-catch-before-try.js
index 6d91d185c8..f1b1bdc441 100644
--- a/test/built-ins/GeneratorPrototype/return/try-catch-before-try.js
+++ b/test/built-ins/GeneratorPrototype/return/try-catch-before-try.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused before a `try..catch` statement, `return` should
     interrupt control flow as if a `return` statement had appeared at that
     location in the function body.
+features: [generators]
 ---*/
 
 var unreachable = 0;
diff --git a/test/built-ins/GeneratorPrototype/return/try-catch-following-catch.js b/test/built-ins/GeneratorPrototype/return/try-catch-following-catch.js
index 1e65a7cb2a..f354530be2 100644
--- a/test/built-ins/GeneratorPrototype/return/try-catch-following-catch.js
+++ b/test/built-ins/GeneratorPrototype/return/try-catch-following-catch.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused after a `try..catch` statement, `return` should
     interrupt control flow as if a `return` statement had appeared at that
     location in the function body.
+features: [generators]
 ---*/
 
 var afterCatch = 0;
diff --git a/test/built-ins/GeneratorPrototype/return/try-catch-within-catch.js b/test/built-ins/GeneratorPrototype/return/try-catch-within-catch.js
index 61e0bed611..16c9573f6c 100644
--- a/test/built-ins/GeneratorPrototype/return/try-catch-within-catch.js
+++ b/test/built-ins/GeneratorPrototype/return/try-catch-within-catch.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused within the `catch` block of a `try..catch`
     statement, `return` should interrupt control flow as if a `return`
     statement had appeared at that location in the function body.
+features: [generators]
 ---*/
 
 var inCatch = 0;
diff --git a/test/built-ins/GeneratorPrototype/return/try-catch-within-try.js b/test/built-ins/GeneratorPrototype/return/try-catch-within-try.js
index 4e67c78d2a..3e925ba106 100644
--- a/test/built-ins/GeneratorPrototype/return/try-catch-within-try.js
+++ b/test/built-ins/GeneratorPrototype/return/try-catch-within-try.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused within the `try` block of a `try..catch`
     statement, `return` should interrupt control flow as if a `return`
     statement had appeared at that location in the function body.
+features: [generators]
 ---*/
 
 var inTry = 0;
diff --git a/test/built-ins/GeneratorPrototype/return/try-finally-before-try.js b/test/built-ins/GeneratorPrototype/return/try-finally-before-try.js
index 0dfc83a19a..1f1522fbb8 100644
--- a/test/built-ins/GeneratorPrototype/return/try-finally-before-try.js
+++ b/test/built-ins/GeneratorPrototype/return/try-finally-before-try.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused before a `try..finally` statement, `return`
     should interrupt control flow as if a `return` statement had appeared at
     that location in the function body.
+features: [generators]
 ---*/
 
 var unreachable = 0;
diff --git a/test/built-ins/GeneratorPrototype/return/try-finally-following-finally.js b/test/built-ins/GeneratorPrototype/return/try-finally-following-finally.js
index 8f6b893147..9066852be2 100644
--- a/test/built-ins/GeneratorPrototype/return/try-finally-following-finally.js
+++ b/test/built-ins/GeneratorPrototype/return/try-finally-following-finally.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused after a `try..finally` statement, `return`
     should interrupt control flow as if a `return` statement had appeared at
     that location in the function body.
+features: [generators]
 ---*/
 
 var afterFinally = 0;
diff --git a/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-catch.js b/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-catch.js
index 0eccc18b30..25e1c134ea 100644
--- a/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-catch.js
+++ b/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-catch.js
@@ -7,6 +7,7 @@ description: >
     `try` block of a `try..catch` statement, `return` should interrupt control
     flow as if a `return` statement had appeared at that location in the
     function body.
+features: [generators]
 ---*/
 
 var inCatch = 0;
diff --git a/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-finally.js b/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-finally.js
index 033e7bfd9f..42ff56701b 100644
--- a/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-finally.js
+++ b/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-finally.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused within a `finally` block of a `try..catch`
     statement, `return` should interrupt control flow as if a `return`
     statement had appeared at that location in the function body.
+features: [generators]
 ---*/
 
 var inFinally = 0;
diff --git a/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-inner-try.js b/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-inner-try.js
index 2c3e9e94d9..8cb4b6ba1e 100644
--- a/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-inner-try.js
+++ b/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-inner-try.js
@@ -7,6 +7,7 @@ description: >
     `try` block of a `try..catch` statement, `return` should interrupt control
     flow as if a `return` statement had appeared at that location in the
     function body.
+features: [generators]
 ---*/
 
 var inTry = 0;
diff --git a/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-outer-try-after-nested.js b/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-outer-try-after-nested.js
index c30896370f..2342f69a60 100644
--- a/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-outer-try-after-nested.js
+++ b/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-outer-try-after-nested.js
@@ -7,6 +7,7 @@ description: >
     and following a nested `try..catch` statment, `return` should interrupt
     control flow as if a `return` statement had appeared at that location in
     the function body.
+features: [generators]
 ---*/
 
 var inCatch = 0;
diff --git a/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-outer-try-before-nested.js b/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-outer-try-before-nested.js
index d47c5f9e63..f97d9bb485 100644
--- a/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-outer-try-before-nested.js
+++ b/test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-outer-try-before-nested.js
@@ -7,6 +7,7 @@ description: >
     and before a nested `try..catch` statement, `return` should interrupt
     control flow as if a `return` statement had appeared at that location in
     the function body.
+features: [generators]
 ---*/
 
 var inTry = 0;
diff --git a/test/built-ins/GeneratorPrototype/return/try-finally-within-finally.js b/test/built-ins/GeneratorPrototype/return/try-finally-within-finally.js
index 738a2c0c16..4ea893dc34 100644
--- a/test/built-ins/GeneratorPrototype/return/try-finally-within-finally.js
+++ b/test/built-ins/GeneratorPrototype/return/try-finally-within-finally.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused within the `finally` block of a `try..finally`
     statement, `return` should interrupt control flow as if a `return`
     statement had appeared at that location in the function body.
+features: [generators]
 ---*/
 
 var inFinally = 0;
diff --git a/test/built-ins/GeneratorPrototype/return/try-finally-within-try.js b/test/built-ins/GeneratorPrototype/return/try-finally-within-try.js
index 829bf00aa7..5b0dce6ef2 100644
--- a/test/built-ins/GeneratorPrototype/return/try-finally-within-try.js
+++ b/test/built-ins/GeneratorPrototype/return/try-finally-within-try.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused within a `try` block of a `try..finally`
     statement, `return` should interrupt control flow as if a `return`
     statement had appeared at that location in the function body.
+features: [generators]
 ---*/
 
 var inTry = 0;
diff --git a/test/built-ins/GeneratorPrototype/throw/from-state-completed.js b/test/built-ins/GeneratorPrototype/throw/from-state-completed.js
index b838f9be90..3d8e6cbf5d 100644
--- a/test/built-ins/GeneratorPrototype/throw/from-state-completed.js
+++ b/test/built-ins/GeneratorPrototype/throw/from-state-completed.js
@@ -5,6 +5,7 @@ es6id: 25.3.1.4
 description: >
     Resuming abruptly from a generator in the 'completed' state should honor
     the abrupt completion and remain in the 'completed' state.
+features: [generators]
 ---*/
 
 function E() {}
diff --git a/test/built-ins/GeneratorPrototype/throw/from-state-executing.js b/test/built-ins/GeneratorPrototype/throw/from-state-executing.js
index 76c05ea91a..2af2f73ab3 100644
--- a/test/built-ins/GeneratorPrototype/throw/from-state-executing.js
+++ b/test/built-ins/GeneratorPrototype/throw/from-state-executing.js
@@ -33,6 +33,7 @@ info: |
   3. Assert: generator also has a [[GeneratorContext]] internal slot.
   4. Let state be generator.[[GeneratorState]].
   5. If state is "executing", throw a TypeError exception.
+features: [generators]
 ---*/
 
 var iter, result;
diff --git a/test/built-ins/GeneratorPrototype/throw/from-state-suspended-start.js b/test/built-ins/GeneratorPrototype/throw/from-state-suspended-start.js
index 336b3b7031..53d44904e5 100644
--- a/test/built-ins/GeneratorPrototype/throw/from-state-suspended-start.js
+++ b/test/built-ins/GeneratorPrototype/throw/from-state-suspended-start.js
@@ -6,6 +6,7 @@ description: >
     Resuming abruptly from a generator in the 'suspendedStart' state should
     honor the abrupt completion and trigger a transition into the 'completed'
     state.
+features: [generators]
 ---*/
 
 function E() {}
diff --git a/test/built-ins/GeneratorPrototype/throw/length.js b/test/built-ins/GeneratorPrototype/throw/length.js
index ecd05a4581..671950caa5 100644
--- a/test/built-ins/GeneratorPrototype/throw/length.js
+++ b/test/built-ins/GeneratorPrototype/throw/length.js
@@ -20,6 +20,7 @@ info: >
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/throw/name.js b/test/built-ins/GeneratorPrototype/throw/name.js
index f005b26d21..e1614593fe 100644
--- a/test/built-ins/GeneratorPrototype/throw/name.js
+++ b/test/built-ins/GeneratorPrototype/throw/name.js
@@ -17,6 +17,7 @@ info: >
     object, if it exists, has the attributes { [[Writable]]: false,
     [[Enumerable]]: false, [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/throw/property-descriptor.js b/test/built-ins/GeneratorPrototype/throw/property-descriptor.js
index b9589e1194..3131e36a6e 100644
--- a/test/built-ins/GeneratorPrototype/throw/property-descriptor.js
+++ b/test/built-ins/GeneratorPrototype/throw/property-descriptor.js
@@ -7,6 +7,7 @@ description: >
     non-enumerable, writable, and configurable (as per section 17).
 includes: [propertyHelper.js]
 es6id: 25.3.1
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/throw/this-val-not-generator.js b/test/built-ins/GeneratorPrototype/throw/this-val-not-generator.js
index cfdf1deb4b..8667ad8979 100644
--- a/test/built-ins/GeneratorPrototype/throw/this-val-not-generator.js
+++ b/test/built-ins/GeneratorPrototype/throw/this-val-not-generator.js
@@ -19,6 +19,7 @@ info: |
   [...]
   2. If generator does not have a [[GeneratorState]] internal slot, throw a
      TypeError exception.
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/throw/this-val-not-object.js b/test/built-ins/GeneratorPrototype/throw/this-val-not-object.js
index 945798405c..8b4d342be2 100644
--- a/test/built-ins/GeneratorPrototype/throw/this-val-not-object.js
+++ b/test/built-ins/GeneratorPrototype/throw/this-val-not-object.js
@@ -17,7 +17,7 @@ info: |
   25.3.3.2 GeneratorValidate
 
   1. If Type(generator) is not Object, throw a TypeError exception.
-features: [Symbol]
+features: [generators, Symbol]
 ---*/
 
 function* g() {}
diff --git a/test/built-ins/GeneratorPrototype/throw/try-catch-before-try.js b/test/built-ins/GeneratorPrototype/throw/try-catch-before-try.js
index 968cd39b1a..bfd3086c7a 100644
--- a/test/built-ins/GeneratorPrototype/throw/try-catch-before-try.js
+++ b/test/built-ins/GeneratorPrototype/throw/try-catch-before-try.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused before a `try..catch` statement, `throw` should
     interrupt control flow as if a `throw` statement had appeared at that
     location in the function body.
+features: [generators]
 ---*/
 
 var unreachable = 0;
diff --git a/test/built-ins/GeneratorPrototype/throw/try-catch-following-catch.js b/test/built-ins/GeneratorPrototype/throw/try-catch-following-catch.js
index c358765e4e..1e69125421 100644
--- a/test/built-ins/GeneratorPrototype/throw/try-catch-following-catch.js
+++ b/test/built-ins/GeneratorPrototype/throw/try-catch-following-catch.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused after a `try..catch` statement, `throw` should
     interrupt control flow as if a `throw` statement had appeared at that
     location in the function body.
+features: [generators]
 ---*/
 
 var obj = {};
diff --git a/test/built-ins/GeneratorPrototype/throw/try-catch-within-catch.js b/test/built-ins/GeneratorPrototype/throw/try-catch-within-catch.js
index a5329ad427..176b4cc412 100644
--- a/test/built-ins/GeneratorPrototype/throw/try-catch-within-catch.js
+++ b/test/built-ins/GeneratorPrototype/throw/try-catch-within-catch.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused within the `catch` block of a `try..catch`
     statement, `throw` should interrupt control flow as if a `throw` statement
     had appeared at that location in the function body.
+features: [generators]
 ---*/
 
 var unreachable = 0;
diff --git a/test/built-ins/GeneratorPrototype/throw/try-catch-within-try.js b/test/built-ins/GeneratorPrototype/throw/try-catch-within-try.js
index 56920f9949..af352ae29b 100644
--- a/test/built-ins/GeneratorPrototype/throw/try-catch-within-try.js
+++ b/test/built-ins/GeneratorPrototype/throw/try-catch-within-try.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused within the `try` block of a `try..catch`
     statement, `throw` should interrupt control flow as if a `throw` statement
     had appeared at that location in the function body.
+features: [generators]
 ---*/
 
 var unreachable = 0;
diff --git a/test/built-ins/GeneratorPrototype/throw/try-finally-before-try.js b/test/built-ins/GeneratorPrototype/throw/try-finally-before-try.js
index f0859a5769..4ecd883b9b 100644
--- a/test/built-ins/GeneratorPrototype/throw/try-finally-before-try.js
+++ b/test/built-ins/GeneratorPrototype/throw/try-finally-before-try.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused before a `try..finally` statement, `throw`
     should interrupt control flow as if a `throw` statement had appeared at
     that location in the function body.
+features: [generators]
 ---*/
 
 var unreachable = 0;
diff --git a/test/built-ins/GeneratorPrototype/throw/try-finally-following-finally.js b/test/built-ins/GeneratorPrototype/throw/try-finally-following-finally.js
index d4b894ec04..fdc9fa55d2 100644
--- a/test/built-ins/GeneratorPrototype/throw/try-finally-following-finally.js
+++ b/test/built-ins/GeneratorPrototype/throw/try-finally-following-finally.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused after a `try..finally` statement, `throw` should
     interrupt control flow as if a `throw` statement had appeared at that
     location in the function body.
+features: [generators]
 ---*/
 
 var unreachable = 0;
diff --git a/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-catch.js b/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-catch.js
index edbb9d2ee6..c69d12f424 100644
--- a/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-catch.js
+++ b/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-catch.js
@@ -7,6 +7,7 @@ description: >
     `try` block of a `try..catch` statement, `throw` should interrupt control
     flow as if a `throw` statement had appeared at that location in the
     function body.
+features: [generators]
 ---*/
 
 var unreachable = 0;
diff --git a/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-finally.js b/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-finally.js
index 7042aab620..8c5392ea7a 100644
--- a/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-finally.js
+++ b/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-finally.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused within a `finally` block of a `try..catch`
     statement, `throw` should interrupt control flow as if a `throw` statement
     had appeared at that location in the function body.
+features: [generators]
 ---*/
 
 var unreachable = 0;
diff --git a/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-inner-try.js b/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-inner-try.js
index 13ea93f04b..6b0ae2647a 100644
--- a/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-inner-try.js
+++ b/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-inner-try.js
@@ -7,6 +7,7 @@ description: >
     `try` block of a `try..catch` statement, `throw` should interrupt control
     flow as if a `throw` statement had appeared at that location in the
     function body.
+features: [generators]
 ---*/
 
 var unreachable = 0;
diff --git a/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-outer-try-after-nested.js b/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-outer-try-after-nested.js
index 0f0145696d..93c9cbad5e 100644
--- a/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-outer-try-after-nested.js
+++ b/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-outer-try-after-nested.js
@@ -7,6 +7,7 @@ description: >
     and following a nested `try..catch` statment, `throw` should interrupt
     control flow as if a `throw` statement had appeared at that location in the
     function body.
+features: [generators]
 ---*/
 
 var unreachable = 0;
diff --git a/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-outer-try-before-nested.js b/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-outer-try-before-nested.js
index 70a1caa642..942234e3cc 100644
--- a/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-outer-try-before-nested.js
+++ b/test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-outer-try-before-nested.js
@@ -7,6 +7,7 @@ description: >
     and before a nested `try..catch` statement, `throw` should interrupt
     control flow as if a `throw` statement had appeared at that location in the
     function body.
+features: [generators]
 ---*/
 
 var unreachable = 0;
diff --git a/test/built-ins/GeneratorPrototype/throw/try-finally-within-finally.js b/test/built-ins/GeneratorPrototype/throw/try-finally-within-finally.js
index 47660bfbb4..8a83967c56 100644
--- a/test/built-ins/GeneratorPrototype/throw/try-finally-within-finally.js
+++ b/test/built-ins/GeneratorPrototype/throw/try-finally-within-finally.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused within the `finally` block of a `try..finally`
     statement, `throw` should interrupt control flow as if a `throw` statement
     had appeared at that location in the function body.
+features: [generators]
 ---*/
 
 var unreachable = 0;
diff --git a/test/built-ins/GeneratorPrototype/throw/try-finally-within-try.js b/test/built-ins/GeneratorPrototype/throw/try-finally-within-try.js
index 0fb8336139..19764d8b7b 100644
--- a/test/built-ins/GeneratorPrototype/throw/try-finally-within-try.js
+++ b/test/built-ins/GeneratorPrototype/throw/try-finally-within-try.js
@@ -6,6 +6,7 @@ description: >
     When a generator is paused within a `try` block of a `try..finally`
     statement, `throw` should interrupt control flow as if a `throw` statement
     had appeared at that location in the function body.
+features: [generators]
 ---*/
 
 var unreachable = 0;
diff --git a/test/language/arguments-object/gen-func-decl-args-trailing-comma-multiple.js b/test/language/arguments-object/gen-func-decl-args-trailing-comma-multiple.js
index f3179cd0ec..b73ad96bf1 100644
--- a/test/language/arguments-object/gen-func-decl-args-trailing-comma-multiple.js
+++ b/test/language/arguments-object/gen-func-decl-args-trailing-comma-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the arguments.length, using multiple args (generator function declaration)
 esid: sec-arguments-exotic-objects
+features: [generators]
 flags: [generated]
 info: |
     9.4.4 Arguments Exotic Objects
@@ -12,6 +13,7 @@ info: |
     characteristics of the function definition, its arguments object is either an ordinary object
     or an arguments exotic object.
 
+
     Trailing comma in the arguments list
 
     12.3 Left-Hand-Side Expressions
diff --git a/test/language/arguments-object/gen-func-decl-args-trailing-comma-null.js b/test/language/arguments-object/gen-func-decl-args-trailing-comma-null.js
index 443700eaee..c252c630fa 100644
--- a/test/language/arguments-object/gen-func-decl-args-trailing-comma-null.js
+++ b/test/language/arguments-object/gen-func-decl-args-trailing-comma-null.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma after null should not increase the arguments.length (generator function declaration)
 esid: sec-arguments-exotic-objects
+features: [generators]
 flags: [generated]
 info: |
     9.4.4 Arguments Exotic Objects
@@ -12,6 +13,7 @@ info: |
     characteristics of the function definition, its arguments object is either an ordinary object
     or an arguments exotic object.
 
+
     Trailing comma in the arguments list
 
     12.3 Left-Hand-Side Expressions
diff --git a/test/language/arguments-object/gen-func-decl-args-trailing-comma-single-args.js b/test/language/arguments-object/gen-func-decl-args-trailing-comma-single-args.js
index d7c2446816..7f328db1d6 100644
--- a/test/language/arguments-object/gen-func-decl-args-trailing-comma-single-args.js
+++ b/test/language/arguments-object/gen-func-decl-args-trailing-comma-single-args.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the arguments.length, using a single arg (generator function declaration)
 esid: sec-arguments-exotic-objects
+features: [generators]
 flags: [generated]
 info: |
     9.4.4 Arguments Exotic Objects
@@ -12,6 +13,7 @@ info: |
     characteristics of the function definition, its arguments object is either an ordinary object
     or an arguments exotic object.
 
+
     Trailing comma in the arguments list
 
     12.3 Left-Hand-Side Expressions
diff --git a/test/language/arguments-object/gen-func-decl-args-trailing-comma-undefined.js b/test/language/arguments-object/gen-func-decl-args-trailing-comma-undefined.js
index 56f4d99359..61582fcbec 100644
--- a/test/language/arguments-object/gen-func-decl-args-trailing-comma-undefined.js
+++ b/test/language/arguments-object/gen-func-decl-args-trailing-comma-undefined.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma after undefined should not increase the arguments.length (generator function declaration)
 esid: sec-arguments-exotic-objects
+features: [generators]
 flags: [generated]
 info: |
     9.4.4 Arguments Exotic Objects
@@ -12,6 +13,7 @@ info: |
     characteristics of the function definition, its arguments object is either an ordinary object
     or an arguments exotic object.
 
+
     Trailing comma in the arguments list
 
     12.3 Left-Hand-Side Expressions
diff --git a/test/language/arguments-object/gen-func-expr-args-trailing-comma-multiple.js b/test/language/arguments-object/gen-func-expr-args-trailing-comma-multiple.js
index 18fd3e114e..c232b3da19 100644
--- a/test/language/arguments-object/gen-func-expr-args-trailing-comma-multiple.js
+++ b/test/language/arguments-object/gen-func-expr-args-trailing-comma-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the arguments.length, using multiple args (generator function expression)
 esid: sec-arguments-exotic-objects
+features: [generators]
 flags: [generated]
 info: |
     9.4.4 Arguments Exotic Objects
@@ -12,6 +13,7 @@ info: |
     characteristics of the function definition, its arguments object is either an ordinary object
     or an arguments exotic object.
 
+
     Trailing comma in the arguments list
 
     12.3 Left-Hand-Side Expressions
diff --git a/test/language/arguments-object/gen-func-expr-args-trailing-comma-null.js b/test/language/arguments-object/gen-func-expr-args-trailing-comma-null.js
index ff31fd5455..6b2e6fa82e 100644
--- a/test/language/arguments-object/gen-func-expr-args-trailing-comma-null.js
+++ b/test/language/arguments-object/gen-func-expr-args-trailing-comma-null.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma after null should not increase the arguments.length (generator function expression)
 esid: sec-arguments-exotic-objects
+features: [generators]
 flags: [generated]
 info: |
     9.4.4 Arguments Exotic Objects
@@ -12,6 +13,7 @@ info: |
     characteristics of the function definition, its arguments object is either an ordinary object
     or an arguments exotic object.
 
+
     Trailing comma in the arguments list
 
     12.3 Left-Hand-Side Expressions
diff --git a/test/language/arguments-object/gen-func-expr-args-trailing-comma-single-args.js b/test/language/arguments-object/gen-func-expr-args-trailing-comma-single-args.js
index 0056f61443..716b6adcce 100644
--- a/test/language/arguments-object/gen-func-expr-args-trailing-comma-single-args.js
+++ b/test/language/arguments-object/gen-func-expr-args-trailing-comma-single-args.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the arguments.length, using a single arg (generator function expression)
 esid: sec-arguments-exotic-objects
+features: [generators]
 flags: [generated]
 info: |
     9.4.4 Arguments Exotic Objects
@@ -12,6 +13,7 @@ info: |
     characteristics of the function definition, its arguments object is either an ordinary object
     or an arguments exotic object.
 
+
     Trailing comma in the arguments list
 
     12.3 Left-Hand-Side Expressions
diff --git a/test/language/arguments-object/gen-func-expr-args-trailing-comma-undefined.js b/test/language/arguments-object/gen-func-expr-args-trailing-comma-undefined.js
index acbcdab2df..05bb70f7a7 100644
--- a/test/language/arguments-object/gen-func-expr-args-trailing-comma-undefined.js
+++ b/test/language/arguments-object/gen-func-expr-args-trailing-comma-undefined.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma after undefined should not increase the arguments.length (generator function expression)
 esid: sec-arguments-exotic-objects
+features: [generators]
 flags: [generated]
 info: |
     9.4.4 Arguments Exotic Objects
@@ -12,6 +13,7 @@ info: |
     characteristics of the function definition, its arguments object is either an ordinary object
     or an arguments exotic object.
 
+
     Trailing comma in the arguments list
 
     12.3 Left-Hand-Side Expressions
diff --git a/test/language/block-scope/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-generator-declaration.js b/test/language/block-scope/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-generator-declaration.js
index b0996b6597..5b7c309b0b 100644
--- a/test/language/block-scope/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-generator-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-generator-declaration.js
@@ -4,7 +4,7 @@
 /*---
 description: redeclaration with GeneratorDeclaration (AsyncFunctionDeclaration in BlockStatement)
 esid: sec-block-static-semantics-early-errors
-features: [async-functions]
+features: [generators, async-functions]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/block-scope/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-generator-declaration.js b/test/language/block-scope/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-generator-declaration.js
index 641c979dd6..a224797f79 100644
--- a/test/language/block-scope/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-generator-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-generator-declaration.js
@@ -4,7 +4,7 @@
 /*---
 description: redeclaration with GeneratorDeclaration (AsyncGeneratorDeclaration in BlockStatement)
 esid: sec-block-static-semantics-early-errors
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-generator-declaration.js b/test/language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-generator-declaration.js
index 03bf2621f1..a60879e350 100644
--- a/test/language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-generator-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-generator-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with GeneratorDeclaration (ClassDeclaration in BlockStatement)
 esid: sec-block-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/block-scope/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-generator-declaration.js b/test/language/block-scope/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-generator-declaration.js
index d2b89e868d..afe3b82f96 100644
--- a/test/language/block-scope/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-generator-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-generator-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with GeneratorDeclaration (LexicalDeclaration (const) in BlockStatement)
 esid: sec-block-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-generator-declaration.js b/test/language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-generator-declaration.js
index ea7dd7db25..2015c403e0 100644
--- a/test/language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-generator-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-generator-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with GeneratorDeclaration (FunctionDeclaration in BlockStatement)
 esid: sec-block-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-function-declaration.js b/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-function-declaration.js
index c4bfe0a67c..b4de9efcfc 100644
--- a/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-function-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-function-declaration.js
@@ -4,7 +4,7 @@
 /*---
 description: redeclaration with AsyncFunctionDeclaration (GeneratorDeclaration in BlockStatement)
 esid: sec-block-static-semantics-early-errors
-features: [async-functions]
+features: [async-functions, generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js b/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js
index bd6d897a9e..d76b43b79b 100644
--- a/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js
@@ -4,7 +4,7 @@
 /*---
 description: redeclaration with AsyncGeneratorDeclaration (GeneratorDeclaration in BlockStatement)
 esid: sec-block-static-semantics-early-errors
-features: [async-iteration]
+features: [async-iteration, generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-class-declaration.js b/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-class-declaration.js
index a90b183371..15d6d741cf 100644
--- a/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-class-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-class-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with ClassDeclaration (GeneratorDeclaration in BlockStatement)
 esid: sec-block-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-const-declaration.js b/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-const-declaration.js
index 397fb21c86..66d7b5df53 100644
--- a/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-const-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-const-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with const-LexicalDeclaration (GeneratorDeclaration in BlockStatement)
 esid: sec-block-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-function-declaration.js b/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-function-declaration.js
index 19267c9af4..2de1274413 100644
--- a/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-function-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-function-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with FunctionDeclaration (GeneratorDeclaration in BlockStatement)
 esid: sec-block-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-generator-declaration.js b/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-generator-declaration.js
index 927a7ac795..ed93f4afb7 100644
--- a/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-generator-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-generator-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with GeneratorDeclaration (GeneratorDeclaration in BlockStatement)
 esid: sec-block-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-let-declaration.js b/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-let-declaration.js
index 15b6932097..f2ddac60a6 100644
--- a/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-let-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-let-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with let-LexicalDeclaration (GeneratorDeclaration in BlockStatement)
 esid: sec-block-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-var-declaration.js b/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-var-declaration.js
index a7bb59df61..c82de7a36e 100644
--- a/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-var-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-var-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with VariableDeclaration (GeneratorDeclaration in BlockStatement)
 esid: sec-block-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/block-scope/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-generator-declaration.js b/test/language/block-scope/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-generator-declaration.js
index 47288dc9d1..80be17fd9e 100644
--- a/test/language/block-scope/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-generator-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-generator-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with GeneratorDeclaration (LexicalDeclaration (let) in BlockStatement)
 esid: sec-block-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/block-scope/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-generator-declaration.js b/test/language/block-scope/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-generator-declaration.js
index 9f2c2dc292..15936925db 100644
--- a/test/language/block-scope/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-generator-declaration.js
+++ b/test/language/block-scope/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-generator-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with GeneratorDeclaration (VariableDeclaration in BlockStatement)
 esid: sec-block-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/array/spread-err-mult-err-expr-throws.js b/test/language/expressions/array/spread-err-mult-err-expr-throws.js
index f9bba177f1..ecb7703a80 100644
--- a/test/language/expressions/array/spread-err-mult-err-expr-throws.js
+++ b/test/language/expressions/array/spread-err-mult-err-expr-throws.js
@@ -5,6 +5,7 @@
 description: Spread operator following other arguments when evaluation throws (Array initializer)
 esid: sec-runtime-semantics-arrayaccumulation
 es6id: 12.2.5.2
+features: [generators]
 flags: [generated]
 info: |
     SpreadElement : ...AssignmentExpression
@@ -29,6 +30,7 @@ info: |
     2. Let spreadRef be the result of evaluating AssignmentExpression.
     3. Let iterator be GetIterator(GetValue(spreadRef) ).
     4. ReturnIfAbrupt(iterator).
+
 ---*/
 
 assert.throws(Test262Error, function() {
diff --git a/test/language/expressions/arrow-function/dstr-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/arrow-function/dstr-ary-ptrn-elem-ary-empty-init.js
index e6eeb2c058..80130d7622 100644
--- a/test/language/expressions/arrow-function/dstr-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/arrow-function/dstr-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (arrow function expression)
 esid: sec-arrow-function-definitions-runtime-semantics-evaluation
 es6id: 14.2.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ArrowFunction : ArrowParameters => ConciseBody
@@ -48,6 +48,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/arrow-function/dstr-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/arrow-function/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
index 2fcfac3b30..14ea9d5bce 100644
--- a/test/language/expressions/arrow-function/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/arrow-function/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (arrow function expression)
 esid: sec-arrow-function-definitions-runtime-semantics-evaluation
 es6id: 14.2.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ArrowFunction : ArrowParameters => ConciseBody
@@ -50,6 +50,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
index 5f8c73b1bc..63a1eaf728 100644
--- a/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (arrow function expression (default parameter))
 esid: sec-arrow-function-definitions-runtime-semantics-evaluation
 es6id: 14.2.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ArrowFunction : ArrowParameters => ConciseBody
@@ -48,6 +48,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index e346d06fd2..6ba97d35c7 100644
--- a/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/arrow-function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (arrow function expression (default parameter))
 esid: sec-arrow-function-definitions-runtime-semantics-evaluation
 es6id: 14.2.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ArrowFunction : ArrowParameters => ConciseBody
@@ -50,6 +50,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
index 26210d7445..af6750ff57 100644
--- a/test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/arrow-function/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (arrow function expression (default parameter))
 esid: sec-arrow-function-definitions-runtime-semantics-evaluation
 es6id: 14.2.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ArrowFunction : ArrowParameters => ConciseBody
@@ -49,6 +49,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/arrow-function/dstr-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/arrow-function/dstr-obj-ptrn-id-init-fn-name-gen.js
index bc3388608d..71edc8261c 100644
--- a/test/language/expressions/arrow-function/dstr-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/arrow-function/dstr-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (arrow function expression)
 esid: sec-arrow-function-definitions-runtime-semantics-evaluation
 es6id: 14.2.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ArrowFunction : ArrowParameters => ConciseBody
@@ -49,6 +49,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/async-generator/dstr-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/async-generator/dstr-ary-ptrn-elem-ary-empty-init.js
index e467b90ae5..28af738143 100644
--- a/test/language/expressions/async-generator/dstr-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/async-generator/dstr-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (async generator function expression)
 esid: sec-asyncgenerator-definitions-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
@@ -27,6 +27,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/async-generator/dstr-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/async-generator/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
index 944929879a..b8ffa8aef8 100644
--- a/test/language/expressions/async-generator/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/async-generator/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (async generator function expression)
 esid: sec-asyncgenerator-definitions-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
@@ -29,6 +29,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 
diff --git a/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
index fc559bcfc1..ab3667b5e5 100644
--- a/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (async generator function expression (default parameter))
 esid: sec-asyncgenerator-definitions-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
@@ -27,6 +27,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index 8a96e50a77..de253c72ab 100644
--- a/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/async-generator/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (async generator function expression (default parameter))
 esid: sec-asyncgenerator-definitions-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
@@ -29,6 +29,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 
diff --git a/test/language/expressions/async-generator/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/async-generator/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
index efc10e9170..f1d5557478 100644
--- a/test/language/expressions/async-generator/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/async-generator/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (async generator function expression (default parameter))
 esid: sec-asyncgenerator-definitions-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
@@ -28,6 +28,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 
diff --git a/test/language/expressions/async-generator/dstr-named-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/async-generator/dstr-named-ary-ptrn-elem-ary-empty-init.js
index 3c715630a8..bd89a64f8c 100644
--- a/test/language/expressions/async-generator/dstr-named-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/async-generator/dstr-named-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (async generator named function expression)
 esid: sec-asyncgenerator-definitions-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
@@ -27,6 +27,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/async-generator/dstr-named-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/async-generator/dstr-named-ary-ptrn-elem-id-init-fn-name-gen.js
index cc0de8c74c..4be21b1c71 100644
--- a/test/language/expressions/async-generator/dstr-named-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/async-generator/dstr-named-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (async generator named function expression)
 esid: sec-asyncgenerator-definitions-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
@@ -29,6 +29,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 
diff --git a/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elem-ary-empty-init.js
index d6b47eb52c..edd50dc8d8 100644
--- a/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (async generator named function expression (default parameter))
 esid: sec-asyncgenerator-definitions-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
@@ -27,6 +27,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index 10d339c104..e69e4932bd 100644
--- a/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (async generator named function expression (default parameter))
 esid: sec-asyncgenerator-definitions-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
@@ -29,6 +29,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 
diff --git a/test/language/expressions/async-generator/dstr-named-dflt-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/async-generator/dstr-named-dflt-obj-ptrn-id-init-fn-name-gen.js
index e819414825..03e348318f 100644
--- a/test/language/expressions/async-generator/dstr-named-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/async-generator/dstr-named-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (async generator named function expression (default parameter))
 esid: sec-asyncgenerator-definitions-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
@@ -28,6 +28,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 
diff --git a/test/language/expressions/async-generator/dstr-named-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/async-generator/dstr-named-obj-ptrn-id-init-fn-name-gen.js
index 98cf6d3337..cbfde3821d 100644
--- a/test/language/expressions/async-generator/dstr-named-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/async-generator/dstr-named-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (async generator named function expression)
 esid: sec-asyncgenerator-definitions-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier
@@ -28,6 +28,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 
diff --git a/test/language/expressions/async-generator/dstr-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/async-generator/dstr-obj-ptrn-id-init-fn-name-gen.js
index a822663727..1ec5b7184a 100644
--- a/test/language/expressions/async-generator/dstr-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/async-generator/dstr-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (async generator function expression)
 esid: sec-asyncgenerator-definitions-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) {
@@ -28,6 +28,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 
diff --git a/test/language/expressions/call/spread-err-mult-err-expr-throws.js b/test/language/expressions/call/spread-err-mult-err-expr-throws.js
index 4fe00e209b..f618ab7daf 100644
--- a/test/language/expressions/call/spread-err-mult-err-expr-throws.js
+++ b/test/language/expressions/call/spread-err-mult-err-expr-throws.js
@@ -5,6 +5,7 @@
 description: Spread operator following other arguments when evaluation throws (CallExpression)
 esid: sec-function-calls-runtime-semantics-evaluation
 es6id: 12.3.4.1
+features: [generators]
 flags: [generated]
 info: |
     CallExpression : MemberExpression Arguments
@@ -27,6 +28,7 @@ info: |
     2. Let spreadRef be the result of evaluating AssignmentExpression.
     3. Let iterator be GetIterator(GetValue(spreadRef) ).
     4. ReturnIfAbrupt(iterator).
+
 ---*/
 
 assert.throws(Test262Error, function() {
diff --git a/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elem-ary-empty-init.js
index 955c21cf0f..25b5130b60 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -51,6 +51,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
index 35443cf796..7625fe99f6 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -53,6 +53,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 
diff --git a/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
index 8163e94d18..7efa4fea4f 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (class expression async generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -51,6 +51,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index 357704c8f1..9e18a1f05a 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression async generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -53,6 +53,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 
diff --git a/test/language/expressions/class/dstr-async-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-async-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
index 8115fca5bd..4ea199184e 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression async generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -52,6 +52,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 
diff --git a/test/language/expressions/class/dstr-async-gen-meth-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-async-gen-meth-obj-ptrn-id-init-fn-name-gen.js
index 11da07c1b8..a2784daf9f 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -52,6 +52,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 
diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elem-ary-empty-init.js
index 9b3422c652..afc1aa71e6 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (static class expression async generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -51,6 +51,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
index a984f8f96f..7e324e8ddd 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression async generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -53,6 +53,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 
diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
index b7cd352146..54367939ef 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (static class expression async generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -51,6 +51,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index ba0cda4786..88f4759f1a 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression async generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -53,6 +53,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 
diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
index 21ca8bf461..63c465489f 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression async generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -52,6 +52,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 
diff --git a/test/language/expressions/class/dstr-async-gen-meth-static-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-async-gen-meth-static-obj-ptrn-id-init-fn-name-gen.js
index f84d6e3c1b..d64d7f441c 100644
--- a/test/language/expressions/class/dstr-async-gen-meth-static-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-async-gen-meth-static-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression async generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -52,6 +52,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-init-iter-close.js b/test/language/expressions/class/dstr-gen-meth-ary-init-iter-close.js
index 9a7cc00e4a..48abaad984 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-init-iter-close.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-init-iter-close.js
@@ -5,7 +5,7 @@
 description: Iterator is closed when not exhausted by pattern evaluation (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-init-iter-get-err.js b/test/language/expressions/class/dstr-gen-meth-ary-init-iter-get-err.js
index a95f55b8d0..e35c5c1a2c 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-init-iter-get-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-init-iter-get-err.js
@@ -5,7 +5,7 @@
 description: Abrupt completion returned by GetIterator (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-init-iter-no-close.js b/test/language/expressions/class/dstr-gen-meth-ary-init-iter-no-close.js
index 4f061d966f..377f7a9da6 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-init-iter-no-close.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-init-iter-no-close.js
@@ -5,7 +5,7 @@
 description: Iterator is not closed when exhausted by pattern evaluation (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-name-iter-val.js b/test/language/expressions/class/dstr-gen-meth-ary-name-iter-val.js
index 8a106acc39..46a43ff94f 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-name-iter-val.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-name-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding with normal value iteration (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-elem-init.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-elem-init.js
index cb4e740544..b8e6f35970 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-elem-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-elem-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-elem-iter.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-elem-iter.js
index 9f6c50afb9..f2fcfad3bd 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-elem-iter.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-elem-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-empty-init.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-empty-init.js
index 7e7ddd4b3c..b2a727fb7f 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -72,6 +72,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-empty-iter.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-empty-iter.js
index 97912c789a..d79794c7f8 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-empty-iter.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-empty-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-rest-init.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-rest-init.js
index 5367bdd09f..27bcedbf3c 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-rest-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-rest-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-rest-iter.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-rest-iter.js
index e6191a6ee3..0f4f15cbfd 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-rest-iter.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-rest-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-val-null.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-val-null.js
index b7f022e01f..7fbbd94f17 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-val-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-ary-val-null.js
@@ -5,7 +5,7 @@
 description: Nested array destructuring with a null value (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-exhausted.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-exhausted.js
index 35d7ad5e37..4f6436461f 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-exhausted.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-exhausted.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an exhausted iterator (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-arrow.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-arrow.js
index c37dc2414a..06ba5aed91 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-arrow.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to arrow functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-class.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-class.js
index 500e3c7963..1ad8c2f2d3 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-class.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-cover.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-cover.js
index 3d7a39f0cd..1ba776dfc2 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-cover.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-fn.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-fn.js
index 67e0554ec5..c56015b599 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-fn.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
index 9e58e34667..1c150e9745 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -74,6 +74,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-hole.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-hole.js
index 36dc3522fc..c686e6b957 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-hole.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-hole.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with a "hole" (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-skipped.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-skipped.js
index 4db99b3d04..8d3ff4e5ed 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-skipped.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-throws.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-throws.js
index 5cb5a957cf..10aa622238 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-throws.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer returns an abrupt completion (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-undef.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-undef.js
index 3a45d0ab62..5309669776 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-undef.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-undef.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an undefined value (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-unresolvable.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-unresolvable.js
index ede1ab093b..89b448ff85 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-unresolvable.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-complete.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-iter-complete.js
index 8be02ddef1..8f63e12298 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-iter-complete.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-iter-complete.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration completes (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-done.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-iter-done.js
index aa7dc6e661..0e88f0ded7 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-iter-done.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-iter-done.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-step-err.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-iter-step-err.js
index c15f28659f..c043a18414 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-iter-step-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-iter-step-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorStep returns an abrupt completion (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val-err.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val-err.js
index 5a614d8cbb..04445b16eb 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val.js
index d23930ab0d..9745a6809c 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-id-init.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-id-init.js
index cad8bebd47..525ebb3892 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-id-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-id.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-id.js
index bd5bee2db8..fd078cf8ca 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-prop-id-init.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-prop-id-init.js
index fcd3e57de4..a7c095a687 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-prop-id-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-prop-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-prop-id.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-prop-id.js
index 58041f7408..d59c21bde8 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-prop-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-val-null.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-val-null.js
index 0e7e3b3947..73f3590813 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-val-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-val-null.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a null value (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-val-undef.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-val-undef.js
index 3b3c0f9e48..994a28556b 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-val-undef.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-elem-obj-val-undef.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a value of `undefined` (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-ary-elem.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-ary-elem.js
index b7a2544819..241d162a1c 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-ary-elem.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-ary-elem.js
@@ -5,7 +5,7 @@
 description: Rest element containing an array BindingElementList pattern (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-ary-rest.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-ary-rest.js
index 431371077c..ced07c686c 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-ary-rest.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-ary-rest.js
@@ -5,7 +5,7 @@
 description: Rest element containing a rest element (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-id-elision.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-id-elision.js
index 3fdce775d0..40e7ffd324 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-id-elision.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-id-elision.js
@@ -5,7 +5,7 @@
 description: Rest element following elision elements (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-id-exhausted.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-id-exhausted.js
index feadaf9998..f9287bad1a 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-id-exhausted.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-id-exhausted.js
@@ -5,7 +5,7 @@
 description: RestElement applied to an exhausted iterator (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-id-iter-val-err.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-id-iter-val-err.js
index 6762590a44..5119dfb20e 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-id-iter-val-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-id.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-id.js
index 618c9610f6..018ae1e99a 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-id.js
@@ -5,7 +5,7 @@
 description: Lone rest element (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-init-ary.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-ary.js
index 40f0e8ddc0..4d8cda5821 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-ary.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-ary.js
@@ -5,7 +5,7 @@
 description: Reset element (nested array pattern) does not support initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-id.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-id.js
index 69077ef19b..767377b006 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-id.js
@@ -5,7 +5,7 @@
 description: Reset element (identifier) does not support initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-obj.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-obj.js
index 90a4426131..e075e4cc5a 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-obj.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-obj.js
@@ -5,7 +5,7 @@
 description: Reset element (nested object pattern) does not support initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js
index 3cc413ac34..5706b6c736 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js
@@ -5,7 +5,7 @@
 description: Rest element (array binding pattern) may not be followed by any element (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-id.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-id.js
index 1f310c357b..16bf332082 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-id.js
@@ -5,7 +5,7 @@
 description: Rest element (identifier) may not be followed by any element (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js
index 3c63abaa60..4b71dacbc5 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js
@@ -5,7 +5,7 @@
 description: Rest element (object binding pattern) may not be followed by any element (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-obj-id.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-obj-id.js
index bd3efcd07b..3d3168849a 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-obj-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-obj-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-obj-prop-id.js b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js
index 29f38328e7..fdc789b901 100644
--- a/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-init-iter-close.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-init-iter-close.js
index 5ec3fbf266..1d8f330d5d 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-init-iter-close.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-init-iter-close.js
@@ -5,7 +5,7 @@
 description: Iterator is closed when not exhausted by pattern evaluation (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-ary-init-iter-get-err.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-init-iter-get-err.js
index e10e935773..cb3928e744 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-init-iter-get-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-init-iter-get-err.js
@@ -5,7 +5,7 @@
 description: Abrupt completion returned by GetIterator (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-ary-init-iter-no-close.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-init-iter-no-close.js
index 5b8eb1dc9e..dac9ba8a6e 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-init-iter-no-close.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-init-iter-no-close.js
@@ -5,7 +5,7 @@
 description: Iterator is not closed when exhausted by pattern evaluation (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-ary-name-iter-val.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-name-iter-val.js
index 1d776ca4ee..4b2403db3b 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-name-iter-val.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-name-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding with normal value iteration (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-elem-init.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-init.js
index 70d1e1aa8a..f4b5eb4d45 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-elem-iter.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-iter.js
index 8c1b836d26..3973c4c930 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-iter.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-empty-init.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
index c9ab70830c..d793a0e633 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -72,6 +72,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-iter.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-iter.js
index b875facc4c..8deb21c983 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-iter.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-rest-init.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-init.js
index a83bcae854..3541ed6cb2 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-rest-iter.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-iter.js
index 618957ca5e..39b9378366 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-iter.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-val-null.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-val-null.js
index d5fd9e35a9..4561fbe2da 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-val-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-val-null.js
@@ -5,7 +5,7 @@
 description: Nested array destructuring with a null value (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-exhausted.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-exhausted.js
index 7b746fb3b0..7c716109ec 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-exhausted.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-exhausted.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an exhausted iterator (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-arrow.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
index be56485759..d91071bb24 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to arrow functions (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-class.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-class.js
index 838b019f20..67e26c4f20 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-class.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-cover.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
index 1fb2a704cb..f01eef3ab4 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-fn.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
index 89ac7ba12d..68da37d4d6 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index 5340f5067d..c139899b9b 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -74,6 +74,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-hole.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-hole.js
index ee357d99d1..e82eec663c 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-hole.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-hole.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with a "hole" (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-skipped.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-skipped.js
index c53995899a..5f24931c82 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-skipped.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-throws.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-throws.js
index 2a2cee1105..ce15e45217 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-throws.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer returns an abrupt completion (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-undef.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-undef.js
index f230d56376..e94b4452e8 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-undef.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-undef.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an undefined value (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-unresolvable.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-unresolvable.js
index 348d8bef41..eaa1def0e2 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-unresolvable.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-complete.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-complete.js
index fb47225655..eb46ab7b8a 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-complete.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-complete.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration completes (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-done.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-done.js
index b4cc4ff6fa..456b528a7c 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-done.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-done.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-step-err.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-step-err.js
index 789c22bc31..e0fbcdb7a9 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-step-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-step-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorStep returns an abrupt completion (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-elem-id-iter-val-err.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val-err.js
index 4d617dc5d8..5bcb2eaddb 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-elem-id-iter-val.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val.js
index e1d22ac8aa..b3d5554e70 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-id-init.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id-init.js
index 9bcdf7d3f1..cdc8126241 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-id.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id.js
index 95f4ab5280..6dc91622a9 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-prop-id-init.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id-init.js
index ac92abdb3f..d2f229a853 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-prop-id.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id.js
index b3ee8ae3cf..11df836174 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-val-null.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-null.js
index 694a464f73..0ff467a57c 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-null.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a null value (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-val-undef.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-undef.js
index 0030d16177..9e3a66936b 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-undef.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-undef.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a value of `undefined` (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-ary-elem.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js
index 04dce5bcdb..9c79b6505c 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js
@@ -5,7 +5,7 @@
 description: Rest element containing an array BindingElementList pattern (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-ary-rest.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js
index 46bff62018..f71572acad 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js
@@ -5,7 +5,7 @@
 description: Rest element containing a rest element (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-id-elision.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-elision.js
index 948f050d56..f078da578a 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-elision.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-elision.js
@@ -5,7 +5,7 @@
 description: Rest element following elision elements (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-id-exhausted.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-exhausted.js
index 44e6da0cb8..1ed506bc78 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-exhausted.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-exhausted.js
@@ -5,7 +5,7 @@
 description: RestElement applied to an exhausted iterator (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-rest-id-iter-val-err.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-iter-val-err.js
index 706d49fbb5..b78f510254 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-iter-val-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-rest-id.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-id.js
index 2518d14f7e..daec0fd0eb 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-id.js
@@ -5,7 +5,7 @@
 description: Lone rest element (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-init-ary.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js
index fa9acac46c..746e7c4d6d 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js
@@ -5,7 +5,7 @@
 description: Reset element (nested array pattern) does not support initializer (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js
index 2b5c3548ce..c8ea2bad30 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js
@@ -5,7 +5,7 @@
 description: Reset element (identifier) does not support initializer (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js
index 971979a9f3..d847e63617 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js
@@ -5,7 +5,7 @@
 description: Reset element (nested object pattern) does not support initializer (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js
index a34da83808..48d8d36c1e 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js
@@ -5,7 +5,7 @@
 description: Rest element (array binding pattern) may not be followed by any element (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js
index 9d41bc85db..de55990c74 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js
@@ -5,7 +5,7 @@
 description: Rest element (identifier) may not be followed by any element (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js
index ac632c6956..467ca23775 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js
@@ -5,7 +5,7 @@
 description: Rest element (object binding pattern) may not be followed by any element (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js
index 260d91c083..afc05d25dd 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-obj-prop-id.js b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js
index 06b8d0fcfe..5038715657 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-init-null.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-init-null.js
index 1aff6a1410..e114a2dffa 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-init-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-init-null.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (null) (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-init-undefined.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-init-undefined.js
index b69a7a96d1..8e4b1a10fc 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-init-undefined.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-init-undefined.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (undefined) (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-empty.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-empty.js
index 02e1770e81..6ce02bd2ce 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-empty.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-empty.js
@@ -5,7 +5,7 @@
 description: No property access occurs for an "empty" object binding pattern (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-get-value-err.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-get-value-err.js
index 5800d000b8..b0920511cf 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-get-value-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-fn-name-arrow.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-arrow.js
index 22cbe3b001..625cf2f8e0 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-arrow.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to arrow functions (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-fn-name-class.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-class.js
index 806d9930ae..d4f407998f 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-class.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-fn-name-cover.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-cover.js
index 86f7db7941..a563dfb2ea 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-cover.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-fn-name-fn.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-fn.js
index c0b5a7a7d2..2cbf6574da 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-fn.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
index eb1df5b800..4d3ef11c00 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -73,6 +73,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-skipped.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-skipped.js
index 5d45cdaabe..6a56668ec0 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-skipped.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-throws.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-throws.js
index 2aa4c95429..e4d7cbecf3 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-throws.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-unresolvable.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-unresolvable.js
index 567c0ecddb..b5588ca29a 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-unresolvable.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-trailing-comma.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-trailing-comma.js
index 1b22895006..d76beed5ea 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-trailing-comma.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-list-err.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-list-err.js
index beb528d28e..6465de940b 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-list-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-list-err.js
@@ -5,7 +5,7 @@
 description: Binding property list evaluation is interrupted by an abrupt completion (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-ary-init.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-init.js
index ca3ff9ba3c..39d0fe917e 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern using initializer (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-ary-trailing-comma.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-trailing-comma.js
index ab1a9ae881..82e1578d56 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-trailing-comma.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-ary-value-null.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-value-null.js
index c874bfd3bf..a00f6e3a46 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-value-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern taking the `null` value (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-ary.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary.js
index a3e2c0edc1..478206ed7b 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern not using initializer (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-eval-err.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-eval-err.js
index 4ee40778f8..2fc81fc17f 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-eval-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-eval-err.js
@@ -5,7 +5,7 @@
 description: Evaluation of property name returns an abrupt completion (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-get-value-err.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-get-value-err.js
index b06248f4f6..50543d2df2 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-get-value-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-init-skipped.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-skipped.js
index ebfa2c6aa0..908e4b9df8 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-skipped.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-init-throws.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-throws.js
index 76e5e738cc..f50aedad19 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-throws.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-init-unresolvable.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-unresolvable.js
index a93b613ec7..36c5d35eae 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-unresolvable.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-init.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init.js
index dc090c89ea..78b0489355 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name, identifier, and initializer (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-trailing-comma.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-trailing-comma.js
index a42a191280..68c3ee4102 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-trailing-comma.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id.js
index 6eabd4be86..bead9d625e 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-id.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name and identifier (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-obj-init.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-init.js
index 473f6185e3..52d1968805 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern using initializer (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-obj-value-null.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-null.js
index 7e480412ab..1267fe80e4 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-obj-value-undef.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-undef.js
index c53dcdd371..4fe2ac2d94 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-undef.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-undef.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-obj.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj.js
index 9872afb5d6..e0da68b3c0 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern not using initializer (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-rest-getter.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js
index 26506eab21..7a2ee7948a 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js
@@ -5,7 +5,7 @@
 description: Getter is called when obj is being deconstructed to a rest Object (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js
index 6734b5f3df..2562d04a82 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js
@@ -5,7 +5,7 @@
 description: Rest object doesn't contain non-enumerable properties (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js
index ec6b8dc167..c08be43a69 100644
--- a/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js
+++ b/test/language/expressions/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js
@@ -5,7 +5,7 @@
 description: Rest object contains just unextracted data (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-init-null.js b/test/language/expressions/class/dstr-gen-meth-obj-init-null.js
index a651fa3854..2a52c93de6 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-init-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-init-null.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (null) (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-init-undefined.js b/test/language/expressions/class/dstr-gen-meth-obj-init-undefined.js
index f1e742c1e4..095ce759d6 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-init-undefined.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-init-undefined.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (undefined) (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-empty.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-empty.js
index 7e7637db45..e80b850640 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-empty.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-empty.js
@@ -5,7 +5,7 @@
 description: No property access occurs for an "empty" object binding pattern (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-get-value-err.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-get-value-err.js
index 9e8146bcd6..941350f2bf 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-get-value-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-arrow.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-arrow.js
index f14eef6ee4..4072ba1c53 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-arrow.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to arrow functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-class.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-class.js
index a74ba692e2..7c388b7ccd 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-class.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-cover.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-cover.js
index 4802bbf450..5926d21916 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-cover.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-fn.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-fn.js
index 25697eec4a..32e0bce379 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-fn.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-gen.js
index 838d2629c3..1f38adc9cd 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -73,6 +73,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-skipped.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-skipped.js
index 212aebf55b..d5b06da47b 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-skipped.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-throws.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-throws.js
index dd7dbda6be..25b0f91be6 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-throws.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-unresolvable.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-unresolvable.js
index f276a9e02a..9822e2f8bc 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-unresolvable.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-trailing-comma.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-trailing-comma.js
index e565d89d48..e1655173fc 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-trailing-comma.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-list-err.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-list-err.js
index 8fc1d36158..22938e5254 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-list-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-list-err.js
@@ -5,7 +5,7 @@
 description: Binding property list evaluation is interrupted by an abrupt completion (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-ary-init.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-ary-init.js
index b531eef57a..24ffb34ec4 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-ary-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-ary-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern using initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-ary-trailing-comma.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-ary-trailing-comma.js
index bbb2a0869e..a393d473e3 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-ary-trailing-comma.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-ary-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-ary-value-null.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-ary-value-null.js
index d09604c377..062ca37f73 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-ary-value-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-ary-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern taking the `null` value (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-ary.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-ary.js
index 1a60301699..1ff7c5db07 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-ary.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-ary.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern not using initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-eval-err.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-eval-err.js
index b6bd4211db..6c2764b88f 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-eval-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-eval-err.js
@@ -5,7 +5,7 @@
 description: Evaluation of property name returns an abrupt completion (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-get-value-err.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-get-value-err.js
index 2c592916ff..58dd1dafc6 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-get-value-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-init-skipped.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-init-skipped.js
index dbb0f992c8..96950fab33 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-init-skipped.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-init-throws.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-init-throws.js
index 6bccca464a..ad2b197e47 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-init-throws.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-init-unresolvable.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-init-unresolvable.js
index 7a3aeab612..c725fbc74f 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-init-unresolvable.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-init.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-init.js
index 81d7bf0c8d..e4eb5e7055 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-init.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name, identifier, and initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-trailing-comma.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-trailing-comma.js
index 0962d8b50c..4446bc679e 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-trailing-comma.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id.js
index 30db11009e..83fbe759ea 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-id.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name and identifier (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-obj-init.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-obj-init.js
index e7ce386ff7..27c02465fb 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-obj-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-obj-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern using initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-obj-value-null.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-obj-value-null.js
index f99fbf0057..73103dce09 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-obj-value-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-obj-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-obj-value-undef.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-obj-value-undef.js
index e125ea2247..8c41353c7a 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-obj-value-undef.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-obj-value-undef.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-obj.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-obj.js
index 73ed390f24..c225f2797d 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-obj.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-prop-obj.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern not using initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-getter.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-getter.js
index ef9428c674..95883d3b2c 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-getter.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-getter.js
@@ -5,7 +5,7 @@
 description: Getter is called when obj is being deconstructed to a rest Object (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js
index 8bb170f478..2f63110882 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js
@@ -5,7 +5,7 @@
 description: Rest object doesn't contain non-enumerable properties (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js
index ad6b0246dc..f7a2c903df 100644
--- a/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js
+++ b/test/language/expressions/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js
@@ -5,7 +5,7 @@
 description: Rest object contains just unextracted data (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-init-iter-close.js b/test/language/expressions/class/dstr-gen-meth-static-ary-init-iter-close.js
index 7f2b326a77..df88b14a9e 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-init-iter-close.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-init-iter-close.js
@@ -5,7 +5,7 @@
 description: Iterator is closed when not exhausted by pattern evaluation (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-init-iter-get-err.js b/test/language/expressions/class/dstr-gen-meth-static-ary-init-iter-get-err.js
index dd6e9bef34..9d0d02c493 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-init-iter-get-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-init-iter-get-err.js
@@ -5,7 +5,7 @@
 description: Abrupt completion returned by GetIterator (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-init-iter-no-close.js b/test/language/expressions/class/dstr-gen-meth-static-ary-init-iter-no-close.js
index c0ca85a780..567048cf65 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-init-iter-no-close.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-init-iter-no-close.js
@@ -5,7 +5,7 @@
 description: Iterator is not closed when exhausted by pattern evaluation (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-name-iter-val.js b/test/language/expressions/class/dstr-gen-meth-static-ary-name-iter-val.js
index 256f3bd613..0bd15d7268 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-name-iter-val.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-name-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding with normal value iteration (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-elem-init.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-elem-init.js
index 1be8bd79e6..e2b27ccf7a 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-elem-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-elem-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-elem-iter.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-elem-iter.js
index 81dfeb3b84..f51b33da84 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-elem-iter.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-elem-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-empty-init.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-empty-init.js
index 2c3440ac96..3363368f28 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -72,6 +72,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-empty-iter.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-empty-iter.js
index 7bfc2d192c..e58a1192b6 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-empty-iter.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-empty-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-rest-init.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-rest-init.js
index c31866581e..a6a0e3e1f2 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-rest-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-rest-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-rest-iter.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-rest-iter.js
index 28c052dedc..d612bf8531 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-rest-iter.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-rest-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-val-null.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-val-null.js
index 025276bcfe..31a4da03e9 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-val-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-ary-val-null.js
@@ -5,7 +5,7 @@
 description: Nested array destructuring with a null value (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-exhausted.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-exhausted.js
index 7fdc9e366c..0731630cca 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-exhausted.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-exhausted.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an exhausted iterator (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-arrow.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-arrow.js
index 5c04d80d37..cd5698ae91 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-arrow.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to arrow functions (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-class.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-class.js
index 0a8184b700..e8969b883d 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-class.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-cover.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-cover.js
index a0cca224ec..62a88b1446 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-cover.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-fn.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-fn.js
index f3b5ef18d1..eefb27b584 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-fn.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
index 7756951e3c..23da34a0e4 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -74,6 +74,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-hole.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-hole.js
index f970dae689..72eeec7314 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-hole.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-hole.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with a "hole" (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-skipped.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-skipped.js
index 4e7e7b6a99..1b783f7515 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-skipped.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-throws.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-throws.js
index 007783bbc0..ebf4180cbc 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-throws.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer returns an abrupt completion (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-undef.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-undef.js
index c637150815..0b9de73e83 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-undef.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-undef.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an undefined value (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-unresolvable.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-unresolvable.js
index 02e75ec61e..e3c977aa92 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-unresolvable.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-complete.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-complete.js
index 8a79258da3..3ef3173fb2 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-complete.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-complete.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration completes (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-done.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-done.js
index e9d46d397b..40a2813719 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-done.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-done.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-step-err.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-step-err.js
index cec9b3e94a..e89f1dab72 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-step-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-step-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorStep returns an abrupt completion (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val-err.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val-err.js
index 4f37f13768..d81c2e2039 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val.js
index e16c70658f..5063e50f2c 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-id-init.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-id-init.js
index c8d21cfa7e..23c4a3b1a5 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-id-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-id.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-id.js
index abb881dc27..af9a780069 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-prop-id-init.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-prop-id-init.js
index 1291b884c0..813cb88a42 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-prop-id-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-prop-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-prop-id.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-prop-id.js
index d253638a11..cd4cdda653 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-prop-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-val-null.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-val-null.js
index cb29e7a3f3..a362ae2a11 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-val-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-val-null.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a null value (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-val-undef.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-val-undef.js
index be078269ed..5e68e33fa3 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-val-undef.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-elem-obj-val-undef.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a value of `undefined` (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-ary-elem.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-ary-elem.js
index de74966438..71f2d9be1c 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-ary-elem.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-ary-elem.js
@@ -5,7 +5,7 @@
 description: Rest element containing an array BindingElementList pattern (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-ary-rest.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-ary-rest.js
index e68c06403f..22d7168cca 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-ary-rest.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-ary-rest.js
@@ -5,7 +5,7 @@
 description: Rest element containing a rest element (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-id-elision.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-id-elision.js
index c8e11b568e..5e36591a07 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-id-elision.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-id-elision.js
@@ -5,7 +5,7 @@
 description: Rest element following elision elements (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-id-exhausted.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-id-exhausted.js
index 3eeed3980e..d0fe2f68c4 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-id-exhausted.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-id-exhausted.js
@@ -5,7 +5,7 @@
 description: RestElement applied to an exhausted iterator (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-id-iter-val-err.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-id-iter-val-err.js
index 68af1e4987..43a71a0f35 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-id-iter-val-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-id.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-id.js
index c572e4e3af..0b7c1f58ad 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-id.js
@@ -5,7 +5,7 @@
 description: Lone rest element (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-init-ary.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-ary.js
index 71e62329a7..d2881ff53a 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-ary.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-ary.js
@@ -5,7 +5,7 @@
 description: Reset element (nested array pattern) does not support initializer (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-id.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-id.js
index bf2fc086cf..44eae307cc 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-id.js
@@ -5,7 +5,7 @@
 description: Reset element (identifier) does not support initializer (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-obj.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-obj.js
index 7b2769b6b9..6644127cd4 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-obj.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-obj.js
@@ -5,7 +5,7 @@
 description: Reset element (nested object pattern) does not support initializer (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-ary.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-ary.js
index 6fd0dbf70d..84b8a4460d 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-ary.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-ary.js
@@ -5,7 +5,7 @@
 description: Rest element (array binding pattern) may not be followed by any element (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-id.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-id.js
index b00dce9984..96289b9113 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-id.js
@@ -5,7 +5,7 @@
 description: Rest element (identifier) may not be followed by any element (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-obj.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-obj.js
index 6b12608bfd..f0d7f0d9c0 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-obj.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-obj.js
@@ -5,7 +5,7 @@
 description: Rest element (object binding pattern) may not be followed by any element (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-obj-id.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-obj-id.js
index 8f079828e3..f1f0ed25e4 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-obj-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-obj-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-obj-prop-id.js b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-obj-prop-id.js
index ca2b8339a4..548c535a87 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-obj-prop-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-init-iter-close.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-init-iter-close.js
index b781bb7e1a..0a8d9c76fe 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-init-iter-close.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-init-iter-close.js
@@ -5,7 +5,7 @@
 description: Iterator is closed when not exhausted by pattern evaluation (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-init-iter-get-err.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-init-iter-get-err.js
index 89d07e3dda..c6dd6cd75f 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-init-iter-get-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-init-iter-get-err.js
@@ -5,7 +5,7 @@
 description: Abrupt completion returned by GetIterator (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-init-iter-no-close.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-init-iter-no-close.js
index 5748e6082a..ed8aab8589 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-init-iter-no-close.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-init-iter-no-close.js
@@ -5,7 +5,7 @@
 description: Iterator is not closed when exhausted by pattern evaluation (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-name-iter-val.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-name-iter-val.js
index dffc01152b..dcaccec469 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-name-iter-val.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-name-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding with normal value iteration (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-elem-init.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-elem-init.js
index 6717d46c78..3fd652ccb9 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-elem-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-elem-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-elem-iter.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-elem-iter.js
index 27b7467eda..fb6e731b11 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-elem-iter.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-elem-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-empty-init.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
index 61af0230de..1e0adeb81c 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -72,6 +72,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-iter.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-iter.js
index 2b4492bb4b..2a91d889b3 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-iter.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-rest-init.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-rest-init.js
index 4f89c895f6..1bbc3ba444 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-rest-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-rest-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-rest-iter.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-rest-iter.js
index d6575d32b3..ecf791d942 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-rest-iter.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-rest-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-val-null.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-val-null.js
index ab30c0295f..0f29d71afc 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-val-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-val-null.js
@@ -5,7 +5,7 @@
 description: Nested array destructuring with a null value (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-exhausted.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-exhausted.js
index f895f84408..45aac1f6a5 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-exhausted.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-exhausted.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an exhausted iterator (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-arrow.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
index 0de7c850ce..93118ff259 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to arrow functions (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-class.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-class.js
index 1b522f4e6a..626d508e56 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-class.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-cover.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
index 96a0d2af20..2f8f4f06ba 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-fn.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
index 77cec8416b..a14f81ae8b 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index 146f538f3d..89ba554c5f 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -74,6 +74,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-hole.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-hole.js
index b006b2d714..0a08074c6c 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-hole.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-hole.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with a "hole" (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-skipped.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-skipped.js
index 40d6954590..68e0983468 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-skipped.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-throws.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-throws.js
index 8bed6e5d2b..cf5f86a8b5 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-throws.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer returns an abrupt completion (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-undef.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-undef.js
index 41b93806ef..97d42c7504 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-undef.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-undef.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an undefined value (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-unresolvable.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-unresolvable.js
index 1c9202de2e..7f552939d3 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-unresolvable.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-complete.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-complete.js
index 897c2a023a..a9eddeb119 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-complete.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-complete.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration completes (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-done.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-done.js
index 2a5e4615c8..00da951cdf 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-done.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-done.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-step-err.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-step-err.js
index b3cfcdf659..dfc12c2873 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-step-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-step-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorStep returns an abrupt completion (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-elem-id-iter-val-err.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-val-err.js
index 54a740fa12..37e8c3dbbd 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-val-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-elem-id-iter-val.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-val.js
index b5ed63acc8..f6248f70da 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-val.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-id-init.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-id-init.js
index 0bb492c796..d5dd20c46a 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-id-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-id.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-id.js
index 1a0459234e..504fbf19cf 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-prop-id-init.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-prop-id-init.js
index 4c98a45189..c62528e6d6 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-prop-id-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-prop-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-prop-id.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-prop-id.js
index 436c528725..b0fcaa7220 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-prop-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-val-null.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-val-null.js
index 01068ecfbf..3eb44eaa31 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-val-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-val-null.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a null value (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-val-undef.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-val-undef.js
index c5701430c2..6cffd18aea 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-val-undef.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-val-undef.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a value of `undefined` (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-ary-elem.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-elem.js
index 27a0f206c9..6cdebd2457 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-elem.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-elem.js
@@ -5,7 +5,7 @@
 description: Rest element containing an array BindingElementList pattern (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-ary-rest.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-rest.js
index d1004dedcf..103c03ef58 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-rest.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-rest.js
@@ -5,7 +5,7 @@
 description: Rest element containing a rest element (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-id-elision.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-elision.js
index 646ca4f0ae..d5f204e740 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-elision.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-elision.js
@@ -5,7 +5,7 @@
 description: Rest element following elision elements (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-id-exhausted.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-exhausted.js
index 69d79e5ac4..1d06b2e758 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-exhausted.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-exhausted.js
@@ -5,7 +5,7 @@
 description: RestElement applied to an exhausted iterator (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-rest-id-iter-val-err.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-iter-val-err.js
index aa351c7dc5..b163594809 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-iter-val-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-rest-id.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id.js
index f6cc057b57..ddfd2bfeae 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id.js
@@ -5,7 +5,7 @@
 description: Lone rest element (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-init-ary.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js
index 6d57cf0ac0..e9064b6670 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js
@@ -5,7 +5,7 @@
 description: Reset element (nested array pattern) does not support initializer (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-id.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-id.js
index 7604b12516..f963426b94 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-id.js
@@ -5,7 +5,7 @@
 description: Reset element (identifier) does not support initializer (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js
index 95307ba5d2..21fdfaa51c 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js
@@ -5,7 +5,7 @@
 description: Reset element (nested object pattern) does not support initializer (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js
index 6cf9d81b86..485771992c 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js
@@ -5,7 +5,7 @@
 description: Rest element (array binding pattern) may not be followed by any element (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js
index c6b00fa8f0..7846eefa59 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js
@@ -5,7 +5,7 @@
 description: Rest element (identifier) may not be followed by any element (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js
index 16a97a8d84..763a7d6178 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js
@@ -5,7 +5,7 @@
 description: Rest element (object binding pattern) may not be followed by any element (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-id.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-id.js
index b4d48e8924..43861e96ad 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-obj-prop-id.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-prop-id.js
index e3ec53e236..4996e199b5 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-prop-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-init-null.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-init-null.js
index 3644d4e90f..79e34ac788 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-init-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-init-null.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (null) (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-init-undefined.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-init-undefined.js
index 6396ae7403..fec168f706 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-init-undefined.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-init-undefined.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (undefined) (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-empty.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-empty.js
index 54b92d2a1f..7cbe011e1a 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-empty.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-empty.js
@@ -5,7 +5,7 @@
 description: No property access occurs for an "empty" object binding pattern (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-get-value-err.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-get-value-err.js
index 64fb0dde5d..ff8281177a 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-get-value-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-fn-name-arrow.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-arrow.js
index 5737b12bd8..e4b8d935c8 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-arrow.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to arrow functions (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-fn-name-class.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-class.js
index baee588463..3c38e996ef 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-class.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-fn-name-cover.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-cover.js
index 0cd868faeb..989e2b1b2e 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-cover.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-fn-name-fn.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-fn.js
index 79d4f11b5f..6ca664bf55 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-fn.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
index 652f36dc28..33d9305775 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -73,6 +73,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-skipped.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-skipped.js
index 9afc1abf96..be65bc6603 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-skipped.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-throws.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-throws.js
index f827603e03..94af7d45d3 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-throws.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-unresolvable.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-unresolvable.js
index 08ed1c3c48..4e218e1a85 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-unresolvable.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-trailing-comma.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-trailing-comma.js
index 3ca13d770b..24306f5669 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-trailing-comma.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-list-err.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-list-err.js
index 933841417c..1845f85949 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-list-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-list-err.js
@@ -5,7 +5,7 @@
 description: Binding property list evaluation is interrupted by an abrupt completion (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-ary-init.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-init.js
index bff15eda57..f6b9565823 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern using initializer (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-ary-trailing-comma.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-trailing-comma.js
index 6022779eac..2214c73b19 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-trailing-comma.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-ary-value-null.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-value-null.js
index 7e87084d8b..0046fc692b 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-value-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern taking the `null` value (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-ary.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary.js
index 53992c64e7..b21d6a0718 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern not using initializer (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-eval-err.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-eval-err.js
index 957abff41f..ce0895f1b9 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-eval-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-eval-err.js
@@ -5,7 +5,7 @@
 description: Evaluation of property name returns an abrupt completion (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-get-value-err.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-get-value-err.js
index d2a64a431c..f76449b802 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-get-value-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-init-skipped.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-skipped.js
index e1f7c98718..cac87a30ae 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-skipped.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-init-throws.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-throws.js
index 47d1612bc4..9602b753f2 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-throws.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-init-unresolvable.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-unresolvable.js
index 6c7272f1a8..0cd676b545 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-unresolvable.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-init.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init.js
index d4312c0ba0..4e8b479274 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name, identifier, and initializer (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-trailing-comma.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-trailing-comma.js
index 0ec19be6f4..634b31d6f0 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-trailing-comma.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id.js
index 3c46c08466..cf323e6f39 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name and identifier (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-obj-init.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-init.js
index abc8d4c86e..7d7afdcaf5 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern using initializer (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-obj-value-null.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-value-null.js
index 3d4ae8b65a..60ea558da2 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-value-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-obj-value-undef.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-value-undef.js
index ad4e55460f..e46510b052 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-value-undef.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-value-undef.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-obj.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj.js
index 5f1da2e141..4719bb3940 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern not using initializer (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-rest-getter.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js
index c34f21ac95..e4542dea64 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js
@@ -5,7 +5,7 @@
 description: Getter is called when obj is being deconstructed to a rest Object (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js
index b59974c9bc..eaed17b64f 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js
@@ -5,7 +5,7 @@
 description: Rest object doesn't contain non-enumerable properties (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js
index afdb1bda9a..f5ed4c6079 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js
@@ -5,7 +5,7 @@
 description: Rest object contains just unextracted data (static class expression generator method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-init-null.js b/test/language/expressions/class/dstr-gen-meth-static-obj-init-null.js
index aa7b5c3c00..18fb2cf597 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-init-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-init-null.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (null) (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-init-undefined.js b/test/language/expressions/class/dstr-gen-meth-static-obj-init-undefined.js
index 8f1c79c3d0..5572b1b1cf 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-init-undefined.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-init-undefined.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (undefined) (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-empty.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-empty.js
index f67434573e..23731e61e6 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-empty.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-empty.js
@@ -5,7 +5,7 @@
 description: No property access occurs for an "empty" object binding pattern (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-get-value-err.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-get-value-err.js
index c769b2df6f..e6bdaad8ec 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-get-value-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-arrow.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-arrow.js
index 2b7e8223c5..bcc8061bdb 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-arrow.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to arrow functions (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-class.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-class.js
index a3df1394f2..90b12b13be 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-class.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-cover.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-cover.js
index 8370a29555..b5e1b268f2 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-cover.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-fn.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-fn.js
index ab48e68d58..6d9a0251ec 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-fn.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-gen.js
index 27c2cba818..217c4a33ce 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -73,6 +73,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-skipped.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-skipped.js
index 289ed4377b..39529be41d 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-skipped.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-throws.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-throws.js
index 404fc4e3ed..84e43a5e96 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-throws.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-unresolvable.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-unresolvable.js
index c900579042..9f50514f57 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-unresolvable.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-trailing-comma.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-trailing-comma.js
index 96dc2a0f8f..a296dcdf2d 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-trailing-comma.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-list-err.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-list-err.js
index 06ab0fbfad..2fd90dc716 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-list-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-list-err.js
@@ -5,7 +5,7 @@
 description: Binding property list evaluation is interrupted by an abrupt completion (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-ary-init.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-ary-init.js
index aa000f9b7f..fa231baddb 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-ary-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-ary-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern using initializer (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-ary-trailing-comma.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-ary-trailing-comma.js
index 24602298a5..4ddde24097 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-ary-trailing-comma.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-ary-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-ary-value-null.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-ary-value-null.js
index 45e5f68f10..fb6e475584 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-ary-value-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-ary-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern taking the `null` value (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-ary.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-ary.js
index 0d471012e8..117ee7a48f 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-ary.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-ary.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern not using initializer (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-eval-err.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-eval-err.js
index dff93e39ad..43b7dd8219 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-eval-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-eval-err.js
@@ -5,7 +5,7 @@
 description: Evaluation of property name returns an abrupt completion (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-get-value-err.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-get-value-err.js
index 79a64e1497..e7c3f957bf 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-get-value-err.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-skipped.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-skipped.js
index 8f3e078e94..09c3b11d59 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-skipped.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-throws.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-throws.js
index 4a4f00744f..a511891a40 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-throws.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-unresolvable.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-unresolvable.js
index 4483002f07..21c2ae5d0c 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-unresolvable.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-init.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-init.js
index 327d127876..9da750721d 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-init.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name, identifier, and initializer (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-trailing-comma.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-trailing-comma.js
index fe6bd27c08..8c438e56cb 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-trailing-comma.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id.js
index bfd4cbadf5..5fc4ebaa56 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-id.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name and identifier (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-obj-init.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-obj-init.js
index 866c135b98..5c87a89c77 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-obj-init.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-obj-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern using initializer (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-null.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-null.js
index 25ae1b66fd..29cada8bc7 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-null.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-undef.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-undef.js
index 87dca04e88..d5cc9ae164 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-undef.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-undef.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-obj.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-obj.js
index 44908e53cf..20671d0e0e 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-obj.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-prop-obj.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern not using initializer (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js
index d987839796..8601cd37b6 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js
@@ -5,7 +5,7 @@
 description: Getter is called when obj is being deconstructed to a rest Object (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js
index e53d199578..c866763997 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js
@@ -5,7 +5,7 @@
 description: Rest object doesn't contain non-enumerable properties (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js
index 18cec0c1c3..4b1c3e4e2c 100644
--- a/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js
+++ b/test/language/expressions/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js
@@ -5,7 +5,7 @@
 description: Rest object contains just unextracted data (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/dstr-meth-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/class/dstr-meth-ary-ptrn-elem-ary-empty-init.js
index 1787661234..95883a5e10 100644
--- a/test/language/expressions/class/dstr-meth-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/class/dstr-meth-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -69,6 +69,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/class/dstr-meth-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-meth-ary-ptrn-elem-id-init-fn-name-gen.js
index 56a773909c..b6aa1fed20 100644
--- a/test/language/expressions/class/dstr-meth-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-meth-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -71,6 +71,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elem-ary-empty-init.js
index 80d63fec64..7c4a34bb8b 100644
--- a/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -69,6 +69,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index a4d6571b64..c2357e632c 100644
--- a/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -71,6 +71,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/class/dstr-meth-dflt-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
index 54bac900ee..9b2341e4a0 100644
--- a/test/language/expressions/class/dstr-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -70,6 +70,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/class/dstr-meth-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-meth-obj-ptrn-id-init-fn-name-gen.js
index d26cdc6a05..b5e3794113 100644
--- a/test/language/expressions/class/dstr-meth-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-meth-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -70,6 +70,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/class/dstr-meth-static-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/class/dstr-meth-static-ary-ptrn-elem-ary-empty-init.js
index 845f7e15f0..1237c4aa47 100644
--- a/test/language/expressions/class/dstr-meth-static-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/class/dstr-meth-static-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (static class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -69,6 +69,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/class/dstr-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
index 34a1869883..5c957ebea6 100644
--- a/test/language/expressions/class/dstr-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -71,6 +71,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
index 8449f22212..1643839f68 100644
--- a/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (static class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -69,6 +69,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index 49fe105423..831e9ac90f 100644
--- a/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -71,6 +71,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
index fd034e6d3c..488858a52e 100644
--- a/test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -70,6 +70,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/class/dstr-meth-static-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/class/dstr-meth-static-obj-ptrn-id-init-fn-name-gen.js
index 3bfa6adb11..616a80cfd9 100644
--- a/test/language/expressions/class/dstr-meth-static-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/class/dstr-meth-static-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -70,6 +70,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/class/gen-meth-dflt-params-abrupt.js b/test/language/expressions/class/gen-meth-dflt-params-abrupt.js
index b393d79d57..db21aec572 100644
--- a/test/language/expressions/class/gen-meth-dflt-params-abrupt.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-abrupt.js
@@ -4,7 +4,7 @@
 /*---
 description: Abrupt completion returned by evaluation of initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -60,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/class/gen-meth-dflt-params-arg-val-not-undefined.js b/test/language/expressions/class/gen-meth-dflt-params-arg-val-not-undefined.js
index 22138efe23..edbdc650cc 100644
--- a/test/language/expressions/class/gen-meth-dflt-params-arg-val-not-undefined.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-arg-val-not-undefined.js
@@ -4,7 +4,7 @@
 /*---
 description: Use of intializer when argument value is not `undefined` (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -60,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/class/gen-meth-dflt-params-arg-val-undefined.js b/test/language/expressions/class/gen-meth-dflt-params-arg-val-undefined.js
index 6dc6f3353f..85503ce3d4 100644
--- a/test/language/expressions/class/gen-meth-dflt-params-arg-val-undefined.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-arg-val-undefined.js
@@ -4,7 +4,7 @@
 /*---
 description: Use of intializer when argument value is `undefined` (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -60,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/class/gen-meth-dflt-params-duplicates.js b/test/language/expressions/class/gen-meth-dflt-params-duplicates.js
index 765110f534..05b8df87d6 100644
--- a/test/language/expressions/class/gen-meth-dflt-params-duplicates.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-duplicates.js
@@ -4,7 +4,7 @@
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 negative:
   phase: early
@@ -63,6 +63,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.2 Static Semantics: Early Errors
 
     StrictFormalParameters : FormalParameters
diff --git a/test/language/expressions/class/gen-meth-dflt-params-ref-later.js b/test/language/expressions/class/gen-meth-dflt-params-ref-later.js
index aec1a0e50d..86ecc43786 100644
--- a/test/language/expressions/class/gen-meth-dflt-params-ref-later.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-ref-later.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -60,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/class/gen-meth-dflt-params-ref-prior.js b/test/language/expressions/class/gen-meth-dflt-params-ref-prior.js
index 20025cc04f..309bd8b2f7 100644
--- a/test/language/expressions/class/gen-meth-dflt-params-ref-prior.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-ref-prior.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -60,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/class/gen-meth-dflt-params-ref-self.js b/test/language/expressions/class/gen-meth-dflt-params-ref-self.js
index 7144f655bf..7bfb6b6a0d 100644
--- a/test/language/expressions/class/gen-meth-dflt-params-ref-self.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-ref-self.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter from within its own initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -60,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/class/gen-meth-dflt-params-rest.js b/test/language/expressions/class/gen-meth-dflt-params-rest.js
index 5fa8ee709b..b3ee832d8c 100644
--- a/test/language/expressions/class/gen-meth-dflt-params-rest.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-rest.js
@@ -4,7 +4,7 @@
 /*---
 description: RestParameter does not support an initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 negative:
   phase: early
@@ -63,6 +63,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1 Function Definitions
 
     Syntax
diff --git a/test/language/expressions/class/gen-meth-dflt-params-trailing-comma.js b/test/language/expressions/class/gen-meth-dflt-params-trailing-comma.js
index 210a23b365..9e8f175e12 100644
--- a/test/language/expressions/class/gen-meth-dflt-params-trailing-comma.js
+++ b/test/language/expressions/class/gen-meth-dflt-params-trailing-comma.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
+features: [generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -59,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/expressions/class/gen-meth-params-trailing-comma-multiple.js b/test/language/expressions/class/gen-meth-params-trailing-comma-multiple.js
index 958e0d4e56..2ed51796d9 100644
--- a/test/language/expressions/class/gen-meth-params-trailing-comma-multiple.js
+++ b/test/language/expressions/class/gen-meth-params-trailing-comma-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
+features: [generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -59,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/expressions/class/gen-meth-params-trailing-comma-single.js b/test/language/expressions/class/gen-meth-params-trailing-comma-single.js
index f9a484d54f..219db30e1c 100644
--- a/test/language/expressions/class/gen-meth-params-trailing-comma-single.js
+++ b/test/language/expressions/class/gen-meth-params-trailing-comma-single.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
+features: [generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -59,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/expressions/class/gen-meth-rest-params-trailing-comma-early-error.js b/test/language/expressions/class/gen-meth-rest-params-trailing-comma-early-error.js
index c2b36089f5..8b21dcd184 100644
--- a/test/language/expressions/class/gen-meth-rest-params-trailing-comma-early-error.js
+++ b/test/language/expressions/class/gen-meth-rest-params-trailing-comma-early-error.js
@@ -4,6 +4,7 @@
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -62,6 +63,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/expressions/class/gen-meth-static-dflt-params-abrupt.js b/test/language/expressions/class/gen-meth-static-dflt-params-abrupt.js
index a467d22058..a5888960ce 100644
--- a/test/language/expressions/class/gen-meth-static-dflt-params-abrupt.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-abrupt.js
@@ -4,7 +4,7 @@
 /*---
 description: Abrupt completion returned by evaluation of initializer (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -60,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/class/gen-meth-static-dflt-params-arg-val-not-undefined.js b/test/language/expressions/class/gen-meth-static-dflt-params-arg-val-not-undefined.js
index 53f378de62..5ecc5a27cf 100644
--- a/test/language/expressions/class/gen-meth-static-dflt-params-arg-val-not-undefined.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-arg-val-not-undefined.js
@@ -4,7 +4,7 @@
 /*---
 description: Use of intializer when argument value is not `undefined` (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -60,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/class/gen-meth-static-dflt-params-arg-val-undefined.js b/test/language/expressions/class/gen-meth-static-dflt-params-arg-val-undefined.js
index 55f75b366d..3ef37c89c6 100644
--- a/test/language/expressions/class/gen-meth-static-dflt-params-arg-val-undefined.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-arg-val-undefined.js
@@ -4,7 +4,7 @@
 /*---
 description: Use of intializer when argument value is `undefined` (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -60,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/class/gen-meth-static-dflt-params-duplicates.js b/test/language/expressions/class/gen-meth-static-dflt-params-duplicates.js
index 030a69ca85..e7a5ce5a51 100644
--- a/test/language/expressions/class/gen-meth-static-dflt-params-duplicates.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-duplicates.js
@@ -4,7 +4,7 @@
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 negative:
   phase: early
@@ -63,6 +63,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.2 Static Semantics: Early Errors
 
     StrictFormalParameters : FormalParameters
diff --git a/test/language/expressions/class/gen-meth-static-dflt-params-ref-later.js b/test/language/expressions/class/gen-meth-static-dflt-params-ref-later.js
index 5c0b19503e..3fc6616f94 100644
--- a/test/language/expressions/class/gen-meth-static-dflt-params-ref-later.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-ref-later.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -60,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/class/gen-meth-static-dflt-params-ref-prior.js b/test/language/expressions/class/gen-meth-static-dflt-params-ref-prior.js
index f23a898026..d0b189ab24 100644
--- a/test/language/expressions/class/gen-meth-static-dflt-params-ref-prior.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-ref-prior.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -60,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/class/gen-meth-static-dflt-params-ref-self.js b/test/language/expressions/class/gen-meth-static-dflt-params-ref-self.js
index a05ae7116e..ede83cf433 100644
--- a/test/language/expressions/class/gen-meth-static-dflt-params-ref-self.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-ref-self.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter from within its own initializer (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -60,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/class/gen-meth-static-dflt-params-rest.js b/test/language/expressions/class/gen-meth-static-dflt-params-rest.js
index 21484a2d96..9dec9bbce0 100644
--- a/test/language/expressions/class/gen-meth-static-dflt-params-rest.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-rest.js
@@ -4,7 +4,7 @@
 /*---
 description: RestParameter does not support an initializer (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 negative:
   phase: early
@@ -63,6 +63,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1 Function Definitions
 
     Syntax
diff --git a/test/language/expressions/class/gen-meth-static-dflt-params-trailing-comma.js b/test/language/expressions/class/gen-meth-static-dflt-params-trailing-comma.js
index e31f613d0d..469e56dfb5 100644
--- a/test/language/expressions/class/gen-meth-static-dflt-params-trailing-comma.js
+++ b/test/language/expressions/class/gen-meth-static-dflt-params-trailing-comma.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
+features: [generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -59,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/expressions/class/gen-meth-static-params-trailing-comma-multiple.js b/test/language/expressions/class/gen-meth-static-params-trailing-comma-multiple.js
index 067edc3706..bd51073f5e 100644
--- a/test/language/expressions/class/gen-meth-static-params-trailing-comma-multiple.js
+++ b/test/language/expressions/class/gen-meth-static-params-trailing-comma-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
+features: [generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -59,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/expressions/class/gen-meth-static-params-trailing-comma-single.js b/test/language/expressions/class/gen-meth-static-params-trailing-comma-single.js
index c0cb9887b0..395286531d 100644
--- a/test/language/expressions/class/gen-meth-static-params-trailing-comma-single.js
+++ b/test/language/expressions/class/gen-meth-static-params-trailing-comma-single.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
+features: [generators]
 flags: [generated]
 info: |
     ClassExpression : class BindingIdentifieropt ClassTail
@@ -59,6 +60,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/expressions/class/gen-meth-static-rest-params-trailing-comma-early-error.js b/test/language/expressions/class/gen-meth-static-rest-params-trailing-comma-early-error.js
index 2813285898..400e758f5d 100644
--- a/test/language/expressions/class/gen-meth-static-rest-params-trailing-comma-early-error.js
+++ b/test/language/expressions/class/gen-meth-static-rest-params-trailing-comma-early-error.js
@@ -4,6 +4,7 @@
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class expression generator method)
 esid: sec-class-definitions-runtime-semantics-evaluation
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -62,6 +63,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/expressions/class/gen-method-static-yield-as-binding-identifier-escaped.js b/test/language/expressions/class/gen-method-static-yield-as-binding-identifier-escaped.js
index 23500d3171..d1ba608b22 100644
--- a/test/language/expressions/class/gen-method-static-yield-as-binding-identifier-escaped.js
+++ b/test/language/expressions/class/gen-method-static-yield-as-binding-identifier-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a binding identifier. (Static generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     BindingIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/class/gen-method-static-yield-as-binding-identifier.js b/test/language/expressions/class/gen-method-static-yield-as-binding-identifier.js
index 75e082a9f1..a65e092d99 100644
--- a/test/language/expressions/class/gen-method-static-yield-as-binding-identifier.js
+++ b/test/language/expressions/class/gen-method-static-yield-as-binding-identifier.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a binding identifier. (Static generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     BindingIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/class/gen-method-static-yield-as-identifier-reference-escaped.js b/test/language/expressions/class/gen-method-static-yield-as-identifier-reference-escaped.js
index eae1ad01da..438b8dfe52 100644
--- a/test/language/expressions/class/gen-method-static-yield-as-identifier-reference-escaped.js
+++ b/test/language/expressions/class/gen-method-static-yield-as-identifier-reference-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as an identifier reference. (Static generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     IdentifierReference : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/class/gen-method-static-yield-as-identifier-reference.js b/test/language/expressions/class/gen-method-static-yield-as-identifier-reference.js
index e48918c96a..1ca9d9e699 100644
--- a/test/language/expressions/class/gen-method-static-yield-as-identifier-reference.js
+++ b/test/language/expressions/class/gen-method-static-yield-as-identifier-reference.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as an identifier reference. (Static generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     IdentifierReference : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/class/gen-method-static-yield-as-label-identifier-escaped.js b/test/language/expressions/class/gen-method-static-yield-as-label-identifier-escaped.js
index f08c2135d5..8e8da1ab3b 100644
--- a/test/language/expressions/class/gen-method-static-yield-as-label-identifier-escaped.js
+++ b/test/language/expressions/class/gen-method-static-yield-as-label-identifier-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a label identifier. (Static generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     LabelIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/class/gen-method-static-yield-as-label-identifier.js b/test/language/expressions/class/gen-method-static-yield-as-label-identifier.js
index e1f261fec3..5c5890bf0a 100644
--- a/test/language/expressions/class/gen-method-static-yield-as-label-identifier.js
+++ b/test/language/expressions/class/gen-method-static-yield-as-label-identifier.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a label identifier. (Static generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     LabelIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/class/gen-method-static-yield-identifier-spread-strict.js b/test/language/expressions/class/gen-method-static-yield-identifier-spread-strict.js
index d321cd3252..4ab12528f6 100644
--- a/test/language/expressions/class/gen-method-static-yield-identifier-spread-strict.js
+++ b/test/language/expressions/class/gen-method-static-yield-identifier-spread-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: It's an early error if the AssignmentExpression is a function body with yield as an identifier in strict mode. (Static generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
-features: [object-spread]
+features: [object-spread, generators]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -21,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/class/gen-method-static-yield-identifier-strict.js b/test/language/expressions/class/gen-method-static-yield-identifier-strict.js
index e72651c4cc..a6493a125d 100644
--- a/test/language/expressions/class/gen-method-static-yield-identifier-strict.js
+++ b/test/language/expressions/class/gen-method-static-yield-identifier-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: It's an early error if the generator body has another function body with yield as an identifier in strict mode. (Static generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -19,6 +20,7 @@ info: |
 
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+
 ---*/
 throw "Test262: This statement should not be evaluated.";
 
diff --git a/test/language/expressions/class/gen-method-static-yield-spread-arr-multiple.js b/test/language/expressions/class/gen-method-static-yield-spread-arr-multiple.js
index c522fe8c9f..305a03657f 100644
--- a/test/language/expressions/class/gen-method-static-yield-spread-arr-multiple.js
+++ b/test/language/expressions/class/gen-method-static-yield-spread-arr-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Static generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 includes: [compareArray.js]
 info: |
@@ -18,6 +19,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/class/gen-method-static-yield-spread-arr-single.js b/test/language/expressions/class/gen-method-static-yield-spread-arr-single.js
index d26fc19a4c..fa67514401 100644
--- a/test/language/expressions/class/gen-method-static-yield-spread-arr-single.js
+++ b/test/language/expressions/class/gen-method-static-yield-spread-arr-single.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Static generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 info: |
     ClassElement :
@@ -17,6 +18,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/class/gen-method-static-yield-spread-obj.js b/test/language/expressions/class/gen-method-static-yield-spread-obj.js
index 22c26e1970..ac57da2484 100644
--- a/test/language/expressions/class/gen-method-static-yield-spread-obj.js
+++ b/test/language/expressions/class/gen-method-static-yield-spread-obj.js
@@ -4,7 +4,7 @@
 /*---
 description: Use yield value in a object spread position (Static generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
-features: [object-spread]
+features: [object-spread, generators]
 flags: [generated]
 includes: [compareArray.js]
 info: |
@@ -19,6 +19,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/class/gen-method-yield-as-binding-identifier-escaped.js b/test/language/expressions/class/gen-method-yield-as-binding-identifier-escaped.js
index 462c940820..737b56f86c 100644
--- a/test/language/expressions/class/gen-method-yield-as-binding-identifier-escaped.js
+++ b/test/language/expressions/class/gen-method-yield-as-binding-identifier-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a binding identifier. (Generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     BindingIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/class/gen-method-yield-as-binding-identifier.js b/test/language/expressions/class/gen-method-yield-as-binding-identifier.js
index 26767af105..11696fd53b 100644
--- a/test/language/expressions/class/gen-method-yield-as-binding-identifier.js
+++ b/test/language/expressions/class/gen-method-yield-as-binding-identifier.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a binding identifier. (Generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     BindingIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/class/gen-method-yield-as-identifier-reference-escaped.js b/test/language/expressions/class/gen-method-yield-as-identifier-reference-escaped.js
index 61d99d41e9..2cf4e18470 100644
--- a/test/language/expressions/class/gen-method-yield-as-identifier-reference-escaped.js
+++ b/test/language/expressions/class/gen-method-yield-as-identifier-reference-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as an identifier reference. (Generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     IdentifierReference : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/class/gen-method-yield-as-identifier-reference.js b/test/language/expressions/class/gen-method-yield-as-identifier-reference.js
index 9bfeeb74eb..5ecdb50389 100644
--- a/test/language/expressions/class/gen-method-yield-as-identifier-reference.js
+++ b/test/language/expressions/class/gen-method-yield-as-identifier-reference.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as an identifier reference. (Generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     IdentifierReference : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/class/gen-method-yield-as-label-identifier-escaped.js b/test/language/expressions/class/gen-method-yield-as-label-identifier-escaped.js
index 6994c0d144..7d3796ac77 100644
--- a/test/language/expressions/class/gen-method-yield-as-label-identifier-escaped.js
+++ b/test/language/expressions/class/gen-method-yield-as-label-identifier-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a label identifier. (Generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     LabelIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/class/gen-method-yield-as-label-identifier.js b/test/language/expressions/class/gen-method-yield-as-label-identifier.js
index d53c1af7e0..4c206c024f 100644
--- a/test/language/expressions/class/gen-method-yield-as-label-identifier.js
+++ b/test/language/expressions/class/gen-method-yield-as-label-identifier.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a label identifier. (Generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     LabelIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/class/gen-method-yield-identifier-spread-strict.js b/test/language/expressions/class/gen-method-yield-identifier-spread-strict.js
index fe68d75ff2..f8377cecdc 100644
--- a/test/language/expressions/class/gen-method-yield-identifier-spread-strict.js
+++ b/test/language/expressions/class/gen-method-yield-identifier-spread-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: It's an early error if the AssignmentExpression is a function body with yield as an identifier in strict mode. (Generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
-features: [object-spread]
+features: [object-spread, generators]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -21,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/class/gen-method-yield-identifier-strict.js b/test/language/expressions/class/gen-method-yield-identifier-strict.js
index af99f167a4..c907c32937 100644
--- a/test/language/expressions/class/gen-method-yield-identifier-strict.js
+++ b/test/language/expressions/class/gen-method-yield-identifier-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: It's an early error if the generator body has another function body with yield as an identifier in strict mode. (Generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -19,6 +20,7 @@ info: |
 
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+
 ---*/
 throw "Test262: This statement should not be evaluated.";
 
diff --git a/test/language/expressions/class/gen-method-yield-spread-arr-multiple.js b/test/language/expressions/class/gen-method-yield-spread-arr-multiple.js
index ac42e5da8e..ef993275aa 100644
--- a/test/language/expressions/class/gen-method-yield-spread-arr-multiple.js
+++ b/test/language/expressions/class/gen-method-yield-spread-arr-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 includes: [compareArray.js]
 info: |
@@ -18,6 +19,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/class/gen-method-yield-spread-arr-single.js b/test/language/expressions/class/gen-method-yield-spread-arr-single.js
index b1d9e473ba..6f6162d5e4 100644
--- a/test/language/expressions/class/gen-method-yield-spread-arr-single.js
+++ b/test/language/expressions/class/gen-method-yield-spread-arr-single.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 info: |
     ClassElement :
@@ -17,6 +18,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/class/gen-method-yield-spread-obj.js b/test/language/expressions/class/gen-method-yield-spread-obj.js
index 192c508b2b..930e7dd7ca 100644
--- a/test/language/expressions/class/gen-method-yield-spread-obj.js
+++ b/test/language/expressions/class/gen-method-yield-spread-obj.js
@@ -4,7 +4,7 @@
 /*---
 description: Use yield value in a object spread position (Generator method as a ClassExpression element)
 esid: prod-GeneratorMethod
-features: [object-spread]
+features: [object-spread, generators]
 flags: [generated]
 includes: [compareArray.js]
 info: |
@@ -19,6 +19,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/function/dstr-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/function/dstr-ary-ptrn-elem-ary-empty-init.js
index 14c3b5078a..4c1e275d6f 100644
--- a/test/language/expressions/function/dstr-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/function/dstr-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (function expression)
 esid: sec-function-definitions-runtime-semantics-evaluation
 es6id: 14.1.20
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     FunctionExpression : function ( FormalParameters ) { FunctionBody }
@@ -49,6 +49,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/function/dstr-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/function/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
index bd6d3657db..8398c0dfac 100644
--- a/test/language/expressions/function/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/function/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (function expression)
 esid: sec-function-definitions-runtime-semantics-evaluation
 es6id: 14.1.20
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     FunctionExpression : function ( FormalParameters ) { FunctionBody }
@@ -51,6 +51,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/function/dstr-dflt-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/function/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
index f8103883b3..98c7ab6eca 100644
--- a/test/language/expressions/function/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/function/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (function expression (default parameter))
 esid: sec-function-definitions-runtime-semantics-evaluation
 es6id: 14.1.20
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     FunctionExpression : function ( FormalParameters ) { FunctionBody }
@@ -49,6 +49,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index 3bf148a168..afd000ec15 100644
--- a/test/language/expressions/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (function expression (default parameter))
 esid: sec-function-definitions-runtime-semantics-evaluation
 es6id: 14.1.20
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     FunctionExpression : function ( FormalParameters ) { FunctionBody }
@@ -51,6 +51,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/function/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/function/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
index 08add1ee82..cd451d129c 100644
--- a/test/language/expressions/function/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/function/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (function expression (default parameter))
 esid: sec-function-definitions-runtime-semantics-evaluation
 es6id: 14.1.20
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     FunctionExpression : function ( FormalParameters ) { FunctionBody }
@@ -50,6 +50,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/function/dstr-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/function/dstr-obj-ptrn-id-init-fn-name-gen.js
index d77ad633ed..5ac4e03beb 100644
--- a/test/language/expressions/function/dstr-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/function/dstr-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (function expression)
 esid: sec-function-definitions-runtime-semantics-evaluation
 es6id: 14.1.20
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     FunctionExpression : function ( FormalParameters ) { FunctionBody }
@@ -50,6 +50,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/generators/arguments-with-arguments-fn.js b/test/language/expressions/generators/arguments-with-arguments-fn.js
index 946fd22b50..438b6e7033 100644
--- a/test/language/expressions/generators/arguments-with-arguments-fn.js
+++ b/test/language/expressions/generators/arguments-with-arguments-fn.js
@@ -16,6 +16,7 @@ info: |
          i. Let argumentsObjectNeeded be false.
   [...]
 flags: [noStrict]
+features: [generators]
 ---*/
 
 var args;
diff --git a/test/language/expressions/generators/arguments-with-arguments-lex.js b/test/language/expressions/generators/arguments-with-arguments-lex.js
index 9cfe234a68..0a4fb35a65 100644
--- a/test/language/expressions/generators/arguments-with-arguments-lex.js
+++ b/test/language/expressions/generators/arguments-with-arguments-lex.js
@@ -16,6 +16,7 @@ info: |
          i. Let argumentsObjectNeeded be false.
   [...]
 flags: [noStrict]
+features: [generators]
 ---*/
 
 var args;
diff --git a/test/language/expressions/generators/default-proto.js b/test/language/expressions/generators/default-proto.js
index e60702f089..e5151e6e2b 100644
--- a/test/language/expressions/generators/default-proto.js
+++ b/test/language/expressions/generators/default-proto.js
@@ -24,6 +24,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
+features: [generators]
 ---*/
 
 var g = function*() {};
diff --git a/test/language/expressions/generators/dflt-params-abrupt.js b/test/language/expressions/generators/dflt-params-abrupt.js
index 42b32132b0..9d94328712 100644
--- a/test/language/expressions/generators/dflt-params-abrupt.js
+++ b/test/language/expressions/generators/dflt-params-abrupt.js
@@ -4,7 +4,7 @@
 /*---
 description: Abrupt completion returned by evaluation of initializer (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
@@ -37,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/generators/dflt-params-arg-val-not-undefined.js b/test/language/expressions/generators/dflt-params-arg-val-not-undefined.js
index 5ac89d6115..449a370842 100644
--- a/test/language/expressions/generators/dflt-params-arg-val-not-undefined.js
+++ b/test/language/expressions/generators/dflt-params-arg-val-not-undefined.js
@@ -4,7 +4,7 @@
 /*---
 description: Use of intializer when argument value is not `undefined` (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
@@ -37,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/generators/dflt-params-arg-val-undefined.js b/test/language/expressions/generators/dflt-params-arg-val-undefined.js
index 179d239d44..64d31ecb3f 100644
--- a/test/language/expressions/generators/dflt-params-arg-val-undefined.js
+++ b/test/language/expressions/generators/dflt-params-arg-val-undefined.js
@@ -4,7 +4,7 @@
 /*---
 description: Use of intializer when argument value is `undefined` (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
@@ -37,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/generators/dflt-params-duplicates.js b/test/language/expressions/generators/dflt-params-duplicates.js
index 2f0ce1b9ce..ee9fc95717 100644
--- a/test/language/expressions/generators/dflt-params-duplicates.js
+++ b/test/language/expressions/generators/dflt-params-duplicates.js
@@ -4,7 +4,7 @@
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 negative:
   phase: early
@@ -40,6 +40,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.2 Static Semantics: Early Errors
 
     StrictFormalParameters : FormalParameters
diff --git a/test/language/expressions/generators/dflt-params-ref-later.js b/test/language/expressions/generators/dflt-params-ref-later.js
index d8abc79f02..05e027f4fb 100644
--- a/test/language/expressions/generators/dflt-params-ref-later.js
+++ b/test/language/expressions/generators/dflt-params-ref-later.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
@@ -37,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/generators/dflt-params-ref-prior.js b/test/language/expressions/generators/dflt-params-ref-prior.js
index 065090c06d..e1c3b886da 100644
--- a/test/language/expressions/generators/dflt-params-ref-prior.js
+++ b/test/language/expressions/generators/dflt-params-ref-prior.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
@@ -37,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/generators/dflt-params-ref-self.js b/test/language/expressions/generators/dflt-params-ref-self.js
index 22fca77f2f..5ef648e36f 100644
--- a/test/language/expressions/generators/dflt-params-ref-self.js
+++ b/test/language/expressions/generators/dflt-params-ref-self.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter from within its own initializer (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
@@ -37,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/generators/dflt-params-rest.js b/test/language/expressions/generators/dflt-params-rest.js
index 958edbc397..47e49cd8eb 100644
--- a/test/language/expressions/generators/dflt-params-rest.js
+++ b/test/language/expressions/generators/dflt-params-rest.js
@@ -4,7 +4,7 @@
 /*---
 description: RestParameter does not support an initializer (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 negative:
   phase: early
@@ -40,6 +40,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1 Function Definitions
 
     Syntax
diff --git a/test/language/expressions/generators/dflt-params-trailing-comma.js b/test/language/expressions/generators/dflt-params-trailing-comma.js
index c787e175bd..a8dc137fde 100644
--- a/test/language/expressions/generators/dflt-params-trailing-comma.js
+++ b/test/language/expressions/generators/dflt-params-trailing-comma.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
+features: [generators]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
@@ -36,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/expressions/generators/dstr-ary-init-iter-close.js b/test/language/expressions/generators/dstr-ary-init-iter-close.js
index 48ab07296f..7d2347da3b 100644
--- a/test/language/expressions/generators/dstr-ary-init-iter-close.js
+++ b/test/language/expressions/generators/dstr-ary-init-iter-close.js
@@ -5,7 +5,7 @@
 description: Iterator is closed when not exhausted by pattern evaluation (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-init-iter-get-err.js b/test/language/expressions/generators/dstr-ary-init-iter-get-err.js
index bde748ea3f..fec9eaac1f 100644
--- a/test/language/expressions/generators/dstr-ary-init-iter-get-err.js
+++ b/test/language/expressions/generators/dstr-ary-init-iter-get-err.js
@@ -5,7 +5,7 @@
 description: Abrupt completion returned by GetIterator (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-init-iter-no-close.js b/test/language/expressions/generators/dstr-ary-init-iter-no-close.js
index 4e7ff934a3..6feca2a350 100644
--- a/test/language/expressions/generators/dstr-ary-init-iter-no-close.js
+++ b/test/language/expressions/generators/dstr-ary-init-iter-no-close.js
@@ -5,7 +5,7 @@
 description: Iterator is not closed when exhausted by pattern evaluation (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-name-iter-val.js b/test/language/expressions/generators/dstr-ary-name-iter-val.js
index abf1968043..62374beb93 100644
--- a/test/language/expressions/generators/dstr-ary-name-iter-val.js
+++ b/test/language/expressions/generators/dstr-ary-name-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding with normal value iteration (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-elem-init.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-elem-init.js
index 6ab9e851b1..8195d8c349 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-elem-init.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-elem-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-elem-iter.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-elem-iter.js
index 31dfd70046..9421c78904 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-elem-iter.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-elem-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-empty-init.js
index 89ac77a7e3..473715428c 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
@@ -49,6 +49,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-empty-iter.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-empty-iter.js
index e6592ec881..27ce312e86 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-empty-iter.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-empty-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-rest-init.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-rest-init.js
index bf4b564855..35340eae64 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-rest-init.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-rest-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-rest-iter.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-rest-iter.js
index 7ed60bb0ee..9848a26feb 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-rest-iter.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-rest-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-val-null.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-val-null.js
index 10e2ffb2ba..19cc08652f 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-val-null.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-ary-val-null.js
@@ -5,7 +5,7 @@
 description: Nested array destructuring with a null value (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-exhausted.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-exhausted.js
index 183c09e1b2..920663c9d3 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-exhausted.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-exhausted.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an exhausted iterator (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-arrow.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-arrow.js
index 0a8cbd1f2a..5026b7c686 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-arrow.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to arrow functions (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-class.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-class.js
index 7332f6399c..e0f1e11245 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-class.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-cover.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-cover.js
index 68c6b6cc80..f97b29ba5e 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-cover.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-fn.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-fn.js
index ed5baebb6b..78b5709922 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-fn.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
index d80f9c87b4..fb30f8c144 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
@@ -51,6 +51,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-hole.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-hole.js
index 7b010a94ec..afed944dbb 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-hole.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-hole.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with a "hole" (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-skipped.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-skipped.js
index 39dc1cdb9b..1f61e67e2f 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-skipped.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-throws.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-throws.js
index 89d6cb82b3..a5709f3c88 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-throws.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer returns an abrupt completion (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-undef.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-undef.js
index 0e9d19cdb5..b6fe4271fb 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-undef.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-undef.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an undefined value (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-unresolvable.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-unresolvable.js
index dc459a822e..e33fd88945 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-unresolvable.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-complete.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-complete.js
index 3e0642f53b..28cf6a7804 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-complete.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-complete.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration completes (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-done.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-done.js
index 7a31978018..49c74411e6 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-done.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-done.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-step-err.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-step-err.js
index 46d63e998b..9b6c339b00 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-step-err.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-step-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorStep returns an abrupt completion (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-val-err.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-val-err.js
index c771126d09..139c782749 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-val-err.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-val.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-val.js
index 6213084b7d..5d1a42bcbf 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-val.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-id-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-id-init.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-id-init.js
index bd94ebb5c2..1538b78a26 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-id-init.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-id.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-id.js
index 631bf5e0c4..5d392678da 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-id.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-prop-id-init.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-prop-id-init.js
index eae3628af4..c8dfbdb2d7 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-prop-id-init.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-prop-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-prop-id.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-prop-id.js
index c3ff53956a..c2e10f93c0 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-prop-id.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-val-null.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-val-null.js
index b054901be7..a14fc82193 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-val-null.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-val-null.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a null value (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-val-undef.js b/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-val-undef.js
index d64344d2c2..8408b18b5a 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-val-undef.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-elem-obj-val-undef.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a value of `undefined` (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-rest-ary-elem.js b/test/language/expressions/generators/dstr-ary-ptrn-rest-ary-elem.js
index 603dce2cf2..8c24f3ef06 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-rest-ary-elem.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-rest-ary-elem.js
@@ -5,7 +5,7 @@
 description: Rest element containing an array BindingElementList pattern (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-rest-ary-rest.js b/test/language/expressions/generators/dstr-ary-ptrn-rest-ary-rest.js
index 066513a1a1..bd81156f2a 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-rest-ary-rest.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-rest-ary-rest.js
@@ -5,7 +5,7 @@
 description: Rest element containing a rest element (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-rest-id-elision.js b/test/language/expressions/generators/dstr-ary-ptrn-rest-id-elision.js
index ac6f1e2bb1..79903672f4 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-rest-id-elision.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-rest-id-elision.js
@@ -5,7 +5,7 @@
 description: Rest element following elision elements (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-rest-id-exhausted.js b/test/language/expressions/generators/dstr-ary-ptrn-rest-id-exhausted.js
index aebe8dd495..d796ee4ae2 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-rest-id-exhausted.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-rest-id-exhausted.js
@@ -5,7 +5,7 @@
 description: RestElement applied to an exhausted iterator (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-rest-id-iter-val-err.js b/test/language/expressions/generators/dstr-ary-ptrn-rest-id-iter-val-err.js
index 480f6f877f..29d5a797a4 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-rest-id-iter-val-err.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-rest-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-rest-id.js b/test/language/expressions/generators/dstr-ary-ptrn-rest-id.js
index 882ed8f56a..7d3a8ef3d9 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-rest-id.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-rest-id.js
@@ -5,7 +5,7 @@
 description: Lone rest element (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-rest-init-ary.js b/test/language/expressions/generators/dstr-ary-ptrn-rest-init-ary.js
index eee8f3053e..0ea7492b66 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-rest-init-ary.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-rest-init-ary.js
@@ -5,7 +5,7 @@
 description: Reset element (nested array pattern) does not support initializer (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-rest-init-id.js b/test/language/expressions/generators/dstr-ary-ptrn-rest-init-id.js
index 6699674484..1f4fbe6beb 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-rest-init-id.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-rest-init-id.js
@@ -5,7 +5,7 @@
 description: Reset element (identifier) does not support initializer (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-rest-init-obj.js b/test/language/expressions/generators/dstr-ary-ptrn-rest-init-obj.js
index b6024d0380..eb679a7938 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-rest-init-obj.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-rest-init-obj.js
@@ -5,7 +5,7 @@
 description: Reset element (nested object pattern) does not support initializer (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-rest-not-final-ary.js b/test/language/expressions/generators/dstr-ary-ptrn-rest-not-final-ary.js
index 14984bb5fe..cddb1b2b2a 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-rest-not-final-ary.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-rest-not-final-ary.js
@@ -5,7 +5,7 @@
 description: Rest element (array binding pattern) may not be followed by any element (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-rest-not-final-id.js b/test/language/expressions/generators/dstr-ary-ptrn-rest-not-final-id.js
index b516364669..5df20c9aa5 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-rest-not-final-id.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-rest-not-final-id.js
@@ -5,7 +5,7 @@
 description: Rest element (identifier) may not be followed by any element (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-rest-not-final-obj.js b/test/language/expressions/generators/dstr-ary-ptrn-rest-not-final-obj.js
index 6449c4f65c..75fd5ac9b4 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-rest-not-final-obj.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-rest-not-final-obj.js
@@ -5,7 +5,7 @@
 description: Rest element (object binding pattern) may not be followed by any element (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-rest-obj-id.js b/test/language/expressions/generators/dstr-ary-ptrn-rest-obj-id.js
index f2ba6b8fd3..2dc40fc98d 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-rest-obj-id.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-rest-obj-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-ary-ptrn-rest-obj-prop-id.js b/test/language/expressions/generators/dstr-ary-ptrn-rest-obj-prop-id.js
index 07b9571534..f941b805ba 100644
--- a/test/language/expressions/generators/dstr-ary-ptrn-rest-obj-prop-id.js
+++ b/test/language/expressions/generators/dstr-ary-ptrn-rest-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-dflt-ary-init-iter-close.js b/test/language/expressions/generators/dstr-dflt-ary-init-iter-close.js
index 7d1631f70a..c651e714b6 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-init-iter-close.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-init-iter-close.js
@@ -5,7 +5,7 @@
 description: Iterator is closed when not exhausted by pattern evaluation (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-dflt-ary-init-iter-get-err.js b/test/language/expressions/generators/dstr-dflt-ary-init-iter-get-err.js
index eb15ac9b40..9310ece2ef 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-init-iter-get-err.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-init-iter-get-err.js
@@ -5,7 +5,7 @@
 description: Abrupt completion returned by GetIterator (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-dflt-ary-init-iter-no-close.js b/test/language/expressions/generators/dstr-dflt-ary-init-iter-no-close.js
index 5d81c1bf4f..58f618dfc0 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-init-iter-no-close.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-init-iter-no-close.js
@@ -5,7 +5,7 @@
 description: Iterator is not closed when exhausted by pattern evaluation (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-dflt-ary-name-iter-val.js b/test/language/expressions/generators/dstr-dflt-ary-name-iter-val.js
index 944761d578..5380101943 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-name-iter-val.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-name-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding with normal value iteration (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-ary-elem-init.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-elem-init.js
index 6916f60479..0bf9b4b275 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-elem-init.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-elem-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-ary-elem-iter.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-elem-iter.js
index 5dcf7c2cc0..4f3c1dbccf 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-elem-iter.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-elem-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-ary-empty-init.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
index ed0046f243..f2d0dcca03 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
@@ -49,6 +49,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-empty-iter.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-empty-iter.js
index d37226113f..188b74d3d6 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-empty-iter.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-empty-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-ary-rest-init.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-rest-init.js
index fd6a3f4784..d99e44a865 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-rest-init.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-rest-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-ary-rest-iter.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-rest-iter.js
index 13003c7c88..f0d0abb614 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-rest-iter.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-rest-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-ary-val-null.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-val-null.js
index cb75906384..d4ff6ab771 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-val-null.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-ary-val-null.js
@@ -5,7 +5,7 @@
 description: Nested array destructuring with a null value (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-id-init-exhausted.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-exhausted.js
index 72e82b7901..3da3fffd38 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-exhausted.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-exhausted.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an exhausted iterator (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-id-init-fn-name-arrow.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
index df14df54e1..41c6827b37 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to arrow functions (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-id-init-fn-name-class.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-class.js
index 7d57071a4f..15a89c0524 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-class.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-id-init-fn-name-cover.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
index 01ea45a27f..580a8c8775 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-id-init-fn-name-fn.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
index 28e4c130d0..f77695e0e4 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-id-init-fn-name-gen.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index 0f86aa51ee..0bb8b735c1 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
@@ -51,6 +51,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-hole.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-hole.js
index bb1b7d1090..e55704c57a 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-hole.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-hole.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with a "hole" (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-id-init-skipped.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-skipped.js
index ba78f7213d..c93146b91a 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-skipped.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-id-init-throws.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-throws.js
index d53269e637..1ac4eb7702 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-throws.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer returns an abrupt completion (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-id-init-undef.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-undef.js
index 1c08f8df0a..5a87472eae 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-undef.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-undef.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an undefined value (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-id-init-unresolvable.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-unresolvable.js
index 31d6c57a23..52d503ed07 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-unresolvable.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-id-iter-complete.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-iter-complete.js
index 3e3a2e9279..bc22fba129 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-iter-complete.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-iter-complete.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration completes (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-id-iter-done.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-iter-done.js
index f411e1e4e9..3a7560c951 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-iter-done.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-iter-done.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-id-iter-step-err.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-iter-step-err.js
index bb7a3e863d..fe5f8d0cf7 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-iter-step-err.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-iter-step-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorStep returns an abrupt completion (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-iter-val-err.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-iter-val-err.js
index 2dbdead86a..9b07d0d1e0 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-iter-val-err.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-iter-val.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-iter-val.js
index 74f9122e70..d21980e4f8 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-iter-val.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-id-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-obj-id-init.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-id-init.js
index d8b4d188cd..1167449eb6 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-id-init.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-obj-id.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-id.js
index 1913c0915d..7d01b6a70e 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-id.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-obj-prop-id-init.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-prop-id-init.js
index c5971e7173..9deb509f26 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-prop-id-init.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-prop-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-obj-prop-id.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-prop-id.js
index 1883135f4c..3d4e0a6651 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-prop-id.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-obj-val-null.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-val-null.js
index 7e21b8b34b..9cfb943a39 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-val-null.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-val-null.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a null value (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-elem-obj-val-undef.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-val-undef.js
index 8514cb8df0..6728fa9dc2 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-val-undef.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-elem-obj-val-undef.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a value of `undefined` (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-rest-ary-elem.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-ary-elem.js
index 011b8ff709..0f5f98b3da 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-ary-elem.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-ary-elem.js
@@ -5,7 +5,7 @@
 description: Rest element containing an array BindingElementList pattern (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-rest-ary-rest.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-ary-rest.js
index 4d5334cf2c..3614006f56 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-ary-rest.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-ary-rest.js
@@ -5,7 +5,7 @@
 description: Rest element containing a rest element (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-rest-id-elision.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-id-elision.js
index 7c462f574f..526fa0f8ba 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-id-elision.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-id-elision.js
@@ -5,7 +5,7 @@
 description: Rest element following elision elements (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-rest-id-exhausted.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-id-exhausted.js
index 89a1566103..8003a51f9d 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-id-exhausted.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-id-exhausted.js
@@ -5,7 +5,7 @@
 description: RestElement applied to an exhausted iterator (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-id-iter-val-err.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-id-iter-val-err.js
index 4128e7b732..685f79ffed 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-id-iter-val-err.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-id.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-id.js
index fdc046cfb2..6b5bc16560 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-id.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-id.js
@@ -5,7 +5,7 @@
 description: Lone rest element (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-rest-init-ary.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-ary.js
index 82829a557c..7a2a8e4cc8 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-ary.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-ary.js
@@ -5,7 +5,7 @@
 description: Reset element (nested array pattern) does not support initializer (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-id.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-id.js
index 9cabf0fa87..180da4daf2 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-id.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-id.js
@@ -5,7 +5,7 @@
 description: Reset element (identifier) does not support initializer (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-obj.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-obj.js
index 49544f2b1a..18a3a70b58 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-obj.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-obj.js
@@ -5,7 +5,7 @@
 description: Reset element (nested object pattern) does not support initializer (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-ary.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-ary.js
index 461db86931..7e96bf707d 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-ary.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-ary.js
@@ -5,7 +5,7 @@
 description: Rest element (array binding pattern) may not be followed by any element (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-id.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-id.js
index 006fbbb85c..61dc7e517b 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-id.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-id.js
@@ -5,7 +5,7 @@
 description: Rest element (identifier) may not be followed by any element (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-obj.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-obj.js
index 7ca5987719..ed605d02bb 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-obj.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-obj.js
@@ -5,7 +5,7 @@
 description: Rest element (object binding pattern) may not be followed by any element (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-obj-id.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-obj-id.js
index 9bf74f72bb..a2739571af 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-obj-id.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-obj-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-rest-obj-prop-id.js b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-obj-prop-id.js
index 17c92e9732..31a4f5d433 100644
--- a/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-obj-prop-id.js
+++ b/test/language/expressions/generators/dstr-dflt-ary-ptrn-rest-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-init-null.js b/test/language/expressions/generators/dstr-dflt-obj-init-null.js
index b7e66b3f1a..bbd51d6d93 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-init-null.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-init-null.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (null) (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-init-undefined.js b/test/language/expressions/generators/dstr-dflt-obj-init-undefined.js
index 89a1deefaa..aa02acb127 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-init-undefined.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-init-undefined.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (undefined) (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-empty.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-empty.js
index cb59ebe21a..c5f0108cc1 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-empty.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-empty.js
@@ -5,7 +5,7 @@
 description: No property access occurs for an "empty" object binding pattern (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-id-get-value-err.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-get-value-err.js
index aae92df13e..bafc9b8ae3 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-get-value-err.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-id-init-fn-name-arrow.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-fn-name-arrow.js
index 7b68171e5b..1bacac737c 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-fn-name-arrow.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to arrow functions (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-id-init-fn-name-class.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-fn-name-class.js
index 11b936dbe2..9181b717d1 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-fn-name-class.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-id-init-fn-name-cover.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-fn-name-cover.js
index 761d917844..23f6425084 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-fn-name-cover.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-id-init-fn-name-fn.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-fn-name-fn.js
index b1191972b0..e9d3c8d20c 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-fn-name-fn.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
index a5815cdc46..2c05f792c7 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
@@ -50,6 +50,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-skipped.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-skipped.js
index 849ad490c2..7976908fbf 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-skipped.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-id-init-throws.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-throws.js
index 58193b66aa..eb124afae4 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-throws.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-id-init-unresolvable.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-unresolvable.js
index f5fe5074dd..5fb8e2d467 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-unresolvable.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-id-trailing-comma.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-trailing-comma.js
index 5185cd6de3..98d2843048 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-trailing-comma.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-list-err.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-list-err.js
index 2a8aef33ef..cf66b1f902 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-list-err.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-list-err.js
@@ -5,7 +5,7 @@
 description: Binding property list evaluation is interrupted by an abrupt completion (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-prop-ary-init.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-ary-init.js
index 73b40f601b..aa1099989a 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-ary-init.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-ary-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern using initializer (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-prop-ary-trailing-comma.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-ary-trailing-comma.js
index ff5184c4dc..b553aec7cd 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-ary-trailing-comma.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-ary-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-prop-ary-value-null.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-ary-value-null.js
index efd1c8ed34..bf33e32cb7 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-ary-value-null.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-ary-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern taking the `null` value (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-prop-ary.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-ary.js
index 91c69d990b..a2d164974b 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-ary.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-ary.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern not using initializer (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-prop-eval-err.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-eval-err.js
index b1ffb43ebc..3153e50deb 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-eval-err.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-eval-err.js
@@ -5,7 +5,7 @@
 description: Evaluation of property name returns an abrupt completion (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-prop-id-get-value-err.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-get-value-err.js
index 6a13794dcc..7d2f52ed91 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-get-value-err.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-prop-id-init-skipped.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-init-skipped.js
index 3740ccf3ce..18b907ce1b 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-init-skipped.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-prop-id-init-throws.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-init-throws.js
index 70badd6c70..5b1b9ede44 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-init-throws.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-prop-id-init-unresolvable.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-init-unresolvable.js
index 6f2ee07c4a..e4e47f8a5f 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-init-unresolvable.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-prop-id-init.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-init.js
index 51c4d71130..2dd30cf192 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-init.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-init.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name, identifier, and initializer (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-prop-id-trailing-comma.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-trailing-comma.js
index d5bbb481bb..f935ef8d4f 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-trailing-comma.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-prop-id.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id.js
index b29981eb3c..4504ead53b 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-id.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name and identifier (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-prop-obj-init.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-obj-init.js
index ee8e5221fd..05fa91f853 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-obj-init.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-obj-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern using initializer (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-prop-obj-value-null.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-obj-value-null.js
index 2d1c92683f..3b99db4061 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-obj-value-null.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-obj-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-prop-obj-value-undef.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-obj-value-undef.js
index 2e69443b48..bb2f950285 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-obj-value-undef.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-obj-value-undef.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-prop-obj.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-obj.js
index 71167c9a6c..66670ed3d4 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-obj.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-prop-obj.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern not using initializer (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [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-obj-ptrn-rest-getter.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-getter.js
index 9e53ea8c5c..a6d09295fe 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-getter.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-getter.js
@@ -5,7 +5,7 @@
 description: Getter is called when obj is being deconstructed to a rest Object (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js
index bbb228f659..3b8ed5165e 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js
@@ -5,7 +5,7 @@
 description: Rest object doesn't contain non-enumerable properties (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-val-obj.js
index 5a38670cdb..44d5ecefd9 100644
--- a/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-val-obj.js
+++ b/test/language/expressions/generators/dstr-dflt-obj-ptrn-rest-val-obj.js
@@ -5,7 +5,7 @@
 description: Rest object contains just unextracted data (generator function expression (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/generators/dstr-obj-init-null.js b/test/language/expressions/generators/dstr-obj-init-null.js
index 80c44cd450..542ef0fd49 100644
--- a/test/language/expressions/generators/dstr-obj-init-null.js
+++ b/test/language/expressions/generators/dstr-obj-init-null.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (null) (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-init-undefined.js b/test/language/expressions/generators/dstr-obj-init-undefined.js
index 96416c4ad3..9b17c206f4 100644
--- a/test/language/expressions/generators/dstr-obj-init-undefined.js
+++ b/test/language/expressions/generators/dstr-obj-init-undefined.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (undefined) (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-empty.js b/test/language/expressions/generators/dstr-obj-ptrn-empty.js
index ba67f95775..3566fb4710 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-empty.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-empty.js
@@ -5,7 +5,7 @@
 description: No property access occurs for an "empty" object binding pattern (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-id-get-value-err.js b/test/language/expressions/generators/dstr-obj-ptrn-id-get-value-err.js
index e3d564c7f9..9701f7ea3a 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-id-get-value-err.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-arrow.js b/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-arrow.js
index 5ccfe777c3..d5138df2eb 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-arrow.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to arrow functions (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-class.js b/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-class.js
index 2d5584bd98..58011d682a 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-class.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-cover.js b/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-cover.js
index e7396ec06a..998b95cd15 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-cover.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-fn.js b/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-fn.js
index 802ae12a1d..9d51b200fd 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-fn.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-gen.js
index 07f43ae6bb..fa4f1d78f6 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
@@ -50,6 +50,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-id-init-skipped.js b/test/language/expressions/generators/dstr-obj-ptrn-id-init-skipped.js
index 5305377a6c..6dc33dff80 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-id-init-skipped.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-id-init-throws.js b/test/language/expressions/generators/dstr-obj-ptrn-id-init-throws.js
index c3519252dd..68c2f8f4ba 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-id-init-throws.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-id-init-unresolvable.js b/test/language/expressions/generators/dstr-obj-ptrn-id-init-unresolvable.js
index 71b79fbd97..0b3b5e37ce 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-id-init-unresolvable.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-id-trailing-comma.js b/test/language/expressions/generators/dstr-obj-ptrn-id-trailing-comma.js
index 5133d1bd8c..62ac9d2d1f 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-id-trailing-comma.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-list-err.js b/test/language/expressions/generators/dstr-obj-ptrn-list-err.js
index c7750e13f8..733122d5bf 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-list-err.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-list-err.js
@@ -5,7 +5,7 @@
 description: Binding property list evaluation is interrupted by an abrupt completion (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-prop-ary-init.js b/test/language/expressions/generators/dstr-obj-ptrn-prop-ary-init.js
index e11c7abad9..e54bb16782 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-prop-ary-init.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-prop-ary-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern using initializer (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-prop-ary-trailing-comma.js b/test/language/expressions/generators/dstr-obj-ptrn-prop-ary-trailing-comma.js
index ac53a5f136..223c5d5ab7 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-prop-ary-trailing-comma.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-prop-ary-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-prop-ary-value-null.js b/test/language/expressions/generators/dstr-obj-ptrn-prop-ary-value-null.js
index 8869ebe969..f86f693d67 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-prop-ary-value-null.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-prop-ary-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern taking the `null` value (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-prop-ary.js b/test/language/expressions/generators/dstr-obj-ptrn-prop-ary.js
index 1eb70547dc..b3e2ae5013 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-prop-ary.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-prop-ary.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern not using initializer (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-prop-eval-err.js b/test/language/expressions/generators/dstr-obj-ptrn-prop-eval-err.js
index 13ff987ec4..74e918bb1a 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-prop-eval-err.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-prop-eval-err.js
@@ -5,7 +5,7 @@
 description: Evaluation of property name returns an abrupt completion (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-prop-id-get-value-err.js b/test/language/expressions/generators/dstr-obj-ptrn-prop-id-get-value-err.js
index b2123cc0a8..66ed106da5 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-prop-id-get-value-err.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-prop-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-prop-id-init-skipped.js b/test/language/expressions/generators/dstr-obj-ptrn-prop-id-init-skipped.js
index b2629d369f..a222f0726c 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-prop-id-init-skipped.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-prop-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-prop-id-init-throws.js b/test/language/expressions/generators/dstr-obj-ptrn-prop-id-init-throws.js
index eef30e7cf9..575f45fac9 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-prop-id-init-throws.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-prop-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-prop-id-init-unresolvable.js b/test/language/expressions/generators/dstr-obj-ptrn-prop-id-init-unresolvable.js
index 4d4e741aa5..e225e0319c 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-prop-id-init-unresolvable.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-prop-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-prop-id-init.js b/test/language/expressions/generators/dstr-obj-ptrn-prop-id-init.js
index 2903ebac55..a81c20fa18 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-prop-id-init.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-prop-id-init.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name, identifier, and initializer (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-prop-id-trailing-comma.js b/test/language/expressions/generators/dstr-obj-ptrn-prop-id-trailing-comma.js
index 83717fda1e..43b893a8f2 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-prop-id-trailing-comma.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-prop-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-prop-id.js b/test/language/expressions/generators/dstr-obj-ptrn-prop-id.js
index 5668f147c5..9cd93e8afd 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-prop-id.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-prop-id.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name and identifier (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-prop-obj-init.js b/test/language/expressions/generators/dstr-obj-ptrn-prop-obj-init.js
index c1d855982d..970c44025a 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-prop-obj-init.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-prop-obj-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern using initializer (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-prop-obj-value-null.js b/test/language/expressions/generators/dstr-obj-ptrn-prop-obj-value-null.js
index 03a0be82a0..d1128e5800 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-prop-obj-value-null.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-prop-obj-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-prop-obj-value-undef.js b/test/language/expressions/generators/dstr-obj-ptrn-prop-obj-value-undef.js
index b0b28529d6..2e34c1a0cd 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-prop-obj-value-undef.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-prop-obj-value-undef.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-prop-obj.js b/test/language/expressions/generators/dstr-obj-ptrn-prop-obj.js
index 408aeb51a2..2711cc1f67 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-prop-obj.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-prop-obj.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern not using initializer (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-rest-getter.js b/test/language/expressions/generators/dstr-obj-ptrn-rest-getter.js
index 9ffbee0e0f..9689a1f0c1 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-rest-getter.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-rest-getter.js
@@ -5,7 +5,7 @@
 description: Getter is called when obj is being deconstructed to a rest Object (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js
index 4b1858a0b8..be00d54dc5 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js
@@ -5,7 +5,7 @@
 description: Rest object doesn't contain non-enumerable properties (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/generators/dstr-obj-ptrn-rest-val-obj.js b/test/language/expressions/generators/dstr-obj-ptrn-rest-val-obj.js
index 3043dd5244..5da088e3a3 100644
--- a/test/language/expressions/generators/dstr-obj-ptrn-rest-val-obj.js
+++ b/test/language/expressions/generators/dstr-obj-ptrn-rest-val-obj.js
@@ -5,7 +5,7 @@
 description: Rest object contains just unextracted data (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/generators/eval-body-proto-realm.js b/test/language/expressions/generators/eval-body-proto-realm.js
index 3e809387c1..5bd51e88c0 100644
--- a/test/language/expressions/generators/eval-body-proto-realm.js
+++ b/test/language/expressions/generators/eval-body-proto-realm.js
@@ -18,7 +18,7 @@ info: >
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [cross-realm]
+features: [generators, cross-realm]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/language/expressions/generators/has-instance.js b/test/language/expressions/generators/has-instance.js
index b49d7c44c4..0dba1ccee0 100644
--- a/test/language/expressions/generators/has-instance.js
+++ b/test/language/expressions/generators/has-instance.js
@@ -5,6 +5,7 @@
 description: >
     A Generator object is an instance of a generator function.
 es6id: 25.3
+features: [generators]
 ---*/
 
 var g = function*() {};
diff --git a/test/language/expressions/generators/implicit-name.js b/test/language/expressions/generators/implicit-name.js
index 3ad2377291..8d08b094a8 100644
--- a/test/language/expressions/generators/implicit-name.js
+++ b/test/language/expressions/generators/implicit-name.js
@@ -7,6 +7,7 @@ info: >
 es6id: 14.4
 author: Sam Mikes
 description: can create generator function expressions (no name)
+features: [generators]
 ---*/
 
 var f = function *(a) { yield a+1; return; };
diff --git a/test/language/expressions/generators/invoke-as-constructor.js b/test/language/expressions/generators/invoke-as-constructor.js
index ada8990b1b..ce8e23c810 100644
--- a/test/language/expressions/generators/invoke-as-constructor.js
+++ b/test/language/expressions/generators/invoke-as-constructor.js
@@ -5,6 +5,7 @@
 description: >
     Generator expressions cannot be used as constructors.
 es6id: 14.4
+features: [generators]
 ---*/
 
 var g = function*(){};
diff --git a/test/language/expressions/generators/length-dflt.js b/test/language/expressions/generators/length-dflt.js
index 8ea33c7934..aa3f6ccabf 100644
--- a/test/language/expressions/generators/length-dflt.js
+++ b/test/language/expressions/generators/length-dflt.js
@@ -26,7 +26,7 @@ info: |
     2. If HasInitializer of FormalsList is true or HasInitializer of
     FormalParameter is true, return count.
     3. Return count+1.
-features: [default-parameters]
+features: [generators, default-parameters]
 includes: [propertyHelper.js]
 ---*/
 
diff --git a/test/language/expressions/generators/length-property-descriptor.js b/test/language/expressions/generators/length-property-descriptor.js
index 5a59808638..50885d987c 100644
--- a/test/language/expressions/generators/length-property-descriptor.js
+++ b/test/language/expressions/generators/length-property-descriptor.js
@@ -6,6 +6,7 @@ description: >
     Generator objects should define a `length` property.
 includes: [propertyHelper.js]
 es6id: 25.2.4
+features: [generators]
 ---*/
 
 var g = function*() {};
diff --git a/test/language/expressions/generators/name.js b/test/language/expressions/generators/name.js
index 765a34f0b3..5ac2936895 100644
--- a/test/language/expressions/generators/name.js
+++ b/test/language/expressions/generators/name.js
@@ -21,6 +21,7 @@ info: >
     [...]
     10. Perform SetFunctionName(closure, name).
 includes: [propertyHelper.js]
+features: [generators]
 ---*/
 
 assert.sameValue(Object.hasOwnProperty.call(function*() {}, 'name'), false);
diff --git a/test/language/expressions/generators/named-yield-as-binding-identifier-escaped.js b/test/language/expressions/generators/named-yield-as-binding-identifier-escaped.js
index 90a3163868..7dff1f436b 100644
--- a/test/language/expressions/generators/named-yield-as-binding-identifier-escaped.js
+++ b/test/language/expressions/generators/named-yield-as-binding-identifier-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a binding identifier. (Named generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     BindingIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/generators/named-yield-as-binding-identifier.js b/test/language/expressions/generators/named-yield-as-binding-identifier.js
index e61d8e68da..428f1e91a2 100644
--- a/test/language/expressions/generators/named-yield-as-binding-identifier.js
+++ b/test/language/expressions/generators/named-yield-as-binding-identifier.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a binding identifier. (Named generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     BindingIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/generators/named-yield-as-identifier-reference-escaped.js b/test/language/expressions/generators/named-yield-as-identifier-reference-escaped.js
index 199162ba30..8c09ff348a 100644
--- a/test/language/expressions/generators/named-yield-as-identifier-reference-escaped.js
+++ b/test/language/expressions/generators/named-yield-as-identifier-reference-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as an identifier reference. (Named generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     IdentifierReference : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/generators/named-yield-as-identifier-reference.js b/test/language/expressions/generators/named-yield-as-identifier-reference.js
index be547b86f2..5ff676ca02 100644
--- a/test/language/expressions/generators/named-yield-as-identifier-reference.js
+++ b/test/language/expressions/generators/named-yield-as-identifier-reference.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as an identifier reference. (Named generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     IdentifierReference : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/generators/named-yield-as-label-identifier-escaped.js b/test/language/expressions/generators/named-yield-as-label-identifier-escaped.js
index fe30eeb91f..ed50e248dc 100644
--- a/test/language/expressions/generators/named-yield-as-label-identifier-escaped.js
+++ b/test/language/expressions/generators/named-yield-as-label-identifier-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a label identifier. (Named generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     LabelIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/generators/named-yield-as-label-identifier.js b/test/language/expressions/generators/named-yield-as-label-identifier.js
index b142772bc1..a849fc2d83 100644
--- a/test/language/expressions/generators/named-yield-as-label-identifier.js
+++ b/test/language/expressions/generators/named-yield-as-label-identifier.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a label identifier. (Named generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     LabelIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/generators/named-yield-identifier-non-strict.js b/test/language/expressions/generators/named-yield-identifier-non-strict.js
index 857edb209b..9a683e37ff 100644
--- a/test/language/expressions/generators/named-yield-identifier-non-strict.js
+++ b/test/language/expressions/generators/named-yield-identifier-non-strict.js
@@ -4,12 +4,14 @@
 /*---
 description: Use of yield as a valid identifier in a function body inside a generator body in non strict mode (Generator named expression - valid for non-strict only cases)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated, noStrict]
 info: |
     14.4 Generator Function Definitions
 
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/generators/named-yield-identifier-spread-non-strict.js b/test/language/expressions/generators/named-yield-identifier-spread-non-strict.js
index 4fdc23550b..54121d9cc4 100644
--- a/test/language/expressions/generators/named-yield-identifier-spread-non-strict.js
+++ b/test/language/expressions/generators/named-yield-identifier-spread-non-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: Mixed use of object spread and yield as a valid identifier in a function body inside a generator body in non strict mode (Generator named expression - valid for non-strict only cases)
 esid: prod-GeneratorExpression
-features: [Symbol, object-spread]
+features: [Symbol, object-spread, generators]
 flags: [generated, noStrict]
 info: |
     14.4 Generator Function Definitions
@@ -12,6 +12,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/generators/named-yield-identifier-spread-strict.js b/test/language/expressions/generators/named-yield-identifier-spread-strict.js
index 2ef3e7ebac..cf6059eb09 100644
--- a/test/language/expressions/generators/named-yield-identifier-spread-strict.js
+++ b/test/language/expressions/generators/named-yield-identifier-spread-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: It's an early error if the AssignmentExpression is a function body with yield as an identifier in strict mode. (Named generator expression)
 esid: prod-GeneratorExpression
-features: [object-spread]
+features: [object-spread, generators]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -15,6 +15,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/generators/named-yield-identifier-strict.js b/test/language/expressions/generators/named-yield-identifier-strict.js
index 95dd820dbf..c4f22d1441 100644
--- a/test/language/expressions/generators/named-yield-identifier-strict.js
+++ b/test/language/expressions/generators/named-yield-identifier-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: It's an early error if the generator body has another function body with yield as an identifier in strict mode. (Named generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -13,6 +14,7 @@ info: |
 
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
+
 ---*/
 throw "Test262: This statement should not be evaluated.";
 
diff --git a/test/language/expressions/generators/named-yield-spread-arr-multiple.js b/test/language/expressions/generators/named-yield-spread-arr-multiple.js
index 616f13cb4b..2dbbe051a2 100644
--- a/test/language/expressions/generators/named-yield-spread-arr-multiple.js
+++ b/test/language/expressions/generators/named-yield-spread-arr-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Named generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated]
 includes: [compareArray.js]
 info: |
@@ -12,6 +13,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/generators/named-yield-spread-arr-single.js b/test/language/expressions/generators/named-yield-spread-arr-single.js
index b0bd3194ef..b9838b5e81 100644
--- a/test/language/expressions/generators/named-yield-spread-arr-single.js
+++ b/test/language/expressions/generators/named-yield-spread-arr-single.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Named generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated]
 info: |
     14.4 Generator Function Definitions
@@ -11,6 +12,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/generators/named-yield-spread-obj.js b/test/language/expressions/generators/named-yield-spread-obj.js
index 8688561476..f2c0afeffe 100644
--- a/test/language/expressions/generators/named-yield-spread-obj.js
+++ b/test/language/expressions/generators/named-yield-spread-obj.js
@@ -4,7 +4,7 @@
 /*---
 description: Use yield value in a object spread position (Named generator expression)
 esid: prod-GeneratorExpression
-features: [object-spread]
+features: [object-spread, generators]
 flags: [generated]
 includes: [compareArray.js]
 info: |
@@ -13,6 +13,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/generators/no-name.js b/test/language/expressions/generators/no-name.js
index c219aba95f..ec95f3c17c 100644
--- a/test/language/expressions/generators/no-name.js
+++ b/test/language/expressions/generators/no-name.js
@@ -7,6 +7,7 @@ info: >
 es6id: 14.4
 author: Sam Mikes
 description: can create generator function expressions (no name)
+features: [generators]
 ---*/
 
 var a = [function *(a) { yield a+1; return; }];
diff --git a/test/language/expressions/generators/no-yield.js b/test/language/expressions/generators/no-yield.js
index b172b0e2a8..28870621a7 100644
--- a/test/language/expressions/generators/no-yield.js
+++ b/test/language/expressions/generators/no-yield.js
@@ -2,11 +2,12 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      Generators declared with GeneratorExpression syntax do not require a
-      `yield` expression.
-  es6id: 14.4
- ---*/
+description: >
+    Generators declared with GeneratorExpression syntax do not require a
+    `yield` expression.
+es6id: 14.4
+features: [generators]
+---*/
 
 var result;
 var foo = function*(a) {};
diff --git a/test/language/expressions/generators/param-dflt-yield.js b/test/language/expressions/generators/param-dflt-yield.js
index de11a15bd1..3ae1def943 100644
--- a/test/language/expressions/generators/param-dflt-yield.js
+++ b/test/language/expressions/generators/param-dflt-yield.js
@@ -14,7 +14,7 @@ info: |
   YieldExpression cannot be used within the FormalParameters of a generator
   function because any expressions that are part of FormalParameters are
   evaluated before the resulting generator object is in a resumable state.
-features: [default-parameters]
+features: [generators, default-parameters]
 negative:
   phase: early
   type: SyntaxError
diff --git a/test/language/expressions/generators/params-dflt-args-unmapped.js b/test/language/expressions/generators/params-dflt-args-unmapped.js
index 4709ee5b10..ec9ec42558 100644
--- a/test/language/expressions/generators/params-dflt-args-unmapped.js
+++ b/test/language/expressions/generators/params-dflt-args-unmapped.js
@@ -4,7 +4,7 @@
 description: Referencing the arguments object from a default parameter (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [default-parameters]
+features: [generators, default-parameters]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
 
diff --git a/test/language/expressions/generators/params-dflt-ref-arguments.js b/test/language/expressions/generators/params-dflt-ref-arguments.js
index 7721f8881e..9c7d2ac676 100644
--- a/test/language/expressions/generators/params-dflt-ref-arguments.js
+++ b/test/language/expressions/generators/params-dflt-ref-arguments.js
@@ -4,7 +4,7 @@
 description: Referencing the arguments object from a default parameter (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
 es6id: 14.4.14
-features: [default-parameters]
+features: [generators, default-parameters]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
 
diff --git a/test/language/expressions/generators/params-trailing-comma-multiple.js b/test/language/expressions/generators/params-trailing-comma-multiple.js
index 557ec68595..13aa5d43ba 100644
--- a/test/language/expressions/generators/params-trailing-comma-multiple.js
+++ b/test/language/expressions/generators/params-trailing-comma-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
+features: [generators]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
@@ -36,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/expressions/generators/params-trailing-comma-single.js b/test/language/expressions/generators/params-trailing-comma-single.js
index 25df59033a..298aef0347 100644
--- a/test/language/expressions/generators/params-trailing-comma-single.js
+++ b/test/language/expressions/generators/params-trailing-comma-single.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
+features: [generators]
 flags: [generated]
 info: |
     GeneratorExpression : function * ( FormalParameters ) { GeneratorBody }
@@ -36,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/expressions/generators/prototype-own-properties.js b/test/language/expressions/generators/prototype-own-properties.js
index e46c3c38eb..e902573f64 100644
--- a/test/language/expressions/generators/prototype-own-properties.js
+++ b/test/language/expressions/generators/prototype-own-properties.js
@@ -5,6 +5,7 @@ es6id: 25.2.4.2
 description: >
     The `prototype` property of GeneratorFunction instances are created as
     plain objects with no "own" properties.
+features: [generators]
 ---*/
 
 var ownProperties = Object.getOwnPropertyNames(function*() {}.prototype);
diff --git a/test/language/expressions/generators/prototype-property-descriptor.js b/test/language/expressions/generators/prototype-property-descriptor.js
index 9bef1294ed..9891bb261d 100644
--- a/test/language/expressions/generators/prototype-property-descriptor.js
+++ b/test/language/expressions/generators/prototype-property-descriptor.js
@@ -6,6 +6,7 @@ description: >
     Generator objects should define a `prototype` property.
 includes: [propertyHelper.js]
 es6id: 25.2.4
+features: [generators]
 ---*/
 
 var g = function*() {};
diff --git a/test/language/expressions/generators/prototype-relation-to-function.js b/test/language/expressions/generators/prototype-relation-to-function.js
index 9bb13afc00..4c85579cc3 100644
--- a/test/language/expressions/generators/prototype-relation-to-function.js
+++ b/test/language/expressions/generators/prototype-relation-to-function.js
@@ -6,6 +6,7 @@ description: >
     The value of the [[Prototype]] internal slot of the GeneratorFunction
     prototype object is the FunctionPrototype intrinsic object.
 es6id: 25.2.2.2
+features: [generators]
 ---*/
 
 function f() {}
diff --git a/test/language/expressions/generators/prototype-typeof.js b/test/language/expressions/generators/prototype-typeof.js
index 737f566902..fd421aab70 100644
--- a/test/language/expressions/generators/prototype-typeof.js
+++ b/test/language/expressions/generators/prototype-typeof.js
@@ -6,6 +6,7 @@ description: >
     Whenever a GeneratorFunction instance is created another ordinary object is
     also created and is the initial value of the generator function’s prototype
     property.
+features: [generators]
 ---*/
 
 assert.sameValue(typeof function*() {}.prototype, 'object');
diff --git a/test/language/expressions/generators/prototype-uniqueness.js b/test/language/expressions/generators/prototype-uniqueness.js
index 015362f943..ecc2a9f5a1 100644
--- a/test/language/expressions/generators/prototype-uniqueness.js
+++ b/test/language/expressions/generators/prototype-uniqueness.js
@@ -5,6 +5,7 @@
 description: >
     GeneratorFunction instances are created with a unique prototype object.
 es6id: 25.2.1
+features: [generators]
 ---*/
 
 var g1 = function*() {};
diff --git a/test/language/expressions/generators/prototype-value.js b/test/language/expressions/generators/prototype-value.js
index 2a0055de7a..3f64726828 100644
--- a/test/language/expressions/generators/prototype-value.js
+++ b/test/language/expressions/generators/prototype-value.js
@@ -7,6 +7,7 @@ description: >
     value of the prototype property of the Generator function that created the
     instance.
 es6id: 25.3
+features: [generators]
 ---*/
 
 var g = function*() {};
diff --git a/test/language/expressions/generators/rest-params-trailing-comma-early-error.js b/test/language/expressions/generators/rest-params-trailing-comma-early-error.js
index 281acd32e3..8de0b948bc 100644
--- a/test/language/expressions/generators/rest-params-trailing-comma-early-error.js
+++ b/test/language/expressions/generators/rest-params-trailing-comma-early-error.js
@@ -4,6 +4,7 @@
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (generator function expression)
 esid: sec-generator-function-definitions-runtime-semantics-evaluation
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -39,6 +40,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/expressions/generators/return.js b/test/language/expressions/generators/return.js
index 2d7822cb47..7721abb6d7 100644
--- a/test/language/expressions/generators/return.js
+++ b/test/language/expressions/generators/return.js
@@ -2,10 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `return` is a valid statement within generator function bodies.
-  es6id: 14.4
- ---*/
+description: >
+    `return` is a valid statement within generator function bodies.
+es6id: 14.4
+features: [generators]
+---*/
 
 var result;
 var g1 = function*() { return; };
diff --git a/test/language/expressions/generators/scope-body-lex-distinct.js b/test/language/expressions/generators/scope-body-lex-distinct.js
index f793b54985..2dd19ecf25 100644
--- a/test/language/expressions/generators/scope-body-lex-distinct.js
+++ b/test/language/expressions/generators/scope-body-lex-distinct.js
@@ -40,7 +40,7 @@ info: |
                     like-named lexical declaration.
           iii. Let thisLex be thisLex's outer environment reference.
 flags: [noStrict]
-features: [let]
+features: [generators, let]
 ---*/
 
 var g = function*() {
diff --git a/test/language/expressions/generators/scope-name-var-close.js b/test/language/expressions/generators/scope-name-var-close.js
index b163c1c013..d9317b2cd6 100644
--- a/test/language/expressions/generators/scope-name-var-close.js
+++ b/test/language/expressions/generators/scope-name-var-close.js
@@ -13,6 +13,7 @@ info: |
     7. Let closure be GeneratorFunctionCreate(Normal, FormalParameters,
        GeneratorBody, funcEnv, strict).
     [...]
+features: [generators]
 ---*/
 
 var probe;
diff --git a/test/language/expressions/generators/scope-name-var-open-non-strict.js b/test/language/expressions/generators/scope-name-var-open-non-strict.js
index f15ae6c498..ee80bde68c 100644
--- a/test/language/expressions/generators/scope-name-var-open-non-strict.js
+++ b/test/language/expressions/generators/scope-name-var-open-non-strict.js
@@ -16,6 +16,7 @@ info: |
        GeneratorBody, funcEnv, strict).
     [...]
 flags: [noStrict]
+features: [generators]
 ---*/
 
 var g = 'outside';
diff --git a/test/language/expressions/generators/scope-name-var-open-strict.js b/test/language/expressions/generators/scope-name-var-open-strict.js
index 2ba37c432a..73c41f5c04 100644
--- a/test/language/expressions/generators/scope-name-var-open-strict.js
+++ b/test/language/expressions/generators/scope-name-var-open-strict.js
@@ -16,6 +16,7 @@ info: |
        GeneratorBody, funcEnv, strict).
     [...]
 flags: [onlyStrict]
+features: [generators]
 ---*/
 
 var g = 'outside';
diff --git a/test/language/expressions/generators/scope-param-elem-var-close.js b/test/language/expressions/generators/scope-param-elem-var-close.js
index a96e2a67d9..1ab9b37209 100644
--- a/test/language/expressions/generators/scope-param-elem-var-close.js
+++ b/test/language/expressions/generators/scope-param-elem-var-close.js
@@ -15,6 +15,7 @@ info: |
     11. Set the LexicalEnvironment of currentContext to originalEnv.
     [...]
 flags: [noStrict]
+features: [generators]
 ---*/
 
 var x = 'outside';
diff --git a/test/language/expressions/generators/scope-param-elem-var-open.js b/test/language/expressions/generators/scope-param-elem-var-open.js
index 3f2be0385d..0e1b928285 100644
--- a/test/language/expressions/generators/scope-param-elem-var-open.js
+++ b/test/language/expressions/generators/scope-param-elem-var-open.js
@@ -16,6 +16,7 @@ info: |
     11. Set the LexicalEnvironment of currentContext to originalEnv.
     [...]
 flags: [noStrict]
+features: [generators]
 ---*/
 
 var x = 'outside';
diff --git a/test/language/expressions/generators/scope-param-rest-elem-var-close.js b/test/language/expressions/generators/scope-param-rest-elem-var-close.js
index 019ac5e9f8..2081c5ae5d 100644
--- a/test/language/expressions/generators/scope-param-rest-elem-var-close.js
+++ b/test/language/expressions/generators/scope-param-rest-elem-var-close.js
@@ -21,6 +21,7 @@ info: |
     11. Set the LexicalEnvironment of currentContext to originalEnv.
     [...]
 flags: [noStrict]
+features: [generators]
 ---*/
 
 var x = 'outside';
diff --git a/test/language/expressions/generators/scope-param-rest-elem-var-open.js b/test/language/expressions/generators/scope-param-rest-elem-var-open.js
index acc0a06e8e..4bb3734fea 100644
--- a/test/language/expressions/generators/scope-param-rest-elem-var-open.js
+++ b/test/language/expressions/generators/scope-param-rest-elem-var-open.js
@@ -21,6 +21,7 @@ info: |
     11. Set the LexicalEnvironment of currentContext to originalEnv.
     [...]
 flags: [noStrict]
+features: [generators]
 ---*/
 
 var x = 'outside';
diff --git a/test/language/expressions/generators/scope-paramsbody-var-close.js b/test/language/expressions/generators/scope-paramsbody-var-close.js
index 520b549c9a..0d5dfc0641 100644
--- a/test/language/expressions/generators/scope-paramsbody-var-close.js
+++ b/test/language/expressions/generators/scope-paramsbody-var-close.js
@@ -17,6 +17,7 @@ info: |
         d. Set the VariableEnvironment of calleeContext to varEnv.
         e. Let instantiatedVarNames be a new empty List.
         [...]
+features: [generators]
 ---*/
 
 var probe;
diff --git a/test/language/expressions/generators/scope-paramsbody-var-open.js b/test/language/expressions/generators/scope-paramsbody-var-open.js
index d36a986079..9ca79835f7 100644
--- a/test/language/expressions/generators/scope-paramsbody-var-open.js
+++ b/test/language/expressions/generators/scope-paramsbody-var-open.js
@@ -18,6 +18,7 @@ info: |
         d. Set the VariableEnvironment of calleeContext to varEnv.
         e. Let instantiatedVarNames be a new empty List.
         [...]
+features: [generators]
 ---*/
 
 var x = 'outside';
diff --git a/test/language/expressions/generators/use-strict-with-non-simple-param.js b/test/language/expressions/generators/use-strict-with-non-simple-param.js
index 209f0eee4c..6eb523b0c5 100644
--- a/test/language/expressions/generators/use-strict-with-non-simple-param.js
+++ b/test/language/expressions/generators/use-strict-with-non-simple-param.js
@@ -12,6 +12,7 @@ info: >
 negative:
   phase: early
   type: SyntaxError
+features: [generators]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/test/language/expressions/generators/yield-as-binding-identifier-escaped.js b/test/language/expressions/generators/yield-as-binding-identifier-escaped.js
index 716f8adae7..415faaefd2 100644
--- a/test/language/expressions/generators/yield-as-binding-identifier-escaped.js
+++ b/test/language/expressions/generators/yield-as-binding-identifier-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a binding identifier. (Unnamed generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     BindingIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/generators/yield-as-binding-identifier.js b/test/language/expressions/generators/yield-as-binding-identifier.js
index c6ef881af1..9ab3e7e043 100644
--- a/test/language/expressions/generators/yield-as-binding-identifier.js
+++ b/test/language/expressions/generators/yield-as-binding-identifier.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a binding identifier. (Unnamed generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     BindingIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/generators/yield-as-function-expression-binding-identifier.js b/test/language/expressions/generators/yield-as-function-expression-binding-identifier.js
index 3cc20907a6..a04021f4ff 100644
--- a/test/language/expressions/generators/yield-as-function-expression-binding-identifier.js
+++ b/test/language/expressions/generators/yield-as-function-expression-binding-identifier.js
@@ -2,12 +2,13 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` may be used as the binding identifier of a function expression
-      within generator bodies.
-  es6id: 14.1
-  flags: [noStrict]
- ---*/
+description: >
+    `yield` may be used as the binding identifier of a function expression
+    within generator bodies.
+es6id: 14.1
+flags: [noStrict]
+features: [generators]
+---*/
 
 var result;
 var g = function*() {
diff --git a/test/language/expressions/generators/yield-as-generator-expression-binding-identifier.js b/test/language/expressions/generators/yield-as-generator-expression-binding-identifier.js
index 6e9a1cc3a7..a3ae147f49 100644
--- a/test/language/expressions/generators/yield-as-generator-expression-binding-identifier.js
+++ b/test/language/expressions/generators/yield-as-generator-expression-binding-identifier.js
@@ -2,14 +2,15 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` is not a valid BindingIdentifier for GeneratorExpressions.
-  es6id: 12.1.1
-  flags: [noStrict]
-  negative:
-    phase: early
-    type: SyntaxError
- ---*/
+description: >
+    `yield` is not a valid BindingIdentifier for GeneratorExpressions.
+es6id: 12.1.1
+flags: [noStrict]
+negative:
+  phase: early
+  type: SyntaxError
+features: [generators]
+---*/
 
 throw "Test262: This statement should not be evaluated.";
 
diff --git a/test/language/expressions/generators/yield-as-identifier-in-nested-function.js b/test/language/expressions/generators/yield-as-identifier-in-nested-function.js
index 141526e761..cccfd3adc1 100644
--- a/test/language/expressions/generators/yield-as-identifier-in-nested-function.js
+++ b/test/language/expressions/generators/yield-as-identifier-in-nested-function.js
@@ -2,12 +2,13 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` is not a reserved keyword within normal function bodies declared
-      within generator function bodies.
-  es6id: 12.1.1
-  flags: [noStrict]
- ---*/
+description: >
+    `yield` is not a reserved keyword within normal function bodies declared
+    within generator function bodies.
+es6id: 12.1.1
+flags: [noStrict]
+features: [generators]
+---*/
 
 var result;
 var g = function*() {
diff --git a/test/language/expressions/generators/yield-as-identifier-reference-escaped.js b/test/language/expressions/generators/yield-as-identifier-reference-escaped.js
index 3776e6d7cd..1303749a40 100644
--- a/test/language/expressions/generators/yield-as-identifier-reference-escaped.js
+++ b/test/language/expressions/generators/yield-as-identifier-reference-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as an identifier reference. (Unnamed generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     IdentifierReference : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/generators/yield-as-identifier-reference.js b/test/language/expressions/generators/yield-as-identifier-reference.js
index 841f0646ed..411bce157f 100644
--- a/test/language/expressions/generators/yield-as-identifier-reference.js
+++ b/test/language/expressions/generators/yield-as-identifier-reference.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as an identifier reference. (Unnamed generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     IdentifierReference : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/generators/yield-as-label-identifier-escaped.js b/test/language/expressions/generators/yield-as-label-identifier-escaped.js
index fff0044f40..5b7e023b76 100644
--- a/test/language/expressions/generators/yield-as-label-identifier-escaped.js
+++ b/test/language/expressions/generators/yield-as-label-identifier-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a label identifier. (Unnamed generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     LabelIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/generators/yield-as-label-identifier.js b/test/language/expressions/generators/yield-as-label-identifier.js
index d13435b71f..5af1a67bc7 100644
--- a/test/language/expressions/generators/yield-as-label-identifier.js
+++ b/test/language/expressions/generators/yield-as-label-identifier.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a label identifier. (Unnamed generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     LabelIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/generators/yield-as-literal-property-name.js b/test/language/expressions/generators/yield-as-literal-property-name.js
index 7d5cfc7a19..08e0e4b05c 100644
--- a/test/language/expressions/generators/yield-as-literal-property-name.js
+++ b/test/language/expressions/generators/yield-as-literal-property-name.js
@@ -2,11 +2,12 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` may be used as a literal property name in an object literal
-      within generator function bodies.
-  es6id: 12.1.1
- ---*/
+description: >
+    `yield` may be used as a literal property name in an object literal
+    within generator function bodies.
+es6id: 12.1.1
+features: [generators]
+---*/
 
 var result;
 var g = function*() {
diff --git a/test/language/expressions/generators/yield-as-logical-or-expression.js b/test/language/expressions/generators/yield-as-logical-or-expression.js
index f1329a595a..83bdf64416 100644
--- a/test/language/expressions/generators/yield-as-logical-or-expression.js
+++ b/test/language/expressions/generators/yield-as-logical-or-expression.js
@@ -2,13 +2,14 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` expressions are not LogicalOrExpressions.
-  es6id: 12.1.1
-  negative:
-    phase: early
-    type: SyntaxError
- ---*/
+description: >
+    `yield` expressions are not LogicalOrExpressions.
+es6id: 12.1.1
+negative:
+  phase: early
+  type: SyntaxError
+features: [generators]
+---*/
 
 throw "Test262: This statement should not be evaluated.";
 
diff --git a/test/language/expressions/generators/yield-as-parameter.js b/test/language/expressions/generators/yield-as-parameter.js
index b3217a9a3f..0a39a129c6 100644
--- a/test/language/expressions/generators/yield-as-parameter.js
+++ b/test/language/expressions/generators/yield-as-parameter.js
@@ -2,14 +2,15 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` is a reserved keyword within generator function bodies and may
-      not be used as the binding identifier of a parameter.
-  es6id: 12.1.1
-  negative:
-    phase: early
-    type: SyntaxError
- ---*/
+description: >
+    `yield` is a reserved keyword within generator function bodies and may
+    not be used as the binding identifier of a parameter.
+es6id: 12.1.1
+negative:
+  phase: early
+  type: SyntaxError
+features: [generators]
+---*/
 
 throw "Test262: This statement should not be evaluated.";
 
diff --git a/test/language/expressions/generators/yield-as-property-name.js b/test/language/expressions/generators/yield-as-property-name.js
index 90feae5313..353c72f1a4 100644
--- a/test/language/expressions/generators/yield-as-property-name.js
+++ b/test/language/expressions/generators/yield-as-property-name.js
@@ -2,11 +2,12 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` may be used as a literal property name in an object literal
-      within generator function bodies.
-  es6id: 12.1.1
- ---*/
+description: >
+    `yield` may be used as a literal property name in an object literal
+    within generator function bodies.
+es6id: 12.1.1
+features: [generators]
+---*/
 
 var result;
 var g = function*() {
diff --git a/test/language/expressions/generators/yield-as-statement.js b/test/language/expressions/generators/yield-as-statement.js
index 30ff098592..c1f31b8fc7 100644
--- a/test/language/expressions/generators/yield-as-statement.js
+++ b/test/language/expressions/generators/yield-as-statement.js
@@ -2,10 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` is a valid statement within generator function bodies.
-  es6id: 14.4
- ---*/
+description: >
+    `yield` is a valid statement within generator function bodies.
+es6id: 14.4
+features: [generators]
+---*/
 
 var iter, result;
 var g1 = function*() { yield; };
diff --git a/test/language/expressions/generators/yield-as-yield-operand.js b/test/language/expressions/generators/yield-as-yield-operand.js
index 7599fcecd5..1565ac6f50 100644
--- a/test/language/expressions/generators/yield-as-yield-operand.js
+++ b/test/language/expressions/generators/yield-as-yield-operand.js
@@ -2,11 +2,12 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` expressions may be used as the right-hand-side of other `yield`
-      expressions.
-  es6id: 14.4
- ---*/
+description: >
+    `yield` expressions may be used as the right-hand-side of other `yield`
+    expressions.
+es6id: 14.4
+features: [generators]
+---*/
 
 var iter, result;
 var g = function*() {
diff --git a/test/language/expressions/generators/yield-identifier-non-strict.js b/test/language/expressions/generators/yield-identifier-non-strict.js
index 8cbb2e7fc8..719e4e5c2c 100644
--- a/test/language/expressions/generators/yield-identifier-non-strict.js
+++ b/test/language/expressions/generators/yield-identifier-non-strict.js
@@ -4,12 +4,14 @@
 /*---
 description: Use of yield as a valid identifier in a function body inside a generator body in non strict mode (Generator expression - valid for non-strict only cases)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated, noStrict]
 info: |
     14.4 Generator Function Definitions
 
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/generators/yield-identifier-spread-non-strict.js b/test/language/expressions/generators/yield-identifier-spread-non-strict.js
index bf55fb5447..e4b123e3ca 100644
--- a/test/language/expressions/generators/yield-identifier-spread-non-strict.js
+++ b/test/language/expressions/generators/yield-identifier-spread-non-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: Mixed use of object spread and yield as a valid identifier in a function body inside a generator body in non strict mode (Generator expression - valid for non-strict only cases)
 esid: prod-GeneratorExpression
-features: [Symbol, object-spread]
+features: [Symbol, object-spread, generators]
 flags: [generated, noStrict]
 info: |
     14.4 Generator Function Definitions
@@ -12,6 +12,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/generators/yield-identifier-spread-strict.js b/test/language/expressions/generators/yield-identifier-spread-strict.js
index e4e4767de1..612bebe87a 100644
--- a/test/language/expressions/generators/yield-identifier-spread-strict.js
+++ b/test/language/expressions/generators/yield-identifier-spread-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: It's an early error if the AssignmentExpression is a function body with yield as an identifier in strict mode. (Unnamed generator expression)
 esid: prod-GeneratorExpression
-features: [object-spread]
+features: [object-spread, generators]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -15,6 +15,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/generators/yield-identifier-strict.js b/test/language/expressions/generators/yield-identifier-strict.js
index 8de2948609..38fa6b36cb 100644
--- a/test/language/expressions/generators/yield-identifier-strict.js
+++ b/test/language/expressions/generators/yield-identifier-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: It's an early error if the generator body has another function body with yield as an identifier in strict mode. (Unnamed generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -13,6 +14,7 @@ info: |
 
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
+
 ---*/
 throw "Test262: This statement should not be evaluated.";
 
diff --git a/test/language/expressions/generators/yield-newline.js b/test/language/expressions/generators/yield-newline.js
index f9783c0326..b6cd7a9d42 100644
--- a/test/language/expressions/generators/yield-newline.js
+++ b/test/language/expressions/generators/yield-newline.js
@@ -2,10 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      Newlines terminate `yield` expressions.
-  es6id: 14.4
- ---*/
+description: >
+    Newlines terminate `yield` expressions.
+es6id: 14.4
+features: [generators]
+---*/
 
 var iter, result;
 var g = function*() {
diff --git a/test/language/expressions/generators/yield-spread-arr-multiple.js b/test/language/expressions/generators/yield-spread-arr-multiple.js
index f8958a970f..c0b000c87b 100644
--- a/test/language/expressions/generators/yield-spread-arr-multiple.js
+++ b/test/language/expressions/generators/yield-spread-arr-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Unnamed generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated]
 includes: [compareArray.js]
 info: |
@@ -12,6 +13,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/generators/yield-spread-arr-single.js b/test/language/expressions/generators/yield-spread-arr-single.js
index 52bb571f71..97724095d4 100644
--- a/test/language/expressions/generators/yield-spread-arr-single.js
+++ b/test/language/expressions/generators/yield-spread-arr-single.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Unnamed generator expression)
 esid: prod-GeneratorExpression
+features: [generators]
 flags: [generated]
 info: |
     14.4 Generator Function Definitions
@@ -11,6 +12,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/generators/yield-spread-obj.js b/test/language/expressions/generators/yield-spread-obj.js
index e05908ccac..ed2a057a98 100644
--- a/test/language/expressions/generators/yield-spread-obj.js
+++ b/test/language/expressions/generators/yield-spread-obj.js
@@ -4,7 +4,7 @@
 /*---
 description: Use yield value in a object spread position (Unnamed generator expression)
 esid: prod-GeneratorExpression
-features: [object-spread]
+features: [object-spread, generators]
 flags: [generated]
 includes: [compareArray.js]
 info: |
@@ -13,6 +13,7 @@ info: |
     GeneratorExpression:
       function * BindingIdentifier opt ( FormalParameters ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/generators/yield-star-after-newline.js b/test/language/expressions/generators/yield-star-after-newline.js
index 46a7764d87..d2d1f6c511 100644
--- a/test/language/expressions/generators/yield-star-after-newline.js
+++ b/test/language/expressions/generators/yield-star-after-newline.js
@@ -2,13 +2,14 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      A newline may not precede the `*` token in a `yield` expression.
-  es6id: 14.4
-  negative:
-    phase: early
-    type: SyntaxError
- ---*/
+description: >
+    A newline may not precede the `*` token in a `yield` expression.
+es6id: 14.4
+negative:
+  phase: early
+  type: SyntaxError
+features: [generators]
+---*/
 
 throw "Test262: This statement should not be evaluated.";
 
diff --git a/test/language/expressions/generators/yield-star-before-newline.js b/test/language/expressions/generators/yield-star-before-newline.js
index ec28071b97..cd3bdd08a8 100644
--- a/test/language/expressions/generators/yield-star-before-newline.js
+++ b/test/language/expressions/generators/yield-star-before-newline.js
@@ -2,10 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      The right-hand side of a `yield *` expression may appear on a new line.
-  es6id: 14.4
- ---*/
+description: >
+    The right-hand side of a `yield *` expression may appear on a new line.
+es6id: 14.4
+features: [generators]
+---*/
 
 var result;
 var g = function*() {
diff --git a/test/language/expressions/generators/yield-weak-binding.js b/test/language/expressions/generators/yield-weak-binding.js
index 7d4674417e..750836ce39 100644
--- a/test/language/expressions/generators/yield-weak-binding.js
+++ b/test/language/expressions/generators/yield-weak-binding.js
@@ -2,13 +2,14 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` expressions bind weakly
-  es6id: 14.4
-  negative:
-    phase: early
-    type: SyntaxError
- ---*/
+description: >
+    `yield` expressions bind weakly
+es6id: 14.4
+negative:
+  phase: early
+  type: SyntaxError
+features: [generators]
+---*/
 
 throw "Test262: This statement should not be evaluated.";
 
diff --git a/test/language/expressions/new/spread-err-mult-err-expr-throws.js b/test/language/expressions/new/spread-err-mult-err-expr-throws.js
index 8e749098b9..6740212c9b 100644
--- a/test/language/expressions/new/spread-err-mult-err-expr-throws.js
+++ b/test/language/expressions/new/spread-err-mult-err-expr-throws.js
@@ -5,6 +5,7 @@
 description: Spread operator following other arguments when evaluation throws (`new` operator)
 esid: sec-new-operator-runtime-semantics-evaluation
 es6id: 12.3.3.1
+features: [generators]
 flags: [generated]
 info: |
     MemberExpression : new MemberExpression Arguments
@@ -26,6 +27,7 @@ info: |
     2. Let spreadRef be the result of evaluating AssignmentExpression.
     3. Let iterator be GetIterator(GetValue(spreadRef) ).
     4. ReturnIfAbrupt(iterator).
+
 ---*/
 
 assert.throws(Test262Error, function() {
diff --git a/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elem-ary-empty-init.js
index fa7c038162..f522c2ca7a 100644
--- a/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (async generator method)
 esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorMethod :
@@ -32,6 +32,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
index 12d34c1cde..59477829b3 100644
--- a/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/object/dstr-async-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (async generator method)
 esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorMethod :
@@ -34,6 +34,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 
diff --git a/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
index 45240896f5..fa80ea49ab 100644
--- a/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (async generator method (default parameter))
 esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorMethod :
@@ -32,6 +32,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index da562222a6..7afa0ec45c 100644
--- a/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (async generator method (default parameter))
 esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorMethod :
@@ -34,6 +34,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 
diff --git a/test/language/expressions/object/dstr-async-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/object/dstr-async-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
index aa376bd39d..5c0276fd88 100644
--- a/test/language/expressions/object/dstr-async-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/object/dstr-async-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (async generator method (default parameter))
 esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorMethod :
@@ -33,6 +33,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 
diff --git a/test/language/expressions/object/dstr-async-gen-meth-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/object/dstr-async-gen-meth-obj-ptrn-id-init-fn-name-gen.js
index abb045b755..0a3dce2e83 100644
--- a/test/language/expressions/object/dstr-async-gen-meth-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/object/dstr-async-gen-meth-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (async generator method)
 esid: sec-asyncgenerator-definitions-propertydefinitionevaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorMethod :
@@ -33,6 +33,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-init-iter-close.js b/test/language/expressions/object/dstr-gen-meth-ary-init-iter-close.js
index 3771eabe5d..6091a34f54 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-init-iter-close.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-init-iter-close.js
@@ -5,7 +5,7 @@
 description: Iterator is closed when not exhausted by pattern evaluation (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-init-iter-get-err.js b/test/language/expressions/object/dstr-gen-meth-ary-init-iter-get-err.js
index 6a5a76ba2f..7bc67131aa 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-init-iter-get-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-init-iter-get-err.js
@@ -5,7 +5,7 @@
 description: Abrupt completion returned by GetIterator (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-init-iter-no-close.js b/test/language/expressions/object/dstr-gen-meth-ary-init-iter-no-close.js
index 07c0537d41..9bbc3cfe8c 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-init-iter-no-close.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-init-iter-no-close.js
@@ -5,7 +5,7 @@
 description: Iterator is not closed when exhausted by pattern evaluation (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-name-iter-val.js b/test/language/expressions/object/dstr-gen-meth-ary-name-iter-val.js
index 0ab271c911..06cb126c2e 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-name-iter-val.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-name-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding with normal value iteration (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-elem-init.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-elem-init.js
index 1ad16e9e69..882533b152 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-elem-init.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-elem-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-elem-iter.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-elem-iter.js
index 3b7aa060fb..d5120daa2f 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-elem-iter.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-elem-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-empty-init.js
index 1c43677cc2..09f651773e 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
@@ -54,6 +54,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-empty-iter.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-empty-iter.js
index ece4c9d3f5..ea26a5d046 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-empty-iter.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-empty-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-rest-init.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-rest-init.js
index 703d5c0391..999ef5d6f6 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-rest-init.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-rest-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-rest-iter.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-rest-iter.js
index 3cff8bffad..7018279659 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-rest-iter.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-rest-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-val-null.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-val-null.js
index f89a144cf0..1ec30b77d3 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-val-null.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-ary-val-null.js
@@ -5,7 +5,7 @@
 description: Nested array destructuring with a null value (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-exhausted.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-exhausted.js
index 14d074758f..c48d641b66 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-exhausted.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-exhausted.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an exhausted iterator (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-arrow.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-arrow.js
index 41ac1e1425..3b67133e0a 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-arrow.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to arrow functions (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-class.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-class.js
index f05979ad69..e372975edb 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-class.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-cover.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-cover.js
index b0c4e686c8..8ea125ddab 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-cover.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-fn.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-fn.js
index 24a61cd0bb..6d6a623f4b 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-fn.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
index 8c92a59664..f5522cde8f 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
@@ -56,6 +56,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-hole.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-hole.js
index 3131921e27..3b27dfc5ea 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-hole.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-hole.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with a "hole" (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-skipped.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-skipped.js
index d6b9730a6f..950047b31d 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-skipped.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-throws.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-throws.js
index 7123ab31c8..c45c97947e 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-throws.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer returns an abrupt completion (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-undef.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-undef.js
index 52199f10fb..b617c7977c 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-undef.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-undef.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an undefined value (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-unresolvable.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-unresolvable.js
index 477eefb099..36b6ff7862 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-unresolvable.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-complete.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-complete.js
index fd1b1705f5..1393ae5d3b 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-complete.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-complete.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration completes (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-done.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-done.js
index 3c839033ea..f4ff6e11ef 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-done.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-done.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-step-err.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-step-err.js
index fe8d111d22..f46ed2a848 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-step-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-step-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorStep returns an abrupt completion (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-val-err.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-val-err.js
index f42510a835..ebe0360ed8 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-val-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-val.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-val.js
index b9641ccac2..7214beae57 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-val.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-id-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-id-init.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-id-init.js
index 14a1988e5e..f4d1d5696d 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-id-init.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-id.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-id.js
index 840b396946..2ef4e5d94b 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-id.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-prop-id-init.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-prop-id-init.js
index bb249870b1..f478a24420 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-prop-id-init.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-prop-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-prop-id.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-prop-id.js
index 1ba97b7e4b..fd0941829b 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-prop-id.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-val-null.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-val-null.js
index b11f76fc56..a2ade583ba 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-val-null.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-val-null.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a null value (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-val-undef.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-val-undef.js
index 83cbbd6d53..daf12a2cfb 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-val-undef.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-elem-obj-val-undef.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a value of `undefined` (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-elem.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-elem.js
index 1180dbdf70..4a3756bfa0 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-elem.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-elem.js
@@ -5,7 +5,7 @@
 description: Rest element containing an array BindingElementList pattern (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-rest.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-rest.js
index 5aea42fbbb..070bdc3181 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-rest.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-ary-rest.js
@@ -5,7 +5,7 @@
 description: Rest element containing a rest element (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-id-elision.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-id-elision.js
index 1fc1ea43a3..a8349b81bc 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-id-elision.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-id-elision.js
@@ -5,7 +5,7 @@
 description: Rest element following elision elements (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-id-exhausted.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-id-exhausted.js
index 8b39089749..75ec4b5aa9 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-id-exhausted.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-id-exhausted.js
@@ -5,7 +5,7 @@
 description: RestElement applied to an exhausted iterator (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-id-iter-val-err.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-id-iter-val-err.js
index 4599ed1076..b7c2875673 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-id-iter-val-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-id.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-id.js
index 072a0e58aa..7509f6eccb 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-id.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-id.js
@@ -5,7 +5,7 @@
 description: Lone rest element (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-ary.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-ary.js
index 857672d4f4..c00d878bf0 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-ary.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-ary.js
@@ -5,7 +5,7 @@
 description: Reset element (nested array pattern) does not support initializer (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-id.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-id.js
index 8a199dcc2d..c93c8ffb9d 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-id.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-id.js
@@ -5,7 +5,7 @@
 description: Reset element (identifier) does not support initializer (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-obj.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-obj.js
index 03822acc8d..aea14d4a57 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-obj.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-obj.js
@@ -5,7 +5,7 @@
 description: Reset element (nested object pattern) does not support initializer (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js
index 58101acb8d..30da331c2e 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js
@@ -5,7 +5,7 @@
 description: Rest element (array binding pattern) may not be followed by any element (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-id.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-id.js
index 51aeebd3f9..dcbaf94b70 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-id.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-id.js
@@ -5,7 +5,7 @@
 description: Rest element (identifier) may not be followed by any element (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js
index a84b6597c1..81b3e7ad35 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js
@@ -5,7 +5,7 @@
 description: Rest element (object binding pattern) may not be followed by any element (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-obj-id.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-obj-id.js
index e79da1e9cd..7cd4fceb73 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-obj-id.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-obj-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js
index d7a60520cd..27e7363dc9 100644
--- a/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js
+++ b/test/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-init-iter-close.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-init-iter-close.js
index c17349e261..d85d5bc5ad 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-init-iter-close.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-init-iter-close.js
@@ -5,7 +5,7 @@
 description: Iterator is closed when not exhausted by pattern evaluation (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-init-iter-get-err.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-init-iter-get-err.js
index 6508245309..6ba450a501 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-init-iter-get-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-init-iter-get-err.js
@@ -5,7 +5,7 @@
 description: Abrupt completion returned by GetIterator (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-init-iter-no-close.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-init-iter-no-close.js
index 9874fa38f6..b38b48e1be 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-init-iter-no-close.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-init-iter-no-close.js
@@ -5,7 +5,7 @@
 description: Iterator is not closed when exhausted by pattern evaluation (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-name-iter-val.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-name-iter-val.js
index 2c73ff64b4..143f25f293 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-name-iter-val.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-name-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding with normal value iteration (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-ary-elem-init.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-init.js
index c49eeff539..9454ab66d6 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-init.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-ary-elem-iter.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-iter.js
index 112aefd8dc..1cc608f965 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-iter.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-ary-empty-init.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
index fa8cc68cb0..08aa1a911b 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorMethod :
@@ -54,6 +54,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-iter.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-iter.js
index da2aff3934..b7bae35f1d 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-iter.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-ary-rest-init.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-init.js
index 6b1d6ba122..1288452c61 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-init.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-ary-rest-iter.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-iter.js
index fe6b182df1..0a9b285951 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-iter.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-ary-val-null.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-val-null.js
index f957343695..7654c28439 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-val-null.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-ary-val-null.js
@@ -5,7 +5,7 @@
 description: Nested array destructuring with a null value (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-id-init-exhausted.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-exhausted.js
index 0217ce2536..245e7e1eb6 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-exhausted.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-exhausted.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an exhausted iterator (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-id-init-fn-name-arrow.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
index 6071504fcc..e5159b3d67 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to arrow functions (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-id-init-fn-name-class.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-class.js
index ff27e5afb2..80440e6873 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-class.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-id-init-fn-name-cover.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
index 255a97d8f4..09d1f1e9d8 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-id-init-fn-name-fn.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
index b047d963ce..af507f9111 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-id-init-fn-name-gen.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index 2c0b110277..dc95468c76 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorMethod :
@@ -56,6 +56,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-hole.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-hole.js
index 79587da441..e313b01904 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-hole.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-hole.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with a "hole" (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-id-init-skipped.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-skipped.js
index 70ee82784a..42873cad60 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-skipped.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-id-init-throws.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-throws.js
index bc7dc3c020..d18f7dafed 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-throws.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer returns an abrupt completion (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-id-init-undef.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-undef.js
index 55591fb3ed..85c7517565 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-undef.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-undef.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an undefined value (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-id-init-unresolvable.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-unresolvable.js
index 70200e550b..54b4c2d2cc 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-unresolvable.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-id-iter-complete.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-complete.js
index 8f67d5fc47..fab5dc48b4 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-complete.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-complete.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration completes (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-id-iter-done.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-done.js
index 7bd2493e40..d50e7fcb4d 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-done.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-done.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-id-iter-step-err.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-step-err.js
index b63ad8c904..ac14e86a91 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-step-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-step-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorStep returns an abrupt completion (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val-err.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val-err.js
index e2848f6aa8..16e807f048 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val.js
index a6af5ecc24..bf11c74bfc 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-obj-id-init.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id-init.js
index 7954d02670..8eede604a6 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id-init.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-obj-id.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id.js
index 5660a67064..52f9ad75fa 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-obj-prop-id-init.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id-init.js
index 9ee29e36e1..1f0af3fc90 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id-init.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-obj-prop-id.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id.js
index c34a744275..a2f9cd36df 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-obj-val-null.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-null.js
index a2a380fab4..b9658fc897 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-null.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-null.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a null value (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-elem-obj-val-undef.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-undef.js
index fb4be8e848..55bc30c173 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-undef.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-undef.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a value of `undefined` (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-rest-ary-elem.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js
index ed92312f10..2f58cff43a 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js
@@ -5,7 +5,7 @@
 description: Rest element containing an array BindingElementList pattern (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-rest-ary-rest.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js
index 18719a9c0c..274b342749 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js
@@ -5,7 +5,7 @@
 description: Rest element containing a rest element (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-rest-id-elision.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-id-elision.js
index b413c87fc1..e1fccfdb37 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-id-elision.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-id-elision.js
@@ -5,7 +5,7 @@
 description: Rest element following elision elements (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-rest-id-exhausted.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-id-exhausted.js
index f56505d66c..43b2964c79 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-id-exhausted.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-id-exhausted.js
@@ -5,7 +5,7 @@
 description: RestElement applied to an exhausted iterator (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-id-iter-val-err.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-id-iter-val-err.js
index 7df0ee2c46..a6a80e41c9 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-id-iter-val-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-id.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-id.js
index 166cdef523..b58fa38487 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-id.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-id.js
@@ -5,7 +5,7 @@
 description: Lone rest element (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-rest-init-ary.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js
index 291d071ce8..13234c20d8 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js
@@ -5,7 +5,7 @@
 description: Reset element (nested array pattern) does not support initializer (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js
index dcd17ce138..311720c9ad 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js
@@ -5,7 +5,7 @@
 description: Reset element (identifier) does not support initializer (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js
index 9267532b39..b628b5c75b 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js
@@ -5,7 +5,7 @@
 description: Reset element (nested object pattern) does not support initializer (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js
index 38c407c28e..c467959fcc 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js
@@ -5,7 +5,7 @@
 description: Rest element (array binding pattern) may not be followed by any element (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js
index ded6ee7523..dc60867d0f 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js
@@ -5,7 +5,7 @@
 description: Rest element (identifier) may not be followed by any element (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js
index 9f24bbce5b..1da607c87e 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js
@@ -5,7 +5,7 @@
 description: Rest element (object binding pattern) may not be followed by any element (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js
index 72cd270b74..4247b062b4 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-rest-obj-prop-id.js b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js
index efbbc9e707..d51dd5aea7 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-init-null.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-init-null.js
index 1a84aa8163..40c40d5311 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-init-null.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-init-null.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (null) (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-init-undefined.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-init-undefined.js
index bcfb0b1566..f39b8692de 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-init-undefined.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-init-undefined.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (undefined) (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-empty.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-empty.js
index 78e1374dc0..fa88fd2738 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-empty.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-empty.js
@@ -5,7 +5,7 @@
 description: No property access occurs for an "empty" object binding pattern (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-id-get-value-err.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-get-value-err.js
index 3178fb93f2..4f3eb015ab 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-get-value-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-id-init-fn-name-arrow.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-arrow.js
index d24b86b971..9703f243f7 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-arrow.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to arrow functions (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-id-init-fn-name-class.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-class.js
index 652c38bc2c..095d71f5fe 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-class.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-id-init-fn-name-cover.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-cover.js
index 11e3d4740e..235d92df82 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-cover.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-id-init-fn-name-fn.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-fn.js
index d4b56a08e5..25a65a65b3 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-fn.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
index b94afac017..97f26ef590 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorMethod :
@@ -55,6 +55,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-skipped.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-skipped.js
index f9daee5fea..bc4bec8479 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-skipped.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-id-init-throws.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-throws.js
index d1f4546e20..7f2da8da15 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-throws.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-id-init-unresolvable.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-unresolvable.js
index 3e162bd434..bde715e173 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-unresolvable.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-id-trailing-comma.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-trailing-comma.js
index 898ff96ffd..af00ce43e2 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-trailing-comma.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-list-err.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-list-err.js
index e67a41dae1..099bd83cf6 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-list-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-list-err.js
@@ -5,7 +5,7 @@
 description: Binding property list evaluation is interrupted by an abrupt completion (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-prop-ary-init.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-ary-init.js
index e954fca517..a264a25329 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-ary-init.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-ary-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern using initializer (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-prop-ary-trailing-comma.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-ary-trailing-comma.js
index 5ecb5f2dff..254e2100a0 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-ary-trailing-comma.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-ary-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-prop-ary-value-null.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-ary-value-null.js
index cfcf333dfd..119de49ca0 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-ary-value-null.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-ary-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern taking the `null` value (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-prop-ary.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-ary.js
index 93a94bb734..e4c649fac5 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-ary.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-ary.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern not using initializer (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-prop-eval-err.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-eval-err.js
index 1a42d8dc48..92032c4689 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-eval-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-eval-err.js
@@ -5,7 +5,7 @@
 description: Evaluation of property name returns an abrupt completion (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-prop-id-get-value-err.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-get-value-err.js
index 5ef7dab0cf..4d774186db 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-get-value-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-prop-id-init-skipped.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-skipped.js
index fc13547f05..09bc8d313c 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-skipped.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-prop-id-init-throws.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-throws.js
index 3bc55df00d..d9ea254603 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-throws.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-prop-id-init-unresolvable.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-unresolvable.js
index 6be5da422a..3eecf1cf58 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-unresolvable.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-prop-id-init.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-init.js
index d7cab302b9..01de191405 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-init.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-init.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name, identifier, and initializer (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-prop-id-trailing-comma.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-trailing-comma.js
index 9e4fe14b86..2e82c17019 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-trailing-comma.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-prop-id.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id.js
index 25b2a9b67d..08e9d6315c 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-id.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name and identifier (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-prop-obj-init.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-obj-init.js
index 2896eaf42b..9e45542f01 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-obj-init.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-obj-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern using initializer (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-prop-obj-value-null.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-null.js
index 5f195983f3..d00c9c4e4d 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-null.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-prop-obj-value-undef.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-undef.js
index 650e69d6f3..8a4910d028 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-undef.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-undef.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-prop-obj.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-obj.js
index 760137a722..3df90c86d0 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-obj.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-prop-obj.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern not using initializer (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [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-obj-ptrn-rest-getter.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js
index 37fa32fe80..0e7608286c 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js
@@ -5,7 +5,7 @@
 description: Getter is called when obj is being deconstructed to a rest Object (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js
index 6bb033325a..5c2594f537 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js
@@ -5,7 +5,7 @@
 description: Rest object doesn't contain non-enumerable properties (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js
index ff98c249cf..3da019e26a 100644
--- a/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js
+++ b/test/language/expressions/object/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js
@@ -5,7 +5,7 @@
 description: Rest object contains just unextracted data (generator method (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-init-null.js b/test/language/expressions/object/dstr-gen-meth-obj-init-null.js
index 1410397775..5bea2d3369 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-init-null.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-init-null.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (null) (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-init-undefined.js b/test/language/expressions/object/dstr-gen-meth-obj-init-undefined.js
index b3e15001d9..2c74ae2b02 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-init-undefined.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-init-undefined.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (undefined) (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-empty.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-empty.js
index d5b280b40e..ce4b1d34bb 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-empty.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-empty.js
@@ -5,7 +5,7 @@
 description: No property access occurs for an "empty" object binding pattern (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-get-value-err.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-get-value-err.js
index ad94c0678d..f0d18870af 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-get-value-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-arrow.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-arrow.js
index 07cc10b36c..0c557dc01d 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-arrow.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to arrow functions (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-class.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-class.js
index b5c8c2029a..b543df8a2b 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-class.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-cover.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-cover.js
index 86bc8efe78..dfa2d0f7e4 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-cover.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-fn.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-fn.js
index b1d49c8b50..004d662182 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-fn.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-gen.js
index 2e8677473f..f403b3c0e5 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
@@ -55,6 +55,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-skipped.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-skipped.js
index 7dd1e090d0..25425e8102 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-skipped.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-throws.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-throws.js
index 1efa140426..f7164ee1d9 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-throws.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-unresolvable.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-unresolvable.js
index 63ba3e5f48..caaea912da 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-unresolvable.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-trailing-comma.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-trailing-comma.js
index 2b4c25cbe9..e4179a47f6 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-trailing-comma.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-list-err.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-list-err.js
index 511d472141..a39ea7db0e 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-list-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-list-err.js
@@ -5,7 +5,7 @@
 description: Binding property list evaluation is interrupted by an abrupt completion (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-ary-init.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-ary-init.js
index 07980a43c5..b0e4ba503b 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-ary-init.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-ary-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern using initializer (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-ary-trailing-comma.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-ary-trailing-comma.js
index fc740e24f4..5d978cd700 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-ary-trailing-comma.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-ary-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-ary-value-null.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-ary-value-null.js
index 72aeb074aa..3ba0a76e81 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-ary-value-null.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-ary-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern taking the `null` value (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-ary.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-ary.js
index 5335b0512c..a4d8a16316 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-ary.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-ary.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern not using initializer (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-eval-err.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-eval-err.js
index d399bba616..7ee1a502c1 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-eval-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-eval-err.js
@@ -5,7 +5,7 @@
 description: Evaluation of property name returns an abrupt completion (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-get-value-err.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-get-value-err.js
index 56e354cea7..bfe95ab3a5 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-get-value-err.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-init-skipped.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-init-skipped.js
index f3a84e8e99..9c9cf6cb57 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-init-skipped.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-init-throws.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-init-throws.js
index 10f88f7594..3d5f7a142f 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-init-throws.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-init-unresolvable.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-init-unresolvable.js
index 4b27e0ddda..ecbe2263ee 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-init-unresolvable.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-init.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-init.js
index 7298bf532f..787afa298d 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-init.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-init.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name, identifier, and initializer (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-trailing-comma.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-trailing-comma.js
index b52af2e56d..58c8306135 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-trailing-comma.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id.js
index 28d9d355a5..dd727b9003 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-id.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name and identifier (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj-init.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj-init.js
index 66a091e6d0..0e52a7987b 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj-init.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern using initializer (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj-value-null.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj-value-null.js
index 827bcc8342..2cc224983b 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj-value-null.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj-value-undef.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj-value-undef.js
index 6c7b5cd12e..644ac3be91 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj-value-undef.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj-value-undef.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj.js
index d8b5ae39d8..745b28325f 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-prop-obj.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern not using initializer (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorMethod :
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-getter.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-getter.js
index 2aae1d4acf..c3bc4e257e 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-getter.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-getter.js
@@ -5,7 +5,7 @@
 description: Getter is called when obj is being deconstructed to a rest Object (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js
index 5b4bd12391..bb71b4e9d4 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js
@@ -5,7 +5,7 @@
 description: Rest object doesn't contain non-enumerable properties (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-val-obj.js b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-val-obj.js
index fe98c40331..0722166d20 100644
--- a/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-val-obj.js
+++ b/test/language/expressions/object/dstr-gen-meth-obj-ptrn-rest-val-obj.js
@@ -5,7 +5,7 @@
 description: Rest object contains just unextracted data (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
 es6id: 14.4.13
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/object/dstr-meth-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/object/dstr-meth-ary-ptrn-elem-ary-empty-init.js
index f93b36196c..aaca839cc4 100644
--- a/test/language/expressions/object/dstr-meth-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/object/dstr-meth-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (method)
 esid: sec-runtime-semantics-definemethod
 es6id: 14.3.8
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody }
@@ -51,6 +51,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/object/dstr-meth-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/object/dstr-meth-ary-ptrn-elem-id-init-fn-name-gen.js
index af4a4ae4ef..8291949bfe 100644
--- a/test/language/expressions/object/dstr-meth-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/object/dstr-meth-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (method)
 esid: sec-runtime-semantics-definemethod
 es6id: 14.3.8
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody }
@@ -53,6 +53,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-ary-empty-init.js b/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-ary-empty-init.js
index a4271ebe28..0842a942ad 100644
--- a/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (method (default parameter))
 esid: sec-runtime-semantics-definemethod
 es6id: 14.3.8
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody }
@@ -51,6 +51,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index e035e7cf5a..69a53aa6a3 100644
--- a/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/expressions/object/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (method (default parameter))
 esid: sec-runtime-semantics-definemethod
 es6id: 14.3.8
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody }
@@ -53,6 +53,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/object/dstr-meth-dflt-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/object/dstr-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
index 5cd76dd549..4634367cc7 100644
--- a/test/language/expressions/object/dstr-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/object/dstr-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (method (default parameter))
 esid: sec-runtime-semantics-definemethod
 es6id: 14.3.8
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody }
@@ -52,6 +52,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/object/dstr-meth-obj-ptrn-id-init-fn-name-gen.js b/test/language/expressions/object/dstr-meth-obj-ptrn-id-init-fn-name-gen.js
index 713542a61a..66a38d14cf 100644
--- a/test/language/expressions/object/dstr-meth-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/expressions/object/dstr-meth-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (method)
 esid: sec-runtime-semantics-definemethod
 es6id: 14.3.8
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody }
@@ -52,6 +52,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/object/method-definition/gen-meth-dflt-params-abrupt.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-abrupt.js
index 0721454cd8..05779daa2b 100644
--- a/test/language/expressions/object/method-definition/gen-meth-dflt-params-abrupt.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-abrupt.js
@@ -4,7 +4,7 @@
 /*---
 description: Abrupt completion returned by evaluation of initializer (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorMethod :
@@ -42,6 +42,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-not-undefined.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-not-undefined.js
index 631b5c8cd0..47358a86bf 100644
--- a/test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-not-undefined.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-not-undefined.js
@@ -4,7 +4,7 @@
 /*---
 description: Use of intializer when argument value is not `undefined` (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorMethod :
@@ -42,6 +42,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-undefined.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-undefined.js
index 4312dad4d5..5732ffa2b7 100644
--- a/test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-undefined.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-undefined.js
@@ -4,7 +4,7 @@
 /*---
 description: Use of intializer when argument value is `undefined` (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorMethod :
@@ -42,6 +42,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/object/method-definition/gen-meth-dflt-params-duplicates.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-duplicates.js
index d03294bbcb..0cb2054f84 100644
--- a/test/language/expressions/object/method-definition/gen-meth-dflt-params-duplicates.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-duplicates.js
@@ -4,7 +4,7 @@
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 negative:
   phase: early
@@ -45,6 +45,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.2 Static Semantics: Early Errors
 
     StrictFormalParameters : FormalParameters
diff --git a/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-later.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-later.js
index 28543598be..e42f680bad 100644
--- a/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-later.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-later.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorMethod :
@@ -42,6 +42,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-prior.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-prior.js
index 7c5a600583..d8d53eb43e 100644
--- a/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-prior.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-prior.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorMethod :
@@ -42,6 +42,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-self.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-self.js
index 16973080fd..aa3893eee6 100644
--- a/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-self.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-self.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter from within its own initializer (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorMethod :
@@ -42,6 +42,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/expressions/object/method-definition/gen-meth-dflt-params-rest.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-rest.js
index a0e4fdf5b3..285e1175a7 100644
--- a/test/language/expressions/object/method-definition/gen-meth-dflt-params-rest.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-rest.js
@@ -4,7 +4,7 @@
 /*---
 description: RestParameter does not support an initializer (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 negative:
   phase: early
@@ -45,6 +45,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1 Function Definitions
 
     Syntax
diff --git a/test/language/expressions/object/method-definition/gen-meth-dflt-params-trailing-comma.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-trailing-comma.js
index ecfd480e99..8e02f133a1 100644
--- a/test/language/expressions/object/method-definition/gen-meth-dflt-params-trailing-comma.js
+++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-trailing-comma.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
+features: [generators]
 flags: [generated]
 info: |
     GeneratorMethod :
@@ -41,6 +42,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-multiple.js b/test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-multiple.js
index a21e8788a2..c7354663a1 100644
--- a/test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-multiple.js
+++ b/test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
+features: [generators]
 flags: [generated]
 info: |
     GeneratorMethod :
@@ -41,6 +42,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-single.js b/test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-single.js
index e7153fdc7a..4a65846d07 100644
--- a/test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-single.js
+++ b/test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-single.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
+features: [generators]
 flags: [generated]
 info: |
     GeneratorMethod :
@@ -41,6 +42,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/expressions/object/method-definition/gen-meth-rest-params-trailing-comma-early-error.js b/test/language/expressions/object/method-definition/gen-meth-rest-params-trailing-comma-early-error.js
index 6a5ec695df..c63446c45e 100644
--- a/test/language/expressions/object/method-definition/gen-meth-rest-params-trailing-comma-early-error.js
+++ b/test/language/expressions/object/method-definition/gen-meth-rest-params-trailing-comma-early-error.js
@@ -4,6 +4,7 @@
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (generator method)
 esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -44,6 +45,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/expressions/object/method-definition/gen-yield-as-binding-identifier-escaped.js b/test/language/expressions/object/method-definition/gen-yield-as-binding-identifier-escaped.js
index fd248e795b..58ab7e679d 100644
--- a/test/language/expressions/object/method-definition/gen-yield-as-binding-identifier-escaped.js
+++ b/test/language/expressions/object/method-definition/gen-yield-as-binding-identifier-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a binding identifier. (Generator method)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorMethod[Yield, Await]:
       * PropertyName[?Yield, ?Await] ( UniqueFormalParameters[+Yield, ~Await] ) { GeneratorBody }
 
+
     BindingIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/object/method-definition/gen-yield-as-binding-identifier.js b/test/language/expressions/object/method-definition/gen-yield-as-binding-identifier.js
index 04ee506682..81f1155b3a 100644
--- a/test/language/expressions/object/method-definition/gen-yield-as-binding-identifier.js
+++ b/test/language/expressions/object/method-definition/gen-yield-as-binding-identifier.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a binding identifier. (Generator method)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorMethod[Yield, Await]:
       * PropertyName[?Yield, ?Await] ( UniqueFormalParameters[+Yield, ~Await] ) { GeneratorBody }
 
+
     BindingIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/object/method-definition/gen-yield-as-identifier-reference-escaped.js b/test/language/expressions/object/method-definition/gen-yield-as-identifier-reference-escaped.js
index 67a523a0bb..aab039dff3 100644
--- a/test/language/expressions/object/method-definition/gen-yield-as-identifier-reference-escaped.js
+++ b/test/language/expressions/object/method-definition/gen-yield-as-identifier-reference-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as an identifier reference. (Generator method)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorMethod[Yield, Await]:
       * PropertyName[?Yield, ?Await] ( UniqueFormalParameters[+Yield, ~Await] ) { GeneratorBody }
 
+
     IdentifierReference : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/object/method-definition/gen-yield-as-identifier-reference.js b/test/language/expressions/object/method-definition/gen-yield-as-identifier-reference.js
index 9a107c63ba..a382f79abd 100644
--- a/test/language/expressions/object/method-definition/gen-yield-as-identifier-reference.js
+++ b/test/language/expressions/object/method-definition/gen-yield-as-identifier-reference.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as an identifier reference. (Generator method)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorMethod[Yield, Await]:
       * PropertyName[?Yield, ?Await] ( UniqueFormalParameters[+Yield, ~Await] ) { GeneratorBody }
 
+
     IdentifierReference : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/object/method-definition/gen-yield-as-label-identifier-escaped.js b/test/language/expressions/object/method-definition/gen-yield-as-label-identifier-escaped.js
index 6c87f52c59..a5f161cdbd 100644
--- a/test/language/expressions/object/method-definition/gen-yield-as-label-identifier-escaped.js
+++ b/test/language/expressions/object/method-definition/gen-yield-as-label-identifier-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a label identifier. (Generator method)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorMethod[Yield, Await]:
       * PropertyName[?Yield, ?Await] ( UniqueFormalParameters[+Yield, ~Await] ) { GeneratorBody }
 
+
     LabelIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/object/method-definition/gen-yield-as-label-identifier.js b/test/language/expressions/object/method-definition/gen-yield-as-label-identifier.js
index c1d947e6aa..b0164545b0 100644
--- a/test/language/expressions/object/method-definition/gen-yield-as-label-identifier.js
+++ b/test/language/expressions/object/method-definition/gen-yield-as-label-identifier.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a label identifier. (Generator method)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorMethod[Yield, Await]:
       * PropertyName[?Yield, ?Await] ( UniqueFormalParameters[+Yield, ~Await] ) { GeneratorBody }
 
+
     LabelIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/expressions/object/method-definition/gen-yield-identifier-non-strict.js b/test/language/expressions/object/method-definition/gen-yield-identifier-non-strict.js
index bb23db9746..ce793abd26 100644
--- a/test/language/expressions/object/method-definition/gen-yield-identifier-non-strict.js
+++ b/test/language/expressions/object/method-definition/gen-yield-identifier-non-strict.js
@@ -4,12 +4,14 @@
 /*---
 description: Use of yield as a valid identifier in a function body inside a generator body in non strict mode (Generator method - valid for non-strict only cases)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated, noStrict]
 info: |
     14.4 Generator Function Definitions
 
     GeneratorMethod[Yield, Await]:
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/object/method-definition/gen-yield-identifier-spread-non-strict.js b/test/language/expressions/object/method-definition/gen-yield-identifier-spread-non-strict.js
index c9462edaf4..3ba4b1098f 100644
--- a/test/language/expressions/object/method-definition/gen-yield-identifier-spread-non-strict.js
+++ b/test/language/expressions/object/method-definition/gen-yield-identifier-spread-non-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: Mixed use of object spread and yield as a valid identifier in a function body inside a generator body in non strict mode (Generator method - valid for non-strict only cases)
 esid: prod-GeneratorMethod
-features: [Symbol, object-spread]
+features: [Symbol, object-spread, generators]
 flags: [generated, noStrict]
 info: |
     14.4 Generator Function Definitions
@@ -12,6 +12,7 @@ info: |
     GeneratorMethod[Yield, Await]:
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/object/method-definition/gen-yield-identifier-spread-strict.js b/test/language/expressions/object/method-definition/gen-yield-identifier-spread-strict.js
index 5db2962b6f..850581b847 100644
--- a/test/language/expressions/object/method-definition/gen-yield-identifier-spread-strict.js
+++ b/test/language/expressions/object/method-definition/gen-yield-identifier-spread-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: It's an early error if the AssignmentExpression is a function body with yield as an identifier in strict mode. (Generator method)
 esid: prod-GeneratorMethod
-features: [object-spread]
+features: [object-spread, generators]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -15,6 +15,7 @@ info: |
     GeneratorMethod[Yield, Await]:
       * PropertyName[?Yield, ?Await] ( UniqueFormalParameters[+Yield, ~Await] ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/object/method-definition/gen-yield-identifier-strict.js b/test/language/expressions/object/method-definition/gen-yield-identifier-strict.js
index 7e7586745e..91bd92255c 100644
--- a/test/language/expressions/object/method-definition/gen-yield-identifier-strict.js
+++ b/test/language/expressions/object/method-definition/gen-yield-identifier-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: It's an early error if the generator body has another function body with yield as an identifier in strict mode. (Generator method)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -13,6 +14,7 @@ info: |
 
     GeneratorMethod[Yield, Await]:
       * PropertyName[?Yield, ?Await] ( UniqueFormalParameters[+Yield, ~Await] ) { GeneratorBody }
+
 ---*/
 throw "Test262: This statement should not be evaluated.";
 
diff --git a/test/language/expressions/object/method-definition/gen-yield-spread-arr-multiple.js b/test/language/expressions/object/method-definition/gen-yield-spread-arr-multiple.js
index c8ac0b133b..ccff04c90c 100644
--- a/test/language/expressions/object/method-definition/gen-yield-spread-arr-multiple.js
+++ b/test/language/expressions/object/method-definition/gen-yield-spread-arr-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Generator method)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 includes: [compareArray.js]
 info: |
@@ -12,6 +13,7 @@ info: |
     GeneratorMethod[Yield, Await]:
       * PropertyName[?Yield, ?Await] ( UniqueFormalParameters[+Yield, ~Await] ) { GeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/object/method-definition/gen-yield-spread-arr-single.js b/test/language/expressions/object/method-definition/gen-yield-spread-arr-single.js
index 9fe742e13f..f4f1ff7ab0 100644
--- a/test/language/expressions/object/method-definition/gen-yield-spread-arr-single.js
+++ b/test/language/expressions/object/method-definition/gen-yield-spread-arr-single.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Generator method)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 info: |
     14.4 Generator Function Definitions
@@ -11,6 +12,7 @@ info: |
     GeneratorMethod[Yield, Await]:
       * PropertyName[?Yield, ?Await] ( UniqueFormalParameters[+Yield, ~Await] ) { GeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/expressions/object/method-definition/gen-yield-spread-obj.js b/test/language/expressions/object/method-definition/gen-yield-spread-obj.js
index c52740bf46..4670c8c5da 100644
--- a/test/language/expressions/object/method-definition/gen-yield-spread-obj.js
+++ b/test/language/expressions/object/method-definition/gen-yield-spread-obj.js
@@ -4,7 +4,7 @@
 /*---
 description: Use yield value in a object spread position (Generator method)
 esid: prod-GeneratorMethod
-features: [object-spread]
+features: [object-spread, generators]
 flags: [generated]
 includes: [compareArray.js]
 info: |
@@ -13,6 +13,7 @@ info: |
     GeneratorMethod[Yield, Await]:
       * PropertyName[?Yield, ?Await] ( UniqueFormalParameters[+Yield, ~Await] ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/expressions/super/call-spread-err-mult-err-expr-throws.js b/test/language/expressions/super/call-spread-err-mult-err-expr-throws.js
index f3cf3ea780..a411b1abdb 100644
--- a/test/language/expressions/super/call-spread-err-mult-err-expr-throws.js
+++ b/test/language/expressions/super/call-spread-err-mult-err-expr-throws.js
@@ -5,6 +5,7 @@
 description: Spread operator following other arguments when evaluation throws (SuperCall)
 esid: sec-super-keyword-runtime-semantics-evaluation
 es6id: 12.3.5.1
+features: [generators]
 flags: [generated]
 info: |
     SuperCall : super Arguments
@@ -24,6 +25,7 @@ info: |
     2. Let spreadRef be the result of evaluating AssignmentExpression.
     3. Let iterator be GetIterator(GetValue(spreadRef) ).
     4. ReturnIfAbrupt(iterator).
+
 ---*/
 
 class Test262ParentClass {
diff --git a/test/language/expressions/yield/arguments-object-attributes.js b/test/language/expressions/yield/arguments-object-attributes.js
index 0b07fe237e..d495fdbae6 100644
--- a/test/language/expressions/yield/arguments-object-attributes.js
+++ b/test/language/expressions/yield/arguments-object-attributes.js
@@ -4,6 +4,7 @@
 es6id: 25.2
 description: >
     Attributes of the `arguments` object are valid yield expression operands.
+features: [generators]
 ---*/
 
 function* g() {
diff --git a/test/language/expressions/yield/captured-free-vars.js b/test/language/expressions/yield/captured-free-vars.js
index 7452642c66..38d96ae5bc 100644
--- a/test/language/expressions/yield/captured-free-vars.js
+++ b/test/language/expressions/yield/captured-free-vars.js
@@ -5,6 +5,7 @@ es6id: 25.2
 description: >
     Free variables captured within the GeneratorFunction closure are valid
     yield expression operands.
+features: [generators]
 ---*/
 
 var a = 1;
diff --git a/test/language/expressions/yield/formal-parameters-after-reassignment-non-strict.js b/test/language/expressions/yield/formal-parameters-after-reassignment-non-strict.js
index 4982ad0ea1..f0c7e12af3 100644
--- a/test/language/expressions/yield/formal-parameters-after-reassignment-non-strict.js
+++ b/test/language/expressions/yield/formal-parameters-after-reassignment-non-strict.js
@@ -5,6 +5,7 @@ es6id: 25.2
 description: >
     Formal parameters are valid yield expression operands.
 flags: [noStrict]
+features: [generators]
 ---*/
 
 function* g(a, b, c, d) {
diff --git a/test/language/expressions/yield/formal-parameters-after-reassignment-strict.js b/test/language/expressions/yield/formal-parameters-after-reassignment-strict.js
index 9af7d44595..0f2b121043 100644
--- a/test/language/expressions/yield/formal-parameters-after-reassignment-strict.js
+++ b/test/language/expressions/yield/formal-parameters-after-reassignment-strict.js
@@ -5,6 +5,7 @@ es6id: 25.2
 description: >
     Formal parameters are valid yield expression operands.
 flags: [onlyStrict]
+features: [generators]
 ---*/
 
 function* g(a, b, c, d) {
diff --git a/test/language/expressions/yield/formal-parameters.js b/test/language/expressions/yield/formal-parameters.js
index 31c7f1515e..fdd4b8591b 100644
--- a/test/language/expressions/yield/formal-parameters.js
+++ b/test/language/expressions/yield/formal-parameters.js
@@ -4,6 +4,7 @@
 es6id: 25.2
 description: >
     Formal parameters are valid yield expression operands.
+features: [generators]
 ---*/
 
 function* g(a, b, c, d) {
diff --git a/test/language/expressions/yield/from-catch.js b/test/language/expressions/yield/from-catch.js
index 4cc788d3a3..66d6575ff0 100644
--- a/test/language/expressions/yield/from-catch.js
+++ b/test/language/expressions/yield/from-catch.js
@@ -5,6 +5,7 @@ es6id: 25.2
 description: >
     The behavior of `yield` expressions should not be affected when they appear
     within the `catch` block of `try` statements.
+features: [generators]
 ---*/
 
 function* g() {
diff --git a/test/language/expressions/yield/from-try.js b/test/language/expressions/yield/from-try.js
index e058c6d4ce..fc4203e93b 100644
--- a/test/language/expressions/yield/from-try.js
+++ b/test/language/expressions/yield/from-try.js
@@ -5,6 +5,7 @@ es6id: 25.2
 description: >
     The behavior of `yield` expressions should not be affected when they appear
     within the `try` block of `try` statements.
+features: [generators]
 ---*/
 
 function* g() {
diff --git a/test/language/expressions/yield/from-with.js b/test/language/expressions/yield/from-with.js
index b9ce872356..6bfc3bd1b2 100644
--- a/test/language/expressions/yield/from-with.js
+++ b/test/language/expressions/yield/from-with.js
@@ -6,6 +6,7 @@ description: >
     The operand to a `yield` expression should honor the semantics of the
     `with` statement.
 flags: [noStrict]
+features: [generators]
 ---*/
 
 function* g() {
diff --git a/test/language/expressions/yield/in-iteration-stmt.js b/test/language/expressions/yield/in-iteration-stmt.js
index e0d0220ba3..089f6d312c 100644
--- a/test/language/expressions/yield/in-iteration-stmt.js
+++ b/test/language/expressions/yield/in-iteration-stmt.js
@@ -13,6 +13,7 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+features: [generators]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/test/language/expressions/yield/in-rltn-expr.js b/test/language/expressions/yield/in-rltn-expr.js
index c923646516..6e4f7a1eac 100644
--- a/test/language/expressions/yield/in-rltn-expr.js
+++ b/test/language/expressions/yield/in-rltn-expr.js
@@ -10,6 +10,7 @@ info: |
   Syntax
 
   yield [no LineTerminator here] AssignmentExpression[?In, +Yield]
+features: [generators]
 ---*/
 
 var obj = Object.create(null);
diff --git a/test/language/expressions/yield/iter-value-specified.js b/test/language/expressions/yield/iter-value-specified.js
index 36bc0cf89d..c092f07307 100644
--- a/test/language/expressions/yield/iter-value-specified.js
+++ b/test/language/expressions/yield/iter-value-specified.js
@@ -6,6 +6,7 @@ description: >
     When the `next` method of a generator-produced iterable is invoked without
     an argument, the corresponding `yield` expression should be evaluated as
     `undefined`.
+features: [generators]
 ---*/
 
 function* g() { actual = yield; }
diff --git a/test/language/expressions/yield/iter-value-unspecified.js b/test/language/expressions/yield/iter-value-unspecified.js
index 782f09f394..87d6cd5ef4 100644
--- a/test/language/expressions/yield/iter-value-unspecified.js
+++ b/test/language/expressions/yield/iter-value-unspecified.js
@@ -6,6 +6,7 @@ description: >
     When the `next` method of a generator-produced iterable is invoked without
     an argument, the corresponding `yield` expression should be evaluated as
     `undefined`.
+features: [generators]
 ---*/
 
 function* g() { actual = yield; }
diff --git a/test/language/expressions/yield/rhs-iter.js b/test/language/expressions/yield/rhs-iter.js
index fe03faeb9d..a53222be37 100644
--- a/test/language/expressions/yield/rhs-iter.js
+++ b/test/language/expressions/yield/rhs-iter.js
@@ -11,7 +11,7 @@ info: |
   1. Let exprRef be the result of evaluating AssignmentExpression.
   2. Let value be ? GetValue(exprRef).
   3. Return ? GeneratorYield(CreateIterResultObject(value, false)).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var callCount = 0;
diff --git a/test/language/expressions/yield/rhs-omitted.js b/test/language/expressions/yield/rhs-omitted.js
index c06dd7766a..b8f592ebb8 100644
--- a/test/language/expressions/yield/rhs-omitted.js
+++ b/test/language/expressions/yield/rhs-omitted.js
@@ -2,10 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` is a valid expression within generator function bodies.
-  es6id: 14.4
- ---*/
+description: >
+    `yield` is a valid expression within generator function bodies.
+es6id: 14.4
+features: [generators]
+---*/
 
 var iter, result;
 function* g1() { (yield) }
diff --git a/test/language/expressions/yield/rhs-primitive.js b/test/language/expressions/yield/rhs-primitive.js
index 3c2d56643b..6dd0925f34 100644
--- a/test/language/expressions/yield/rhs-primitive.js
+++ b/test/language/expressions/yield/rhs-primitive.js
@@ -2,10 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` is a valid expression within generator function bodies.
-  es6id: 14.4
- ---*/
+description: >
+    `yield` is a valid expression within generator function bodies.
+es6id: 14.4
+features: [generators]
+---*/
 
 var result, iter;
 function* g1() { (yield 1) }
diff --git a/test/language/expressions/yield/rhs-regexp.js b/test/language/expressions/yield/rhs-regexp.js
index 9df716d3d1..804ffff87f 100644
--- a/test/language/expressions/yield/rhs-regexp.js
+++ b/test/language/expressions/yield/rhs-regexp.js
@@ -8,6 +8,7 @@ description: >
 info: >
   The syntactic context immediately following yield requires use of the
   InputElementRegExpOrTemplateTail lexical goal.
+features: [generators]
 ---*/
 
 var complete = false;
diff --git a/test/language/expressions/yield/rhs-template-middle.js b/test/language/expressions/yield/rhs-template-middle.js
index a6ea3d350c..b294426dd0 100644
--- a/test/language/expressions/yield/rhs-template-middle.js
+++ b/test/language/expressions/yield/rhs-template-middle.js
@@ -7,6 +7,7 @@ description: YieldExpression may be followed by a TemplateMiddle construct
 info: >
   The syntactic context immediately following yield requires use of the
   InputElementRegExpOrTemplateTail lexical goal.
+features: [generators]
 ---*/
 
 var complete = false;
diff --git a/test/language/expressions/yield/rhs-unresolvable.js b/test/language/expressions/yield/rhs-unresolvable.js
index 92f2cd8068..d772916ecc 100644
--- a/test/language/expressions/yield/rhs-unresolvable.js
+++ b/test/language/expressions/yield/rhs-unresolvable.js
@@ -9,6 +9,7 @@ info: |
 
   1. Let exprRef be the result of evaluating AssignmentExpression.
   2. Let value be ? GetValue(exprRef).
+features: [generators]
 ---*/
 
 var err;
diff --git a/test/language/expressions/yield/rhs-yield.js b/test/language/expressions/yield/rhs-yield.js
index 4758167883..6d5d50fe87 100644
--- a/test/language/expressions/yield/rhs-yield.js
+++ b/test/language/expressions/yield/rhs-yield.js
@@ -4,6 +4,7 @@
 es6id: 25.2
 description: >
     Yield expressions are valid yield expression operands.
+features: [generators]
 ---*/
 
 function* g() {
diff --git a/test/language/expressions/yield/star-array.js b/test/language/expressions/yield/star-array.js
index b82a29e935..b8e6f52516 100644
--- a/test/language/expressions/yield/star-array.js
+++ b/test/language/expressions/yield/star-array.js
@@ -5,6 +5,7 @@ es6id: 25.2
 description: >
     When an array is the operand of a `yield *` expression, the generator
     should produce an iterator that visits each element in order.
+features: [generators]
 ---*/
 
 function* g() {
diff --git a/test/language/expressions/yield/star-in-iteration-stmt.js b/test/language/expressions/yield/star-in-iteration-stmt.js
index c3fa84d7b5..35c56fd757 100644
--- a/test/language/expressions/yield/star-in-iteration-stmt.js
+++ b/test/language/expressions/yield/star-in-iteration-stmt.js
@@ -13,6 +13,7 @@ info: |
 negative:
   phase: early
   type: SyntaxError
+features: [generators]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/test/language/expressions/yield/star-in-rltn-expr.js b/test/language/expressions/yield/star-in-rltn-expr.js
index 6c3b8100e1..e2a20c73b6 100644
--- a/test/language/expressions/yield/star-in-rltn-expr.js
+++ b/test/language/expressions/yield/star-in-rltn-expr.js
@@ -10,7 +10,7 @@ info: |
   Syntax
 
   yield [no LineTerminator here] AssignmentExpression[?In, +Yield]
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var obj = Object.create({ hit: true });
diff --git a/test/language/expressions/yield/star-iterable.js b/test/language/expressions/yield/star-iterable.js
index 668fc28bf5..ddb598074e 100644
--- a/test/language/expressions/yield/star-iterable.js
+++ b/test/language/expressions/yield/star-iterable.js
@@ -5,7 +5,7 @@ es6id: 25.2
 description: >
     When an iterator is the operand of a `yield *` expression, the generator
     should produce an iterator that visits each iterated item.
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var results = [{ value: 1 }, { value: 8 }, { value: 34, done: true }];
diff --git a/test/language/expressions/yield/star-rhs-iter-get-call-err.js b/test/language/expressions/yield/star-rhs-iter-get-call-err.js
index 27ca9e910a..c555df2448 100644
--- a/test/language/expressions/yield/star-rhs-iter-get-call-err.js
+++ b/test/language/expressions/yield/star-rhs-iter-get-call-err.js
@@ -16,7 +16,7 @@ info: |
   1. If method was not passed, then
      a. Let method be ? GetMethod(obj, @@iterator).
   2. Let iterator be ? Call(method, obj).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var thrown = new Test262Error();
diff --git a/test/language/expressions/yield/star-rhs-iter-get-call-non-obj.js b/test/language/expressions/yield/star-rhs-iter-get-call-non-obj.js
index af64e0253c..f5622c0be1 100644
--- a/test/language/expressions/yield/star-rhs-iter-get-call-non-obj.js
+++ b/test/language/expressions/yield/star-rhs-iter-get-call-non-obj.js
@@ -17,7 +17,7 @@ info: |
      a. Let method be ? GetMethod(obj, @@iterator).
   2. Let iterator be ? Call(method, obj).
   3. If Type(iterator) is not Object, throw a TypeError exception.
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var badIter = {};
diff --git a/test/language/expressions/yield/star-rhs-iter-get-get-err.js b/test/language/expressions/yield/star-rhs-iter-get-get-err.js
index 555be70d7a..8218b0ec4e 100644
--- a/test/language/expressions/yield/star-rhs-iter-get-get-err.js
+++ b/test/language/expressions/yield/star-rhs-iter-get-get-err.js
@@ -15,7 +15,7 @@ info: |
 
   1. If method was not passed, then
      a. Let method be ? GetMethod(obj, @@iterator).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var thrown = new Test262Error();
diff --git a/test/language/expressions/yield/star-rhs-iter-nrml-next-call-err.js b/test/language/expressions/yield/star-rhs-iter-nrml-next-call-err.js
index d472ddf9d5..f301ab26aa 100644
--- a/test/language/expressions/yield/star-rhs-iter-nrml-next-call-err.js
+++ b/test/language/expressions/yield/star-rhs-iter-nrml-next-call-err.js
@@ -21,7 +21,7 @@ info: |
      [...]
   2. Else,
      a. Let result be ? Invoke(iterator, "next", « value »).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var thrown = new Test262Error();
diff --git a/test/language/expressions/yield/star-rhs-iter-nrml-next-call-non-obj.js b/test/language/expressions/yield/star-rhs-iter-nrml-next-call-non-obj.js
index 55788a9ccd..ed6afe7613 100644
--- a/test/language/expressions/yield/star-rhs-iter-nrml-next-call-non-obj.js
+++ b/test/language/expressions/yield/star-rhs-iter-nrml-next-call-non-obj.js
@@ -22,7 +22,7 @@ info: |
      [...]
   2. Else,
      a. Let result be ? Invoke(iterator, "next", « value »).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var badIter = {};
diff --git a/test/language/expressions/yield/star-rhs-iter-nrml-next-get-err.js b/test/language/expressions/yield/star-rhs-iter-nrml-next-get-err.js
index 4f9213c5f3..33099374ff 100644
--- a/test/language/expressions/yield/star-rhs-iter-nrml-next-get-err.js
+++ b/test/language/expressions/yield/star-rhs-iter-nrml-next-get-err.js
@@ -21,7 +21,7 @@ info: |
      [...]
   2. Else,
      a. Let result be ? Invoke(iterator, "next", « value »).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var thrown = new Test262Error();
diff --git a/test/language/expressions/yield/star-rhs-iter-nrml-next-invoke.js b/test/language/expressions/yield/star-rhs-iter-nrml-next-invoke.js
index e42dfa8499..f64b0a379b 100644
--- a/test/language/expressions/yield/star-rhs-iter-nrml-next-invoke.js
+++ b/test/language/expressions/yield/star-rhs-iter-nrml-next-invoke.js
@@ -22,7 +22,7 @@ info: |
   2. Else,
      a. Let result be ? Invoke(iterator, "next", « value »).
      [...]
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var args, thisValue;
diff --git a/test/language/expressions/yield/star-rhs-iter-nrml-res-done-err.js b/test/language/expressions/yield/star-rhs-iter-nrml-res-done-err.js
index 98222fef63..8b0d08421d 100644
--- a/test/language/expressions/yield/star-rhs-iter-nrml-res-done-err.js
+++ b/test/language/expressions/yield/star-rhs-iter-nrml-res-done-err.js
@@ -21,7 +21,7 @@ info: |
 
   1. Assert: Type(iterResult) is Object.
   2. Return ToBoolean(? Get(iterResult, "done")).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var thrown = new Test262Error();
diff --git a/test/language/expressions/yield/star-rhs-iter-nrml-res-done-no-value.js b/test/language/expressions/yield/star-rhs-iter-nrml-res-done-no-value.js
index 7433355783..ba6cda7b82 100644
--- a/test/language/expressions/yield/star-rhs-iter-nrml-res-done-no-value.js
+++ b/test/language/expressions/yield/star-rhs-iter-nrml-res-done-no-value.js
@@ -18,7 +18,7 @@ info: |
         ii. Let done be ? IteratorComplete(innerResult).
         iii. If done is true, then
              1. Return ? IteratorValue(innerResult).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var badIter = {};
diff --git a/test/language/expressions/yield/star-rhs-iter-nrml-res-value-err.js b/test/language/expressions/yield/star-rhs-iter-nrml-res-value-err.js
index e6a2e23021..0766084a84 100644
--- a/test/language/expressions/yield/star-rhs-iter-nrml-res-value-err.js
+++ b/test/language/expressions/yield/star-rhs-iter-nrml-res-value-err.js
@@ -24,7 +24,7 @@ info: |
 
   1. Assert: Type(iterResult) is Object.
   2. Return ? Get(iterResult, "value").
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var thrown = new Test262Error();
diff --git a/test/language/expressions/yield/star-rhs-iter-nrml-res-value-final.js b/test/language/expressions/yield/star-rhs-iter-nrml-res-value-final.js
index c6e40c75e6..c756c6c02d 100644
--- a/test/language/expressions/yield/star-rhs-iter-nrml-res-value-final.js
+++ b/test/language/expressions/yield/star-rhs-iter-nrml-res-value-final.js
@@ -22,7 +22,7 @@ info: |
 
   1. Assert: Type(iterResult) is Object.
   2. Return ? Get(iterResult, "value").
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var quickIter = {};
diff --git a/test/language/expressions/yield/star-rhs-iter-rtrn-no-rtrn.js b/test/language/expressions/yield/star-rhs-iter-rtrn-no-rtrn.js
index 33a5ac8773..2f19eda5b6 100644
--- a/test/language/expressions/yield/star-rhs-iter-rtrn-no-rtrn.js
+++ b/test/language/expressions/yield/star-rhs-iter-rtrn-no-rtrn.js
@@ -21,7 +21,7 @@ info: |
         i. Assert: received.[[Type]] is return.
         ii. Let return be ? GetMethod(iterator, "return").
         iii. If return is undefined, return Completion(received).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var badIter = {};
diff --git a/test/language/expressions/yield/star-rhs-iter-rtrn-res-done-err.js b/test/language/expressions/yield/star-rhs-iter-rtrn-res-done-err.js
index 147f938892..e417c28683 100644
--- a/test/language/expressions/yield/star-rhs-iter-rtrn-res-done-err.js
+++ b/test/language/expressions/yield/star-rhs-iter-rtrn-res-done-err.js
@@ -31,7 +31,7 @@ info: |
 
   1. Assert: Type(iterResult) is Object.
   2. Return ToBoolean(? Get(iterResult, "done")).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var thrown = new Test262Error();
diff --git a/test/language/expressions/yield/star-rhs-iter-rtrn-res-done-no-value.js b/test/language/expressions/yield/star-rhs-iter-rtrn-res-done-no-value.js
index 240da6907b..a2ea706646 100644
--- a/test/language/expressions/yield/star-rhs-iter-rtrn-res-done-no-value.js
+++ b/test/language/expressions/yield/star-rhs-iter-rtrn-res-done-no-value.js
@@ -36,7 +36,7 @@ info: |
 
   1. Assert: Type(iterResult) is Object.
   2. Return ToBoolean(? Get(iterResult, "done")).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var badIter = {};
diff --git a/test/language/expressions/yield/star-rhs-iter-rtrn-res-value-err.js b/test/language/expressions/yield/star-rhs-iter-rtrn-res-value-err.js
index c72902192e..957a860fc0 100644
--- a/test/language/expressions/yield/star-rhs-iter-rtrn-res-value-err.js
+++ b/test/language/expressions/yield/star-rhs-iter-rtrn-res-value-err.js
@@ -34,7 +34,7 @@ info: |
 
   1. Assert: Type(iterResult) is Object.
   2. Return ? Get(iterResult, "value").
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var thrown = new Test262Error();
diff --git a/test/language/expressions/yield/star-rhs-iter-rtrn-res-value-final.js b/test/language/expressions/yield/star-rhs-iter-rtrn-res-value-final.js
index 4cc6d5f686..33eb437a54 100644
--- a/test/language/expressions/yield/star-rhs-iter-rtrn-res-value-final.js
+++ b/test/language/expressions/yield/star-rhs-iter-rtrn-res-value-final.js
@@ -31,7 +31,7 @@ info: |
                 [[Target]]: empty}.
         viii. Let received be GeneratorYield(innerReturnResult).
 
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var quickIter = {};
diff --git a/test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-call-err.js b/test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-call-err.js
index 21e039df23..1d72b16da6 100644
--- a/test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-call-err.js
+++ b/test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-call-err.js
@@ -22,7 +22,7 @@ info: |
         iii. If return is undefined, return Completion(received).
         iv. Let innerReturnResult be ? Call(return, iterator, «
             received.[[Value]] »).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var thrown = new Test262Error();
diff --git a/test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-call-non-obj.js b/test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-call-non-obj.js
index 74e7ce3512..58f280aa15 100644
--- a/test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-call-non-obj.js
+++ b/test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-call-non-obj.js
@@ -25,7 +25,7 @@ info: |
             received.[[Value]] »).
         v. If Type(innerReturnResult) is not Object, throw a TypeError
            exception.
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var badIter = {};
diff --git a/test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-get-err.js b/test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-get-err.js
index a09da12609..a09f623357 100644
--- a/test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-get-err.js
+++ b/test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-get-err.js
@@ -19,7 +19,7 @@ info: |
      c. Else,
         i. Assert: received.[[Type]] is return.
         ii. Let return be ? GetMethod(iterator, "return").
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var thrown = new Test262Error();
diff --git a/test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-invoke.js b/test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-invoke.js
index 066eb7a250..25df77c7e8 100644
--- a/test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-invoke.js
+++ b/test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-invoke.js
@@ -23,7 +23,7 @@ info: |
         iv. Let innerReturnResult be ? Call(return, iterator, «
             received.[[Value]] »).
         [...]
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var args, thisValue;
diff --git a/test/language/expressions/yield/star-rhs-iter-thrw-res-done-err.js b/test/language/expressions/yield/star-rhs-iter-thrw-res-done-err.js
index aa874001cc..9413eafbaf 100644
--- a/test/language/expressions/yield/star-rhs-iter-thrw-res-done-err.js
+++ b/test/language/expressions/yield/star-rhs-iter-thrw-res-done-err.js
@@ -30,7 +30,7 @@ info: |
 
   1. Assert: Type(iterResult) is Object.
   2. Return ToBoolean(? Get(iterResult, "done")).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var thrown = new Test262Error();
diff --git a/test/language/expressions/yield/star-rhs-iter-thrw-res-done-no-value.js b/test/language/expressions/yield/star-rhs-iter-thrw-res-done-no-value.js
index 26ecc2bfca..f79001c9fe 100644
--- a/test/language/expressions/yield/star-rhs-iter-thrw-res-done-no-value.js
+++ b/test/language/expressions/yield/star-rhs-iter-thrw-res-done-no-value.js
@@ -31,7 +31,7 @@ info: |
 
   1. Assert: Type(iterResult) is Object.
   2. Return ToBoolean(? Get(iterResult, "done")).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var badIter = {};
diff --git a/test/language/expressions/yield/star-rhs-iter-thrw-res-value-err.js b/test/language/expressions/yield/star-rhs-iter-thrw-res-value-err.js
index ff8f37a004..acfb355861 100644
--- a/test/language/expressions/yield/star-rhs-iter-thrw-res-value-err.js
+++ b/test/language/expressions/yield/star-rhs-iter-thrw-res-value-err.js
@@ -33,7 +33,7 @@ info: |
 
   1. Assert: Type(iterResult) is Object.
   2. Return ? Get(iterResult, "value").
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var thrown = new Test262Error();
diff --git a/test/language/expressions/yield/star-rhs-iter-thrw-res-value-final.js b/test/language/expressions/yield/star-rhs-iter-thrw-res-value-final.js
index df0e255119..5b534c1043 100644
--- a/test/language/expressions/yield/star-rhs-iter-thrw-res-value-final.js
+++ b/test/language/expressions/yield/star-rhs-iter-thrw-res-value-final.js
@@ -26,7 +26,7 @@ info: |
             5. If done is true, then
                [...]
             6. Let received be GeneratorYield(innerResult).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var quickIter = {};
diff --git a/test/language/expressions/yield/star-rhs-iter-thrw-thrw-call-err.js b/test/language/expressions/yield/star-rhs-iter-thrw-thrw-call-err.js
index dfd66e48fa..787d19f3ee 100644
--- a/test/language/expressions/yield/star-rhs-iter-thrw-thrw-call-err.js
+++ b/test/language/expressions/yield/star-rhs-iter-thrw-thrw-call-err.js
@@ -19,7 +19,7 @@ info: |
         ii. If throw is not undefined, then
             1. Let innerResult be ? Call(throw, iterator, « received.[[Value]]
                »).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var thrown = new Test262Error();
diff --git a/test/language/expressions/yield/star-rhs-iter-thrw-thrw-call-non-obj.js b/test/language/expressions/yield/star-rhs-iter-thrw-thrw-call-non-obj.js
index fa413643db..ca2ef60b1c 100644
--- a/test/language/expressions/yield/star-rhs-iter-thrw-thrw-call-non-obj.js
+++ b/test/language/expressions/yield/star-rhs-iter-thrw-thrw-call-non-obj.js
@@ -24,7 +24,7 @@ info: |
                propagated. Normal completions from an inner throw method are
                processed similarly to an inner next.
             3. If Type(innerResult) is not Object, throw a TypeError exception.
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var badIter = {};
diff --git a/test/language/expressions/yield/star-rhs-iter-thrw-thrw-get-err.js b/test/language/expressions/yield/star-rhs-iter-thrw-thrw-get-err.js
index dd7dd12d5d..02df283ca3 100644
--- a/test/language/expressions/yield/star-rhs-iter-thrw-thrw-get-err.js
+++ b/test/language/expressions/yield/star-rhs-iter-thrw-thrw-get-err.js
@@ -16,7 +16,7 @@ info: |
         [...]
      b. Else if received.[[Type]] is throw, then
         i. Let throw be ? GetMethod(iterator, "throw").
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var thrown = new Test262Error();
diff --git a/test/language/expressions/yield/star-rhs-iter-thrw-thrw-invoke.js b/test/language/expressions/yield/star-rhs-iter-thrw-thrw-invoke.js
index fdb83920df..07692a54b5 100644
--- a/test/language/expressions/yield/star-rhs-iter-thrw-thrw-invoke.js
+++ b/test/language/expressions/yield/star-rhs-iter-thrw-thrw-invoke.js
@@ -20,7 +20,7 @@ info: |
             1. Let innerResult be ? Call(throw, iterator, « received.[[Value]]
                »).
             [...]
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var args, thisValue;
diff --git a/test/language/expressions/yield/star-rhs-iter-thrw-violation-no-rtrn.js b/test/language/expressions/yield/star-rhs-iter-thrw-violation-no-rtrn.js
index d145ccd00c..e8213dc2b3 100644
--- a/test/language/expressions/yield/star-rhs-iter-thrw-violation-no-rtrn.js
+++ b/test/language/expressions/yield/star-rhs-iter-thrw-violation-no-rtrn.js
@@ -37,7 +37,7 @@ info: |
   2. Assert: completion is a Completion Record.
   3. Let return be ? GetMethod(iterator, "return").
   4. If return is undefined, return Completion(completion).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var badIter = {};
diff --git a/test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-call-err.js b/test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-call-err.js
index 0df0504261..ecc96d29ee 100644
--- a/test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-call-err.js
+++ b/test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-call-err.js
@@ -37,7 +37,7 @@ info: |
   6. If completion.[[Type]] is throw, return Completion(completion).
   7. If innerResult.[[Type]] is throw, return Completion(innerResult).
   8. If Type(innerResult.[[Value]]) is not Object, throw a TypeError exception.
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var badIter = {};
diff --git a/test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-call-non-obj.js b/test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-call-non-obj.js
index 8f31b2f769..aa0bb6d115 100644
--- a/test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-call-non-obj.js
+++ b/test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-call-non-obj.js
@@ -37,7 +37,7 @@ info: |
   6. If completion.[[Type]] is throw, return Completion(completion).
   7. If innerResult.[[Type]] is throw, return Completion(innerResult).
   8. If Type(innerResult.[[Value]]) is not Object, throw a TypeError exception.
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var badIter = {};
diff --git a/test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-get-err.js b/test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-get-err.js
index d0693b2185..142b5ed120 100644
--- a/test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-get-err.js
+++ b/test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-get-err.js
@@ -32,7 +32,7 @@ info: |
   1. Assert: Type(iterator) is Object.
   2. Assert: completion is a Completion Record.
   3. Let return be ? GetMethod(iterator, "return").
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var thrown = new Test262Error();
diff --git a/test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-invoke.js b/test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-invoke.js
index 78b0306181..2b83fe0fb2 100644
--- a/test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-invoke.js
+++ b/test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-invoke.js
@@ -42,7 +42,7 @@ info: |
   7. If innerResult.[[Type]] is throw, return Completion(innerResult).
   8. If Type(innerResult.[[Value]]) is not Object, throw a TypeError exception.
   9. Return Completion(completion).
-features: [Symbol.iterator]
+features: [generators, Symbol.iterator]
 ---*/
 
 var badIter = {};
diff --git a/test/language/expressions/yield/star-rhs-unresolvable.js b/test/language/expressions/yield/star-rhs-unresolvable.js
index a00d51c404..e27e02fdd5 100644
--- a/test/language/expressions/yield/star-rhs-unresolvable.js
+++ b/test/language/expressions/yield/star-rhs-unresolvable.js
@@ -9,6 +9,7 @@ info: |
 
   1. Let exprRef be the result of evaluating AssignmentExpression.
   2. Let value be ? GetValue(exprRef).
+features: [generators]
 ---*/
 
 var err;
diff --git a/test/language/expressions/yield/star-string.js b/test/language/expressions/yield/star-string.js
index ef636e6307..b125f488f5 100644
--- a/test/language/expressions/yield/star-string.js
+++ b/test/language/expressions/yield/star-string.js
@@ -5,6 +5,7 @@ es6id: 25.2
 description: >
     When a string is the operand of a `yield *` expression, the generator
     should produce an iterator that visits each character in order.
+features: [generators]
 ---*/
 
 function* g() {
diff --git a/test/language/expressions/yield/then-return.js b/test/language/expressions/yield/then-return.js
index 5f4af89d46..c74f23ddfc 100644
--- a/test/language/expressions/yield/then-return.js
+++ b/test/language/expressions/yield/then-return.js
@@ -6,6 +6,7 @@ description: >
     When a generator body contains a yield statement followed by a return
     statement, it should produce an iterator that visits the yieled value and
     completes on the returned value.
+features: [generators]
 ---*/
 
 function* g() { yield 1; return 2; }
diff --git a/test/language/expressions/yield/within-for.js b/test/language/expressions/yield/within-for.js
index 95b56786d7..18b16a846c 100644
--- a/test/language/expressions/yield/within-for.js
+++ b/test/language/expressions/yield/within-for.js
@@ -4,6 +4,7 @@
 es6id: 25.2
 description: >
     `yield` expressions should suspend `for` loop iteration.
+features: [generators]
 ---*/
 
 function* g() {
diff --git a/test/language/statements/async-generator/dstr-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/async-generator/dstr-ary-ptrn-elem-ary-empty-init.js
index 002e831708..e90a3e1402 100644
--- a/test/language/statements/async-generator/dstr-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/async-generator/dstr-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (async generator function declaration)
 esid: sec-asyncgenerator-definitions-instantiatefunctionobject
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
@@ -27,6 +27,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/async-generator/dstr-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/async-generator/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
index ba47c6da01..f7132d0bbf 100644
--- a/test/language/statements/async-generator/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/async-generator/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (async generator function declaration)
 esid: sec-asyncgenerator-definitions-instantiatefunctionobject
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
@@ -29,6 +29,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 
diff --git a/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
index 2f7f07c61a..ba59d8071f 100644
--- a/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (async generator function declaration (default parameter))
 esid: sec-asyncgenerator-definitions-instantiatefunctionobject
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
@@ -27,6 +27,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index 54c2700c0b..4fef5966c8 100644
--- a/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/async-generator/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (async generator function declaration (default parameter))
 esid: sec-asyncgenerator-definitions-instantiatefunctionobject
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
@@ -29,6 +29,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 
diff --git a/test/language/statements/async-generator/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/async-generator/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
index 685bddecfa..1b748b4c9b 100644
--- a/test/language/statements/async-generator/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/async-generator/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (async generator function declaration (default parameter))
 esid: sec-asyncgenerator-definitions-instantiatefunctionobject
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
@@ -28,6 +28,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 
diff --git a/test/language/statements/async-generator/dstr-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/async-generator/dstr-obj-ptrn-id-init-fn-name-gen.js
index ce0291beb8..e04270f339 100644
--- a/test/language/statements/async-generator/dstr-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/async-generator/dstr-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (async generator function declaration)
 esid: sec-asyncgenerator-definitions-instantiatefunctionobject
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier
@@ -28,6 +28,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 
diff --git a/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elem-ary-empty-init.js
index 343b10ff59..748560d28e 100644
--- a/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -50,6 +50,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
index 2bd41c802e..2479587c60 100644
--- a/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-async-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -52,6 +52,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 
diff --git a/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
index d715a34008..d45a90e7b6 100644
--- a/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (class expression async generator method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -50,6 +50,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index c17a229874..a190955ed4 100644
--- a/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression async generator method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -52,6 +52,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 
diff --git a/test/language/statements/class/dstr-async-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/class/dstr-async-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
index 2fa14d8077..3a5af51867 100644
--- a/test/language/statements/class/dstr-async-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-async-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression async generator method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -51,6 +51,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 
diff --git a/test/language/statements/class/dstr-async-gen-meth-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/class/dstr-async-gen-meth-obj-ptrn-id-init-fn-name-gen.js
index a378841f7d..7df241377f 100644
--- a/test/language/statements/class/dstr-async-gen-meth-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-async-gen-meth-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -51,6 +51,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 
diff --git a/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elem-ary-empty-init.js
index 6ecf68c3fa..4adf7f0912 100644
--- a/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (static class expression async generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -50,6 +50,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
index 077f273e00..faa043dcb3 100644
--- a/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression async generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -52,6 +52,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 
diff --git a/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
index 0498324292..bf400b3412 100644
--- a/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (static class expression async generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -50,6 +50,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index a2db9b5fa5..b141deabbc 100644
--- a/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression async generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -52,6 +52,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 
diff --git a/test/language/statements/class/dstr-async-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/class/dstr-async-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
index 604fe5e0b4..8247c32ae7 100644
--- a/test/language/statements/class/dstr-async-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-async-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression async generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -51,6 +51,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 
diff --git a/test/language/statements/class/dstr-async-gen-meth-static-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/class/dstr-async-gen-meth-static-obj-ptrn-id-init-fn-name-gen.js
index db6ac1b1eb..1a75f42f5f 100644
--- a/test/language/statements/class/dstr-async-gen-meth-static-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-async-gen-meth-static-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression async generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated, async]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -51,6 +51,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 
diff --git a/test/language/statements/class/dstr-gen-meth-ary-init-iter-close.js b/test/language/statements/class/dstr-gen-meth-ary-init-iter-close.js
index 1ccf1f2ced..047e929b56 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-init-iter-close.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-init-iter-close.js
@@ -5,7 +5,7 @@
 description: Iterator is closed when not exhausted by pattern evaluation (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-ary-init-iter-get-err.js b/test/language/statements/class/dstr-gen-meth-ary-init-iter-get-err.js
index 48c2b2c28d..42f691fea4 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-init-iter-get-err.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-init-iter-get-err.js
@@ -5,7 +5,7 @@
 description: Abrupt completion returned by GetIterator (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-ary-init-iter-no-close.js b/test/language/statements/class/dstr-gen-meth-ary-init-iter-no-close.js
index 3b09577c28..d930f26128 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-init-iter-no-close.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-init-iter-no-close.js
@@ -5,7 +5,7 @@
 description: Iterator is not closed when exhausted by pattern evaluation (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-ary-name-iter-val.js b/test/language/statements/class/dstr-gen-meth-ary-name-iter-val.js
index 25528c77ee..05032495cf 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-name-iter-val.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-name-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding with normal value iteration (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-elem-init.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-elem-init.js
index f1e1a1b6bb..b93c515c08 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-elem-init.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-elem-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-elem-iter.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-elem-iter.js
index 72c0c41e6c..f51250cb15 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-elem-iter.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-elem-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-empty-init.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-empty-init.js
index 1eaf62a734..dbb9d2c4af 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -70,6 +70,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-empty-iter.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-empty-iter.js
index 4779067283..3654be8557 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-empty-iter.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-empty-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-rest-init.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-rest-init.js
index 1bb4915926..4f1b5a68b9 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-rest-init.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-rest-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-rest-iter.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-rest-iter.js
index 4313bb715d..8c55442fba 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-rest-iter.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-rest-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-val-null.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-val-null.js
index faabbc62b2..32baeae645 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-val-null.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-ary-val-null.js
@@ -5,7 +5,7 @@
 description: Nested array destructuring with a null value (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-exhausted.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-exhausted.js
index 5cfdcebed1..0435cfb289 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-exhausted.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-exhausted.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an exhausted iterator (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-arrow.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-arrow.js
index 7e104fe141..f8fec8d2e2 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-arrow.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to arrow functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-class.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-class.js
index f102d73233..771be003da 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-class.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-cover.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-cover.js
index c00406754f..47993b6855 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-cover.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-fn.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-fn.js
index 0def75d5dd..19f8ba418e 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-fn.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-gen.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
index 9a747af893..229aa95e52 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -72,6 +72,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-hole.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-hole.js
index e5fc782850..016420e44e 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-hole.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-hole.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with a "hole" (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-skipped.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-skipped.js
index b9e703ebba..064225b9a2 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-skipped.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-throws.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-throws.js
index 0a7b28267e..c7937ec0af 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-throws.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer returns an abrupt completion (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-undef.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-undef.js
index d735ef02cc..2bfce63f60 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-undef.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-undef.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an undefined value (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-unresolvable.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-unresolvable.js
index 42ef0cd652..1f769005fb 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-unresolvable.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-complete.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-complete.js
index 3bd2eddd3c..5151fe980d 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-complete.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-complete.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration completes (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-done.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-done.js
index c7ed4040d5..c68757daf0 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-done.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-done.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-step-err.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-step-err.js
index f78de5a7eb..ab14fdf015 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-step-err.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-step-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorStep returns an abrupt completion (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val-err.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val-err.js
index 61b113406f..a21af074df 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val-err.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val.js
index 33629e1506..5a8a80a48a 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-id-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-id-init.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-id-init.js
index 3c0cae42be..444ba211a1 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-id-init.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-id.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-id.js
index c8ca1aadac..8223a3e81f 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-id.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-prop-id-init.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-prop-id-init.js
index 82673ab149..b57da8bd10 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-prop-id-init.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-prop-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-prop-id.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-prop-id.js
index 009ac90f78..f3bd367b34 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-prop-id.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-val-null.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-val-null.js
index 4188a525cb..d738d86813 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-val-null.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-val-null.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a null value (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-val-undef.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-val-undef.js
index b6497f6839..9d6f8f9ae1 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-val-undef.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-elem-obj-val-undef.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a value of `undefined` (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-ary-elem.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-elem.js
index c0ddfb67eb..d91a11b808 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-elem.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-elem.js
@@ -5,7 +5,7 @@
 description: Rest element containing an array BindingElementList pattern (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-ary-rest.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-rest.js
index b8611dc415..36fe856839 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-rest.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-ary-rest.js
@@ -5,7 +5,7 @@
 description: Rest element containing a rest element (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-id-elision.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-id-elision.js
index a13ea84dd1..1c8fe34f2f 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-id-elision.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-id-elision.js
@@ -5,7 +5,7 @@
 description: Rest element following elision elements (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-id-exhausted.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-id-exhausted.js
index 116ca95d1a..7df090eae6 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-id-exhausted.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-id-exhausted.js
@@ -5,7 +5,7 @@
 description: RestElement applied to an exhausted iterator (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-id-iter-val-err.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-id-iter-val-err.js
index 8513c2d2d7..6de0c34404 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-id-iter-val-err.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-id.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-id.js
index 6dab6ffd8e..f00d653297 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-id.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-id.js
@@ -5,7 +5,7 @@
 description: Lone rest element (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-init-ary.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-ary.js
index 40f1b3111b..9736719bb0 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-ary.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-ary.js
@@ -5,7 +5,7 @@
 description: Reset element (nested array pattern) does not support initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-id.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-id.js
index c19a0f5f86..ee970685a7 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-id.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-id.js
@@ -5,7 +5,7 @@
 description: Reset element (identifier) does not support initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-obj.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-obj.js
index 2b354602d6..24b8b8d6f6 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-obj.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-obj.js
@@ -5,7 +5,7 @@
 description: Reset element (nested object pattern) does not support initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js
index 82a4b4bcd9..ac1eb8a326 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js
@@ -5,7 +5,7 @@
 description: Rest element (array binding pattern) may not be followed by any element (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-id.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-id.js
index f2af708980..a2c0308a5f 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-id.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-id.js
@@ -5,7 +5,7 @@
 description: Rest element (identifier) may not be followed by any element (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js
index 02d6b3c0d5..9e708b86c4 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js
@@ -5,7 +5,7 @@
 description: Rest element (object binding pattern) may not be followed by any element (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-obj-id.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-obj-id.js
index 52452d3f29..2c211d6c2d 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-obj-id.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-obj-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-obj-prop-id.js b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js
index 86486817e9..bf652dbba3 100644
--- a/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js
+++ b/test/language/statements/class/dstr-gen-meth-ary-ptrn-rest-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-init-iter-close.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-init-iter-close.js
index 4d9916385a..79f1e3df0f 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-init-iter-close.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-init-iter-close.js
@@ -5,7 +5,7 @@
 description: Iterator is closed when not exhausted by pattern evaluation (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-dflt-ary-init-iter-get-err.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-init-iter-get-err.js
index 990850a42b..cb1e935d2f 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-init-iter-get-err.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-init-iter-get-err.js
@@ -5,7 +5,7 @@
 description: Abrupt completion returned by GetIterator (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-dflt-ary-init-iter-no-close.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-init-iter-no-close.js
index c4513294fc..5072636d31 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-init-iter-no-close.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-init-iter-no-close.js
@@ -5,7 +5,7 @@
 description: Iterator is not closed when exhausted by pattern evaluation (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-dflt-ary-name-iter-val.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-name-iter-val.js
index 614c63cec5..51297b2166 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-name-iter-val.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-name-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding with normal value iteration (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-elem-init.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-init.js
index a451f70ce2..d7727c7e26 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-init.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-elem-iter.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-iter.js
index 264664f22c..a464fec595 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-iter.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-elem-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-empty-init.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
index 16d76875c7..4680470188 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -70,6 +70,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-iter.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-iter.js
index a9278583c4..0859b94400 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-iter.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-empty-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-rest-init.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-init.js
index 698692b5ea..627d977803 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-init.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-rest-iter.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-iter.js
index d8866ef973..e7822e7cd8 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-iter.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-rest-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-ary-val-null.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-val-null.js
index 397f660958..1d60ebc7c9 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-val-null.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-ary-val-null.js
@@ -5,7 +5,7 @@
 description: Nested array destructuring with a null value (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-exhausted.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-exhausted.js
index 6ed7902b3e..e6b3b678f6 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-exhausted.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-exhausted.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an exhausted iterator (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-arrow.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
index 3e2d646a17..7aa89e73e0 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to arrow functions (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-class.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-class.js
index ac8350c1b0..2154c61ef5 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-class.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-cover.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
index 4b224eb5d5..5a2059948d 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-fn.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
index be878d1fd4..d2c8b36efc 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-fn-name-gen.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index a57729770f..2cc0e6c826 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -72,6 +72,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-hole.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-hole.js
index f0abc3340c..2b08f93ebb 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-hole.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-hole.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with a "hole" (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-skipped.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-skipped.js
index c5be49d674..c907206f3e 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-skipped.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-throws.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-throws.js
index 5d7f17814c..471a787d9e 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-throws.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer returns an abrupt completion (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-undef.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-undef.js
index 5d78bb294b..8b6ae0d68f 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-undef.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-undef.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an undefined value (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-init-unresolvable.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-unresolvable.js
index 4deb19958f..8a10721eac 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-unresolvable.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-complete.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-complete.js
index df16b83fd4..0c52bcad90 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-complete.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-complete.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration completes (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-done.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-done.js
index 160066037b..dacc7152e3 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-done.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-done.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-id-iter-step-err.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-step-err.js
index 56ae48c724..7ffaf7a144 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-step-err.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-step-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorStep returns an abrupt completion (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-elem-id-iter-val-err.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val-err.js
index 189aa006bc..b8f39bf001 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val-err.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-elem-id-iter-val.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val.js
index aa886dfb03..afa7c87fb7 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-id-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-id-init.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id-init.js
index b149df6b4b..17510c8ca1 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id-init.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-id.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id.js
index 2404b1a5e2..b82f230cdf 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-prop-id-init.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id-init.js
index 5a7174f0d6..d9d876f0b5 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id-init.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-prop-id.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id.js
index 307e8f716c..4f4629df8a 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-val-null.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-null.js
index c47247518b..59546009d1 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-null.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-null.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a null value (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-elem-obj-val-undef.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-undef.js
index ab9cfe873a..ad8ac62c08 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-undef.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-elem-obj-val-undef.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a value of `undefined` (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-ary-elem.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js
index 5c4624342d..3585ed25d5 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-elem.js
@@ -5,7 +5,7 @@
 description: Rest element containing an array BindingElementList pattern (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-ary-rest.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js
index fe29b68ede..cf3b5f60bd 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-ary-rest.js
@@ -5,7 +5,7 @@
 description: Rest element containing a rest element (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-id-elision.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-elision.js
index 343145947f..c072c6670f 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-elision.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-elision.js
@@ -5,7 +5,7 @@
 description: Rest element following elision elements (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-id-exhausted.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-exhausted.js
index cfaf8ab6d2..4e3592abeb 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-exhausted.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-exhausted.js
@@ -5,7 +5,7 @@
 description: RestElement applied to an exhausted iterator (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-rest-id-iter-val-err.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-iter-val-err.js
index a54bb04edf..b8d5240286 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-iter-val-err.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-rest-id.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id.js
index 8ebe8caca7..5e8565edaa 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-id.js
@@ -5,7 +5,7 @@
 description: Lone rest element (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-init-ary.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js
index 5afd857ad4..18cb23c220 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js
@@ -5,7 +5,7 @@
 description: Reset element (nested array pattern) does not support initializer (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js
index 4d4d9c1429..3dbe488935 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js
@@ -5,7 +5,7 @@
 description: Reset element (identifier) does not support initializer (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js
index 0f4a6a7f77..1f3ac695a5 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js
@@ -5,7 +5,7 @@
 description: Reset element (nested object pattern) does not support initializer (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js
index e1c1b28657..81c49a635a 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js
@@ -5,7 +5,7 @@
 description: Rest element (array binding pattern) may not be followed by any element (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js
index 43ddd5716d..e131057caa 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js
@@ -5,7 +5,7 @@
 description: Rest element (identifier) may not be followed by any element (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js
index c77e05a606..1eaec53466 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js
@@ -5,7 +5,7 @@
 description: Rest element (object binding pattern) may not be followed by any element (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js
index 91c799be32..656ea5db06 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-rest-obj-prop-id.js b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js
index f860651bdc..6497a32000 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-init-null.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-init-null.js
index b56c1afa56..693fff55db 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-init-null.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-init-null.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (null) (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-init-undefined.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-init-undefined.js
index 3fdb2a2277..baba7132e0 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-init-undefined.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-init-undefined.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (undefined) (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-empty.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-empty.js
index b1f09a2674..b8a99bc6f4 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-empty.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-empty.js
@@ -5,7 +5,7 @@
 description: No property access occurs for an "empty" object binding pattern (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-get-value-err.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-get-value-err.js
index a57087e8fb..181b513469 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-get-value-err.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-fn-name-arrow.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-arrow.js
index e6a99275dd..d7f9e912a0 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-arrow.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to arrow functions (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-fn-name-class.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-class.js
index 89927b3bfe..0c5f19ce85 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-class.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-fn-name-cover.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-cover.js
index bea1d40ffd..b01a7ebbcf 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-cover.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-fn-name-fn.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-fn.js
index e041b88c36..a4c29a6940 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-fn.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
index 1b202b57f4..e4db1f9526 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -71,6 +71,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-skipped.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-skipped.js
index b37d0b7e4b..782a578b8c 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-skipped.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-throws.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-throws.js
index ea00ae2aca..c69f8c3019 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-throws.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-init-unresolvable.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-unresolvable.js
index 041425052c..3024979307 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-unresolvable.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-id-trailing-comma.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-trailing-comma.js
index 0d2be4c769..4cb34f1676 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-trailing-comma.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-list-err.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-list-err.js
index 1d7ef5922a..ede73ac3ae 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-list-err.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-list-err.js
@@ -5,7 +5,7 @@
 description: Binding property list evaluation is interrupted by an abrupt completion (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-ary-init.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-init.js
index 2ebe8b030e..24ff35465b 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-init.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern using initializer (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-ary-trailing-comma.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-trailing-comma.js
index e05985d3ec..a1e6987648 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-trailing-comma.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-ary-value-null.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-value-null.js
index 57ec5d5cdd..3d90923b83 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-value-null.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern taking the `null` value (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-ary.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary.js
index 14485d0dc7..7f29388ff6 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-ary.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern not using initializer (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-eval-err.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-eval-err.js
index 019a247989..66ce88b5e4 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-eval-err.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-eval-err.js
@@ -5,7 +5,7 @@
 description: Evaluation of property name returns an abrupt completion (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-get-value-err.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-get-value-err.js
index b24624bb5f..64333a1bb7 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-get-value-err.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-init-skipped.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-skipped.js
index e2aaa500dd..ebd389a0b8 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-skipped.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-init-throws.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-throws.js
index 105c76a4d5..03e19feb65 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-throws.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-init-unresolvable.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-unresolvable.js
index abad384f72..673cda522b 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-unresolvable.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-init.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init.js
index ebbcd496e8..8c1ae58452 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-init.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name, identifier, and initializer (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id-trailing-comma.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-trailing-comma.js
index 02d1d9e588..c36be1a712 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-trailing-comma.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-id.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id.js
index 2999a988c5..79b96567d4 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-id.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name and identifier (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-obj-init.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-init.js
index 8ee3d8341c..fd4e958b24 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-init.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern using initializer (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-obj-value-null.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-null.js
index acc6a814e3..7dc335195c 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-null.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-obj-value-undef.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-undef.js
index 472e7a211a..5bead553f3 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-undef.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj-value-undef.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (class expression method (default parameter))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-prop-obj.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj.js
index ad03ed484f..80c839a7cd 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-prop-obj.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern not using initializer (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [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-obj-ptrn-rest-getter.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js
index 3ae0abf4b8..cfd99a4a36 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-getter.js
@@ -5,7 +5,7 @@
 description: Getter is called when obj is being deconstructed to a rest Object (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js
index 49f298594c..eca024fc8c 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js
@@ -5,7 +5,7 @@
 description: Rest object doesn't contain non-enumerable properties (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js
index d7ee3fae78..07e487a208 100644
--- a/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js
+++ b/test/language/statements/class/dstr-gen-meth-dflt-obj-ptrn-rest-val-obj.js
@@ -5,7 +5,7 @@
 description: Rest object contains just unextracted data (class expression method (default parameters))
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/dstr-gen-meth-obj-init-null.js b/test/language/statements/class/dstr-gen-meth-obj-init-null.js
index 4b53469b2b..e7612767df 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-init-null.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-init-null.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (null) (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-init-undefined.js b/test/language/statements/class/dstr-gen-meth-obj-init-undefined.js
index 5433f00cbd..b04fad1a63 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-init-undefined.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-init-undefined.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (undefined) (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-empty.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-empty.js
index 71b997ab5b..fbe2cb83c3 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-empty.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-empty.js
@@ -5,7 +5,7 @@
 description: No property access occurs for an "empty" object binding pattern (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-get-value-err.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-get-value-err.js
index 65a45a7f58..1aff511a80 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-get-value-err.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-arrow.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-arrow.js
index 9bd3639d2e..bfe18bad18 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-arrow.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to arrow functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-class.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-class.js
index c886715c94..aac85d4dee 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-class.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-cover.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-cover.js
index dc96516126..114dcf9b75 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-cover.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-fn.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-fn.js
index 8035d750fc..bbd2226e5b 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-fn.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-gen.js
index bae94de9fd..521de645ab 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -71,6 +71,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-skipped.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-skipped.js
index 01cc6bf944..aa99bf966e 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-skipped.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-throws.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-throws.js
index d60561a8df..782e96b9e3 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-throws.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-unresolvable.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-unresolvable.js
index 24dedf3c92..8c2d1afd96 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-unresolvable.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-trailing-comma.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-trailing-comma.js
index 35b7f5cc77..68759ab9ad 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-trailing-comma.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-list-err.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-list-err.js
index a4b04db306..2c3eac6c1d 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-list-err.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-list-err.js
@@ -5,7 +5,7 @@
 description: Binding property list evaluation is interrupted by an abrupt completion (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary-init.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary-init.js
index 37252cb475..169aabcb2f 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary-init.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern using initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary-trailing-comma.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary-trailing-comma.js
index ef747de1ba..ecaf501020 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary-trailing-comma.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary-value-null.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary-value-null.js
index 1b4d1514b0..8bafbb3048 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary-value-null.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern taking the `null` value (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary.js
index 4073814b4e..6817497dbe 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-ary.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern not using initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-eval-err.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-eval-err.js
index 1f7060f1c3..5ec28effed 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-eval-err.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-eval-err.js
@@ -5,7 +5,7 @@
 description: Evaluation of property name returns an abrupt completion (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-get-value-err.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-get-value-err.js
index 8474499a4c..ab1ee68eba 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-get-value-err.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init-skipped.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init-skipped.js
index 5f49a30e8c..9b74e46380 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init-skipped.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init-throws.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init-throws.js
index bd5e4162e8..7da467e008 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init-throws.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init-unresolvable.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init-unresolvable.js
index 28452f0b24..9d4d20128f 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init-unresolvable.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init.js
index 28e2cdecf8..add0c99e35 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-init.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name, identifier, and initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-trailing-comma.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-trailing-comma.js
index d28a7fb795..76e43712f3 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-trailing-comma.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id.js
index 523974c031..f44d1b9528 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-id.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name and identifier (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj-init.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj-init.js
index 0cb021c773..4a6c4e6afe 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj-init.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern using initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj-value-null.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj-value-null.js
index f2fa7ca9d8..bad835d0f5 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj-value-null.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj-value-undef.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj-value-undef.js
index 5e2c065c5a..bc75c9ecfc 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj-value-undef.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj-value-undef.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj.js
index 2f86d6115b..db29a591cd 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-prop-obj.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern not using initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-getter.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-getter.js
index 9c6ea7737c..40885063e4 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-getter.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-getter.js
@@ -5,7 +5,7 @@
 description: Getter is called when obj is being deconstructed to a rest Object (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js
index b5e51e2071..1c1bd4dcb1 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-skip-non-enumerable.js
@@ -5,7 +5,7 @@
 description: Rest object doesn't contain non-enumerable properties (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js b/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js
index 1303ddc0e2..04f162c299 100644
--- a/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js
+++ b/test/language/statements/class/dstr-gen-meth-obj-ptrn-rest-val-obj.js
@@ -5,7 +5,7 @@
 description: Rest object contains just unextracted data (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
 es6id: 14.5.16
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-init-iter-close.js b/test/language/statements/class/dstr-gen-meth-static-ary-init-iter-close.js
index 017744012b..dc3fd49eee 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-init-iter-close.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-init-iter-close.js
@@ -5,7 +5,7 @@
 description: Iterator is closed when not exhausted by pattern evaluation (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-init-iter-get-err.js b/test/language/statements/class/dstr-gen-meth-static-ary-init-iter-get-err.js
index 0341fc0c99..0c71016bed 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-init-iter-get-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-init-iter-get-err.js
@@ -5,7 +5,7 @@
 description: Abrupt completion returned by GetIterator (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-init-iter-no-close.js b/test/language/statements/class/dstr-gen-meth-static-ary-init-iter-no-close.js
index 880cd847c0..78533344b5 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-init-iter-no-close.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-init-iter-no-close.js
@@ -5,7 +5,7 @@
 description: Iterator is not closed when exhausted by pattern evaluation (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-name-iter-val.js b/test/language/statements/class/dstr-gen-meth-static-ary-name-iter-val.js
index 7ec4dab194..9a558a2c8a 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-name-iter-val.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-name-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding with normal value iteration (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-ary-elem-init.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-elem-init.js
index 7a27d5e366..7a9c452f78 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-elem-init.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-elem-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-ary-elem-iter.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-elem-iter.js
index a36f2b2c5a..04f88bc0c7 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-elem-iter.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-elem-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-ary-empty-init.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-empty-init.js
index b6755ca605..9810ee73e8 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -70,6 +70,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-empty-iter.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-empty-iter.js
index 5366899554..52cc563162 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-empty-iter.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-empty-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-ary-rest-init.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-rest-init.js
index 051634016c..a21def6b67 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-rest-init.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-rest-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-ary-rest-iter.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-rest-iter.js
index d77c2265f6..1ddb99b45a 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-rest-iter.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-rest-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-ary-val-null.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-val-null.js
index 1f37784cd3..42016a8082 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-val-null.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-ary-val-null.js
@@ -5,7 +5,7 @@
 description: Nested array destructuring with a null value (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-exhausted.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-exhausted.js
index c24e61de79..177740a499 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-exhausted.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-exhausted.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an exhausted iterator (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-fn-name-arrow.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-arrow.js
index af275ae392..114140ffbf 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-arrow.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to arrow functions (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-fn-name-class.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-class.js
index dd83168adb..a1c0f5f326 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-class.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-fn-name-cover.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-cover.js
index aa831c2fb0..11973c7341 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-cover.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-fn-name-fn.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-fn.js
index ecd6c4b862..55301c1468 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-fn.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-fn-name-gen.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
index 17ad783356..5ad624d11e 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -72,6 +72,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-hole.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-hole.js
index 9e1ad14801..caa01f9855 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-hole.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-hole.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with a "hole" (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-skipped.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-skipped.js
index abb3099704..9d7eb26f79 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-skipped.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-throws.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-throws.js
index 45da6e391e..36ba35ae43 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-throws.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer returns an abrupt completion (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-undef.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-undef.js
index 94e2037893..01bf322cac 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-undef.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-undef.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an undefined value (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-unresolvable.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-unresolvable.js
index 572239d658..ebaefbc518 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-unresolvable.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-iter-complete.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-complete.js
index 719ed8a685..5046a7439e 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-complete.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-complete.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration completes (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-iter-done.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-done.js
index dab1d65e2b..3fcbb826ae 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-done.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-done.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-iter-step-err.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-step-err.js
index b09a7c7ed1..1fa94314fa 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-step-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-step-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorStep returns an abrupt completion (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val-err.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val-err.js
index 93f3f7ed05..5dba106929 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val.js
index 4d917d3c35..28193437be 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-id-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-obj-id-init.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-id-init.js
index af46b932eb..f2875b426a 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-id-init.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-obj-id.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-id.js
index 761e8df6c8..75ee0b2914 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-id.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-obj-prop-id-init.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-prop-id-init.js
index 62de6004b0..94512d7d57 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-prop-id-init.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-prop-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-obj-prop-id.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-prop-id.js
index 2caec9c32a..6224f60324 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-prop-id.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-obj-val-null.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-val-null.js
index 956c7a0c3d..b72c5fd073 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-val-null.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-val-null.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a null value (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-obj-val-undef.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-val-undef.js
index 222557befb..dd795135c0 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-val-undef.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-elem-obj-val-undef.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a value of `undefined` (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-rest-ary-elem.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-elem.js
index 8e747c3a6b..e7026292fc 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-elem.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-elem.js
@@ -5,7 +5,7 @@
 description: Rest element containing an array BindingElementList pattern (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-rest-ary-rest.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-rest.js
index 99cc4298e0..f543fe6ffc 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-rest.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-ary-rest.js
@@ -5,7 +5,7 @@
 description: Rest element containing a rest element (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-rest-id-elision.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id-elision.js
index de13059b01..73ff5bf764 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id-elision.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id-elision.js
@@ -5,7 +5,7 @@
 description: Rest element following elision elements (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-rest-id-exhausted.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id-exhausted.js
index 1e5890caa1..dc36fb87a2 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id-exhausted.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id-exhausted.js
@@ -5,7 +5,7 @@
 description: RestElement applied to an exhausted iterator (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id-iter-val-err.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id-iter-val-err.js
index 68f7bb45ea..e1954fd9bb 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id-iter-val-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id.js
index 43cdf34c9c..82240c7e1c 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-id.js
@@ -5,7 +5,7 @@
 description: Lone rest element (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-rest-init-ary.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-ary.js
index 4ba4ee3395..7d1dfac558 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-ary.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-ary.js
@@ -5,7 +5,7 @@
 description: Reset element (nested array pattern) does not support initializer (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-id.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-id.js
index ed3a64945c..a7ae6ad962 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-id.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-id.js
@@ -5,7 +5,7 @@
 description: Reset element (identifier) does not support initializer (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-obj.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-obj.js
index d656b5b0eb..8b19456c44 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-obj.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-obj.js
@@ -5,7 +5,7 @@
 description: Reset element (nested object pattern) does not support initializer (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-ary.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-ary.js
index 9aacbb9db3..1357ac0bfa 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-ary.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-ary.js
@@ -5,7 +5,7 @@
 description: Rest element (array binding pattern) may not be followed by any element (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-id.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-id.js
index 31b3d4772e..5a4605ba29 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-id.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-id.js
@@ -5,7 +5,7 @@
 description: Rest element (identifier) may not be followed by any element (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-obj.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-obj.js
index c754daa9cf..629404db50 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-obj.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-obj.js
@@ -5,7 +5,7 @@
 description: Rest element (object binding pattern) may not be followed by any element (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-obj-id.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-obj-id.js
index 4834ed538a..5cf64f0042 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-obj-id.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-obj-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-rest-obj-prop-id.js b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-obj-prop-id.js
index 4a0c9022f0..a7c439193f 100644
--- a/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-obj-prop-id.js
+++ b/test/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-init-iter-close.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-init-iter-close.js
index e6f8e72dea..922c84a33a 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-init-iter-close.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-init-iter-close.js
@@ -5,7 +5,7 @@
 description: Iterator is closed when not exhausted by pattern evaluation (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-init-iter-get-err.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-init-iter-get-err.js
index d5417e4b3f..a20fc2a62f 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-init-iter-get-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-init-iter-get-err.js
@@ -5,7 +5,7 @@
 description: Abrupt completion returned by GetIterator (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-init-iter-no-close.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-init-iter-no-close.js
index 16e1ca43a7..342bc4efed 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-init-iter-no-close.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-init-iter-no-close.js
@@ -5,7 +5,7 @@
 description: Iterator is not closed when exhausted by pattern evaluation (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-name-iter-val.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-name-iter-val.js
index 99efc01cc5..f8236af438 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-name-iter-val.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-name-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding with normal value iteration (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-ary-elem-init.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-elem-init.js
index ceb7a1f133..6adf8e6fef 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-elem-init.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-elem-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-ary-elem-iter.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-elem-iter.js
index 06e15c4688..25cfacd6ee 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-elem-iter.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-elem-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-ary-empty-init.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
index 407aa1c06e..d1fdc55563 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -70,6 +70,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-iter.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-iter.js
index f644b0d648..49fc94d54a 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-iter.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-empty-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-ary-rest-init.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-rest-init.js
index c2fbe5573e..d8e842bc33 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-rest-init.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-rest-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-ary-rest-iter.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-rest-iter.js
index 60f44a6adb..9eb2b0f33f 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-rest-iter.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-rest-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-ary-val-null.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-val-null.js
index feab2bd52a..a0e5ca3333 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-val-null.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-ary-val-null.js
@@ -5,7 +5,7 @@
 description: Nested array destructuring with a null value (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-exhausted.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-exhausted.js
index b9d89f3feb..717b5fb65b 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-exhausted.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-exhausted.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an exhausted iterator (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-fn-name-arrow.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
index af71786720..8422a5186f 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to arrow functions (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-fn-name-class.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-class.js
index 937a9e9d5d..0d5f9c1609 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-class.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-fn-name-cover.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
index 37efaf04a3..36e97d3bc0 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-fn-name-fn.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
index b54f0c961d..8b70385991 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-fn-name-gen.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index 80835c85b4..fd7b731564 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -72,6 +72,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-hole.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-hole.js
index 32d4cabcb6..6544e52bdd 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-hole.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-hole.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with a "hole" (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-skipped.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-skipped.js
index 8d141b7777..5f45f35f47 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-skipped.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-throws.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-throws.js
index ff4f0b188f..af4a5db60d 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-throws.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer returns an abrupt completion (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-undef.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-undef.js
index 759006d0ad..98e49b1698 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-undef.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-undef.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an undefined value (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-init-unresolvable.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-unresolvable.js
index 5d1b958b80..3a62b7ce77 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-unresolvable.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-iter-complete.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-complete.js
index fb97f6cd28..0dfac2e9fc 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-complete.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-complete.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration completes (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-iter-done.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-done.js
index d8915ed63e..1f1dc9a2ee 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-done.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-done.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-id-iter-step-err.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-step-err.js
index a1a5e001cc..20c2710eae 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-step-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-step-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorStep returns an abrupt completion (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-elem-id-iter-val-err.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-val-err.js
index 68ee62578c..b54cc8d916 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-val-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-elem-id-iter-val.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-val.js
index 8034693be0..90f0af84c1 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-val.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-id-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-obj-id-init.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-id-init.js
index 5752ac8265..685f69e2dc 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-id-init.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-obj-id.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-id.js
index b4292842ca..e1ea98a5c6 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-id.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-obj-prop-id-init.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-prop-id-init.js
index 5f22ddd1de..58be47bf1c 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-prop-id-init.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-prop-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-obj-prop-id.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-prop-id.js
index 74a98c85d6..72f6d5cbec 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-prop-id.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-obj-val-null.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-val-null.js
index fd78cea8e8..62316d298c 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-val-null.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-val-null.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a null value (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-elem-obj-val-undef.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-val-undef.js
index 3f3385b702..a351493ff7 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-val-undef.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-elem-obj-val-undef.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a value of `undefined` (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-rest-ary-elem.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-elem.js
index 511012222f..d980bbbe89 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-elem.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-elem.js
@@ -5,7 +5,7 @@
 description: Rest element containing an array BindingElementList pattern (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-rest-ary-rest.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-rest.js
index bc515d1d50..ded87f8eaf 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-rest.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-ary-rest.js
@@ -5,7 +5,7 @@
 description: Rest element containing a rest element (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-rest-id-elision.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-elision.js
index e005f4e036..55dfbb3cfe 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-elision.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-elision.js
@@ -5,7 +5,7 @@
 description: Rest element following elision elements (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-rest-id-exhausted.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-exhausted.js
index 1f1e458902..a2d40e62c4 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-exhausted.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-exhausted.js
@@ -5,7 +5,7 @@
 description: RestElement applied to an exhausted iterator (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-rest-id-iter-val-err.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-iter-val-err.js
index fb73c8980f..0a26761e75 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-iter-val-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, 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-rest-id.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id.js
index 7cbf15d5ca..d2e12ef5d8 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-id.js
@@ -5,7 +5,7 @@
 description: Lone rest element (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-rest-init-ary.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js
index 22e7e154e0..9d3ec43663 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js
@@ -5,7 +5,7 @@
 description: Reset element (nested array pattern) does not support initializer (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-id.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-id.js
index 854333f5f9..0385f862d2 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-id.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-id.js
@@ -5,7 +5,7 @@
 description: Reset element (identifier) does not support initializer (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js
index 78448adcdd..4e76fa9659 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js
@@ -5,7 +5,7 @@
 description: Reset element (nested object pattern) does not support initializer (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js
index 5872b8cc57..4ff468384a 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js
@@ -5,7 +5,7 @@
 description: Rest element (array binding pattern) may not be followed by any element (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js
index 5904848ffe..bc95ae9bcb 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js
@@ -5,7 +5,7 @@
 description: Rest element (identifier) may not be followed by any element (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js
index 26cbb533cf..a3493af708 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js
@@ -5,7 +5,7 @@
 description: Rest element (object binding pattern) may not be followed by any element (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-id.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-id.js
index 99a1a21241..c48617fb17 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-id.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-rest-obj-prop-id.js b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-prop-id.js
index 251301d490..7ff4e16c14 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-prop-id.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-init-null.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-init-null.js
index 77017df4a3..23e7fafcdc 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-init-null.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-init-null.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (null) (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-init-undefined.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-init-undefined.js
index 523b662f2d..9a8005ea03 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-init-undefined.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-init-undefined.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (undefined) (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-empty.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-empty.js
index a2b9b986cb..bdc88aaf15 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-empty.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-empty.js
@@ -5,7 +5,7 @@
 description: No property access occurs for an "empty" object binding pattern (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-id-get-value-err.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-get-value-err.js
index 963d6e8c5e..620c8cba00 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-get-value-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-id-init-fn-name-arrow.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-arrow.js
index 52120dac15..dbce50ec83 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-arrow.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to arrow functions (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-id-init-fn-name-class.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-class.js
index e5fbae54c0..9c1fe6b336 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-class.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-id-init-fn-name-cover.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-cover.js
index 26e5ba6401..3ac3106dc7 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-cover.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-id-init-fn-name-fn.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-fn.js
index 0bb43fe393..a7953de4d0 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-fn.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
index ec7167e2d4..361595dd36 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -71,6 +71,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-skipped.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-skipped.js
index 139fbd7fa7..67b40a9e54 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-skipped.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-id-init-throws.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-throws.js
index 66fd04c7a8..207c32b8d4 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-throws.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-id-init-unresolvable.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-unresolvable.js
index 180b96a088..103010d4b5 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-unresolvable.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-id-trailing-comma.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-trailing-comma.js
index 9c7c64b985..d5bbb93655 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-trailing-comma.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-list-err.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-list-err.js
index 1c54ef902a..5c5089ec8f 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-list-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-list-err.js
@@ -5,7 +5,7 @@
 description: Binding property list evaluation is interrupted by an abrupt completion (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-prop-ary-init.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-init.js
index 040248ac59..4de833ab83 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-init.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern using initializer (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-prop-ary-trailing-comma.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-trailing-comma.js
index e6c43d7407..338d1c7ce1 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-trailing-comma.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-prop-ary-value-null.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-value-null.js
index 416c8f46c3..6114459841 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-value-null.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern taking the `null` value (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-prop-ary.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary.js
index f4cfaebfa6..8fdc32ae6d 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-ary.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern not using initializer (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-prop-eval-err.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-eval-err.js
index f78ae52061..71f4bbf824 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-eval-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-eval-err.js
@@ -5,7 +5,7 @@
 description: Evaluation of property name returns an abrupt completion (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-prop-id-get-value-err.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-get-value-err.js
index eb5269f73a..31ada537a5 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-get-value-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-prop-id-init-skipped.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-skipped.js
index 8f06565fc0..c9d58477bc 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-skipped.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-prop-id-init-throws.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-throws.js
index 386031fea7..881444e111 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-throws.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-prop-id-init-unresolvable.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-unresolvable.js
index 4f774207b2..c98452cdfa 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-unresolvable.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-prop-id-init.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init.js
index 675f73d0c6..1716f3b8cf 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-init.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name, identifier, and initializer (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-prop-id-trailing-comma.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-trailing-comma.js
index 9e98c160a6..108232f5c0 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-trailing-comma.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-prop-id.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id.js
index 0a48908564..4224467844 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-id.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name and identifier (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-prop-obj-init.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-init.js
index 7fd6de3876..cc5ab85730 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-init.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern using initializer (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-prop-obj-value-null.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-value-null.js
index 91537b5f6a..ac2391568c 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-value-null.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-prop-obj-value-undef.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-value-undef.js
index fcd324e7ab..5c2e87db5e 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-value-undef.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj-value-undef.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-prop-obj.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj.js
index 9272d80dfb..1169bb8119 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-prop-obj.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern not using initializer (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [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-obj-ptrn-rest-getter.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js
index 7238f57922..e23e541596 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-getter.js
@@ -5,7 +5,7 @@
 description: Getter is called when obj is being deconstructed to a rest Object (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js
index b87d3add9c..18f8c0f0e2 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-skip-non-enumerable.js
@@ -5,7 +5,7 @@
 description: Rest object doesn't contain non-enumerable properties (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js
index 5905dcafde..10a0b90795 100644
--- a/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js
+++ b/test/language/statements/class/dstr-gen-meth-static-dflt-obj-ptrn-rest-val-obj.js
@@ -5,7 +5,7 @@
 description: Rest object contains just unextracted data (static class expression generator method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-init-null.js b/test/language/statements/class/dstr-gen-meth-static-obj-init-null.js
index 0e75f4e2be..0580f6b873 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-init-null.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-init-null.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (null) (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-init-undefined.js b/test/language/statements/class/dstr-gen-meth-static-obj-init-undefined.js
index 5b21b64f3d..9811ca414d 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-init-undefined.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-init-undefined.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (undefined) (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-empty.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-empty.js
index 68631b6b3e..e387784795 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-empty.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-empty.js
@@ -5,7 +5,7 @@
 description: No property access occurs for an "empty" object binding pattern (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-get-value-err.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-get-value-err.js
index 3627a83b0c..eb6a0ccf7e 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-get-value-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-arrow.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-arrow.js
index 9cb0825afc..78849fda01 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-arrow.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to arrow functions (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-class.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-class.js
index e9686d114c..81956fa79c 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-class.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-cover.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-cover.js
index 9518d312f2..5e2a04dcaa 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-cover.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-fn.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-fn.js
index abd587a40f..98898b6add 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-fn.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-gen.js
index 62b66f2f20..1e827cca12 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -71,6 +71,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-skipped.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-skipped.js
index 43d1f6b08d..df88088d9a 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-skipped.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-throws.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-throws.js
index b98c72f642..7ea45dd0df 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-throws.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-unresolvable.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-unresolvable.js
index 21e1296ec7..9fdecb3798 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-unresolvable.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-trailing-comma.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-trailing-comma.js
index 84a4cc87ed..54122688c1 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-trailing-comma.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-list-err.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-list-err.js
index 96656900ad..4b372954e0 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-list-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-list-err.js
@@ -5,7 +5,7 @@
 description: Binding property list evaluation is interrupted by an abrupt completion (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary-init.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary-init.js
index c813058939..1c8083f1fe 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary-init.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern using initializer (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary-trailing-comma.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary-trailing-comma.js
index 345b8e3864..2adb52a06c 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary-trailing-comma.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary-value-null.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary-value-null.js
index 7e20fbcdbd..ccde1ec7d5 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary-value-null.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern taking the `null` value (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary.js
index 0e05e00874..2135a9678a 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-ary.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern not using initializer (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-eval-err.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-eval-err.js
index a5910f2454..31ecf66d0e 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-eval-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-eval-err.js
@@ -5,7 +5,7 @@
 description: Evaluation of property name returns an abrupt completion (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-get-value-err.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-get-value-err.js
index e469dd0310..397e33b326 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-get-value-err.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-skipped.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-skipped.js
index 96bb6bfe10..a687da9f6c 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-skipped.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-throws.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-throws.js
index 867953d5af..70b944b327 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-throws.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-unresolvable.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-unresolvable.js
index 75094e7363..e620c98026 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-unresolvable.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init.js
index f165ce9aa9..92b614dc7d 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-init.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name, identifier, and initializer (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-trailing-comma.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-trailing-comma.js
index f83a1727c9..97fb271081 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-trailing-comma.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id.js
index a1a2d4daf2..0acb9e64c9 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-id.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name and identifier (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj-init.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj-init.js
index 5796bb64e4..39f5c19b22 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj-init.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern using initializer (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-null.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-null.js
index b39a1c6e70..48d13f53cb 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-null.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-undef.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-undef.js
index 29af3f8384..d19251176d 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-undef.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj-value-undef.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj.js
index d9c21a24b8..d18a5d200a 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-prop-obj.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern not using initializer (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js
index 39272633ee..7bb2df38fb 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-getter.js
@@ -5,7 +5,7 @@
 description: Getter is called when obj is being deconstructed to a rest Object (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js
index 1fd6bbff9e..915f0eda26 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-skip-non-enumerable.js
@@ -5,7 +5,7 @@
 description: Rest object doesn't contain non-enumerable properties (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js
index ae41f85693..f6c04c84b4 100644
--- a/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js
+++ b/test/language/statements/class/dstr-gen-meth-static-obj-ptrn-rest-val-obj.js
@@ -5,7 +5,7 @@
 description: Rest object contains just unextracted data (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/dstr-meth-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/class/dstr-meth-ary-ptrn-elem-ary-empty-init.js
index 7135a6bb41..afbe98524b 100644
--- a/test/language/statements/class/dstr-meth-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/class/dstr-meth-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (class expression method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -68,6 +68,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/class/dstr-meth-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/class/dstr-meth-ary-ptrn-elem-id-init-fn-name-gen.js
index bc5b2a4259..53516a3e36 100644
--- a/test/language/statements/class/dstr-meth-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-meth-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -70,6 +70,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elem-ary-empty-init.js
index 54c2e7e2c0..6f829ed4e9 100644
--- a/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (class expression method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -68,6 +68,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index 24fa5286ea..d2480325cf 100644
--- a/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-meth-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -70,6 +70,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/class/dstr-meth-dflt-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/class/dstr-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
index b3cd4c3172..0e8d6a2a2c 100644
--- a/test/language/statements/class/dstr-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-meth-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -69,6 +69,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/class/dstr-meth-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/class/dstr-meth-obj-ptrn-id-init-fn-name-gen.js
index e8f6fb35f9..6139342a1f 100644
--- a/test/language/statements/class/dstr-meth-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-meth-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (class expression method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -69,6 +69,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/class/dstr-meth-static-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/class/dstr-meth-static-ary-ptrn-elem-ary-empty-init.js
index 867f14cb4a..d14c063dcc 100644
--- a/test/language/statements/class/dstr-meth-static-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/class/dstr-meth-static-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (static class expression method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -68,6 +68,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/class/dstr-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/class/dstr-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
index 544be80f9d..028e1e47b9 100644
--- a/test/language/statements/class/dstr-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-meth-static-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -70,6 +70,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
index 0d9c8e47dd..b0e11908fb 100644
--- a/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (static class expression method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -68,6 +68,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index 0b19c53702..5596324412 100644
--- a/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-meth-static-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -70,6 +70,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
index 1c8d131152..cc818ce413 100644
--- a/test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-meth-static-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression method (default parameter))
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -69,6 +69,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/class/dstr-meth-static-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/class/dstr-meth-static-obj-ptrn-id-init-fn-name-gen.js
index 307fe54dbc..438ed46a9d 100644
--- a/test/language/statements/class/dstr-meth-static-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/class/dstr-meth-static-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (static class expression method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
 es6id: 14.5.15
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -69,6 +69,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/class/gen-meth-dflt-params-abrupt.js b/test/language/statements/class/gen-meth-dflt-params-abrupt.js
index 394a059b0a..6e5842c3f4 100644
--- a/test/language/statements/class/gen-meth-dflt-params-abrupt.js
+++ b/test/language/statements/class/gen-meth-dflt-params-abrupt.js
@@ -4,7 +4,7 @@
 /*---
 description: Abrupt completion returned by evaluation of initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -58,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/class/gen-meth-dflt-params-arg-val-not-undefined.js b/test/language/statements/class/gen-meth-dflt-params-arg-val-not-undefined.js
index 3c6ea0fb00..5e461ea062 100644
--- a/test/language/statements/class/gen-meth-dflt-params-arg-val-not-undefined.js
+++ b/test/language/statements/class/gen-meth-dflt-params-arg-val-not-undefined.js
@@ -4,7 +4,7 @@
 /*---
 description: Use of intializer when argument value is not `undefined` (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -58,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/class/gen-meth-dflt-params-arg-val-undefined.js b/test/language/statements/class/gen-meth-dflt-params-arg-val-undefined.js
index 6fb2d48a4a..e5c3dfbbee 100644
--- a/test/language/statements/class/gen-meth-dflt-params-arg-val-undefined.js
+++ b/test/language/statements/class/gen-meth-dflt-params-arg-val-undefined.js
@@ -4,7 +4,7 @@
 /*---
 description: Use of intializer when argument value is `undefined` (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -58,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/class/gen-meth-dflt-params-duplicates.js b/test/language/statements/class/gen-meth-dflt-params-duplicates.js
index c24fe4d715..1c63762bc1 100644
--- a/test/language/statements/class/gen-meth-dflt-params-duplicates.js
+++ b/test/language/statements/class/gen-meth-dflt-params-duplicates.js
@@ -4,7 +4,7 @@
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 negative:
   phase: early
@@ -61,6 +61,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.2 Static Semantics: Early Errors
 
     StrictFormalParameters : FormalParameters
diff --git a/test/language/statements/class/gen-meth-dflt-params-ref-later.js b/test/language/statements/class/gen-meth-dflt-params-ref-later.js
index 394235c5b6..a18c92b124 100644
--- a/test/language/statements/class/gen-meth-dflt-params-ref-later.js
+++ b/test/language/statements/class/gen-meth-dflt-params-ref-later.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -58,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/class/gen-meth-dflt-params-ref-prior.js b/test/language/statements/class/gen-meth-dflt-params-ref-prior.js
index 8c723c6336..b8e5b8befd 100644
--- a/test/language/statements/class/gen-meth-dflt-params-ref-prior.js
+++ b/test/language/statements/class/gen-meth-dflt-params-ref-prior.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -58,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/class/gen-meth-dflt-params-ref-self.js b/test/language/statements/class/gen-meth-dflt-params-ref-self.js
index c4d4ca6bee..4a7e00dd44 100644
--- a/test/language/statements/class/gen-meth-dflt-params-ref-self.js
+++ b/test/language/statements/class/gen-meth-dflt-params-ref-self.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter from within its own initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -58,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/class/gen-meth-dflt-params-rest.js b/test/language/statements/class/gen-meth-dflt-params-rest.js
index d0f94a87bb..cb04d855bf 100644
--- a/test/language/statements/class/gen-meth-dflt-params-rest.js
+++ b/test/language/statements/class/gen-meth-dflt-params-rest.js
@@ -4,7 +4,7 @@
 /*---
 description: RestParameter does not support an initializer (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 negative:
   phase: early
@@ -61,6 +61,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1 Function Definitions
 
     Syntax
diff --git a/test/language/statements/class/gen-meth-dflt-params-trailing-comma.js b/test/language/statements/class/gen-meth-dflt-params-trailing-comma.js
index 691b4d5b77..ffc36b53e4 100644
--- a/test/language/statements/class/gen-meth-dflt-params-trailing-comma.js
+++ b/test/language/statements/class/gen-meth-dflt-params-trailing-comma.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
+features: [generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -57,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/statements/class/gen-meth-params-trailing-comma-multiple.js b/test/language/statements/class/gen-meth-params-trailing-comma-multiple.js
index 113572bdee..4030ab71d4 100644
--- a/test/language/statements/class/gen-meth-params-trailing-comma-multiple.js
+++ b/test/language/statements/class/gen-meth-params-trailing-comma-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
+features: [generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -57,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/statements/class/gen-meth-params-trailing-comma-single.js b/test/language/statements/class/gen-meth-params-trailing-comma-single.js
index d02f0be4c8..4572fd51f0 100644
--- a/test/language/statements/class/gen-meth-params-trailing-comma-single.js
+++ b/test/language/statements/class/gen-meth-params-trailing-comma-single.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
+features: [generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -57,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/statements/class/gen-meth-rest-params-trailing-comma-early-error.js b/test/language/statements/class/gen-meth-rest-params-trailing-comma-early-error.js
index 1d7d0a8be9..4ce718b487 100644
--- a/test/language/statements/class/gen-meth-rest-params-trailing-comma-early-error.js
+++ b/test/language/statements/class/gen-meth-rest-params-trailing-comma-early-error.js
@@ -4,6 +4,7 @@
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class expression method)
 esid: sec-class-definitions-runtime-semantics-evaluation
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -60,6 +61,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/statements/class/gen-meth-static-dflt-params-abrupt.js b/test/language/statements/class/gen-meth-static-dflt-params-abrupt.js
index 302f06d823..80683f1483 100644
--- a/test/language/statements/class/gen-meth-static-dflt-params-abrupt.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-abrupt.js
@@ -4,7 +4,7 @@
 /*---
 description: Abrupt completion returned by evaluation of initializer (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -58,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/class/gen-meth-static-dflt-params-arg-val-not-undefined.js b/test/language/statements/class/gen-meth-static-dflt-params-arg-val-not-undefined.js
index 5cc3ddcc94..ad92790bb0 100644
--- a/test/language/statements/class/gen-meth-static-dflt-params-arg-val-not-undefined.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-arg-val-not-undefined.js
@@ -4,7 +4,7 @@
 /*---
 description: Use of intializer when argument value is not `undefined` (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -58,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/class/gen-meth-static-dflt-params-arg-val-undefined.js b/test/language/statements/class/gen-meth-static-dflt-params-arg-val-undefined.js
index 5254273e14..7c45e62d89 100644
--- a/test/language/statements/class/gen-meth-static-dflt-params-arg-val-undefined.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-arg-val-undefined.js
@@ -4,7 +4,7 @@
 /*---
 description: Use of intializer when argument value is `undefined` (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -58,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/class/gen-meth-static-dflt-params-duplicates.js b/test/language/statements/class/gen-meth-static-dflt-params-duplicates.js
index 72880794d9..2b3a57e83c 100644
--- a/test/language/statements/class/gen-meth-static-dflt-params-duplicates.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-duplicates.js
@@ -4,7 +4,7 @@
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 negative:
   phase: early
@@ -61,6 +61,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.2 Static Semantics: Early Errors
 
     StrictFormalParameters : FormalParameters
diff --git a/test/language/statements/class/gen-meth-static-dflt-params-ref-later.js b/test/language/statements/class/gen-meth-static-dflt-params-ref-later.js
index bb681e8c4b..b667aa8cd4 100644
--- a/test/language/statements/class/gen-meth-static-dflt-params-ref-later.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-ref-later.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -58,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/class/gen-meth-static-dflt-params-ref-prior.js b/test/language/statements/class/gen-meth-static-dflt-params-ref-prior.js
index 948c3c4a7c..d342f9f52a 100644
--- a/test/language/statements/class/gen-meth-static-dflt-params-ref-prior.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-ref-prior.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -58,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/class/gen-meth-static-dflt-params-ref-self.js b/test/language/statements/class/gen-meth-static-dflt-params-ref-self.js
index b8495b8b0d..30807f0f8d 100644
--- a/test/language/statements/class/gen-meth-static-dflt-params-ref-self.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-ref-self.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter from within its own initializer (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -58,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/class/gen-meth-static-dflt-params-rest.js b/test/language/statements/class/gen-meth-static-dflt-params-rest.js
index 4f4816d86f..5924b137bc 100644
--- a/test/language/statements/class/gen-meth-static-dflt-params-rest.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-rest.js
@@ -4,7 +4,7 @@
 /*---
 description: RestParameter does not support an initializer (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 negative:
   phase: early
@@ -61,6 +61,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1 Function Definitions
 
     Syntax
diff --git a/test/language/statements/class/gen-meth-static-dflt-params-trailing-comma.js b/test/language/statements/class/gen-meth-static-dflt-params-trailing-comma.js
index 1212184a9b..8a1dc3bde7 100644
--- a/test/language/statements/class/gen-meth-static-dflt-params-trailing-comma.js
+++ b/test/language/statements/class/gen-meth-static-dflt-params-trailing-comma.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -57,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/statements/class/gen-meth-static-params-trailing-comma-multiple.js b/test/language/statements/class/gen-meth-static-params-trailing-comma-multiple.js
index 8fe94f1ed9..663c1e9d1d 100644
--- a/test/language/statements/class/gen-meth-static-params-trailing-comma-multiple.js
+++ b/test/language/statements/class/gen-meth-static-params-trailing-comma-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -57,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/statements/class/gen-meth-static-params-trailing-comma-single.js b/test/language/statements/class/gen-meth-static-params-trailing-comma-single.js
index 44986590a4..491576707b 100644
--- a/test/language/statements/class/gen-meth-static-params-trailing-comma-single.js
+++ b/test/language/statements/class/gen-meth-static-params-trailing-comma-single.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [generators]
 flags: [generated]
 info: |
     ClassDeclaration : class BindingIdentifier ClassTail
@@ -57,6 +58,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/statements/class/gen-meth-static-rest-params-trailing-comma-early-error.js b/test/language/statements/class/gen-meth-static-rest-params-trailing-comma-early-error.js
index ccce3c7b7e..40ff7a41d8 100644
--- a/test/language/statements/class/gen-meth-static-rest-params-trailing-comma-early-error.js
+++ b/test/language/statements/class/gen-meth-static-rest-params-trailing-comma-early-error.js
@@ -4,6 +4,7 @@
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class expression generator method)
 esid: sec-runtime-semantics-bindingclassdeclarationevaluation
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -60,6 +61,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/statements/class/gen-method-static-yield-as-binding-identifier-escaped.js b/test/language/statements/class/gen-method-static-yield-as-binding-identifier-escaped.js
index 78cf69ce11..d05dff54a1 100644
--- a/test/language/statements/class/gen-method-static-yield-as-binding-identifier-escaped.js
+++ b/test/language/statements/class/gen-method-static-yield-as-binding-identifier-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a binding identifier. (Static generator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     BindingIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/class/gen-method-static-yield-as-binding-identifier.js b/test/language/statements/class/gen-method-static-yield-as-binding-identifier.js
index 69e856dc02..29f5e7121d 100644
--- a/test/language/statements/class/gen-method-static-yield-as-binding-identifier.js
+++ b/test/language/statements/class/gen-method-static-yield-as-binding-identifier.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a binding identifier. (Static generator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     BindingIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/class/gen-method-static-yield-as-identifier-reference-escaped.js b/test/language/statements/class/gen-method-static-yield-as-identifier-reference-escaped.js
index 163a224de9..087509fdb7 100644
--- a/test/language/statements/class/gen-method-static-yield-as-identifier-reference-escaped.js
+++ b/test/language/statements/class/gen-method-static-yield-as-identifier-reference-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as an identifier reference. (Static generator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     IdentifierReference : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/class/gen-method-static-yield-as-identifier-reference.js b/test/language/statements/class/gen-method-static-yield-as-identifier-reference.js
index 6c16c9966b..49cab01faf 100644
--- a/test/language/statements/class/gen-method-static-yield-as-identifier-reference.js
+++ b/test/language/statements/class/gen-method-static-yield-as-identifier-reference.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as an identifier reference. (Static generator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     IdentifierReference : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/class/gen-method-static-yield-as-label-identifier-escaped.js b/test/language/statements/class/gen-method-static-yield-as-label-identifier-escaped.js
index 0bcc2e15e6..5f966c45cf 100644
--- a/test/language/statements/class/gen-method-static-yield-as-label-identifier-escaped.js
+++ b/test/language/statements/class/gen-method-static-yield-as-label-identifier-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a label identifier. (Static generator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     LabelIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/class/gen-method-static-yield-as-label-identifier.js b/test/language/statements/class/gen-method-static-yield-as-label-identifier.js
index 23c2d52bf5..6704ee914e 100644
--- a/test/language/statements/class/gen-method-static-yield-as-label-identifier.js
+++ b/test/language/statements/class/gen-method-static-yield-as-label-identifier.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a label identifier. (Static generator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     LabelIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/class/gen-method-static-yield-identifier-spread-strict.js b/test/language/statements/class/gen-method-static-yield-identifier-spread-strict.js
index 3537616a31..0a1e770575 100644
--- a/test/language/statements/class/gen-method-static-yield-identifier-spread-strict.js
+++ b/test/language/statements/class/gen-method-static-yield-identifier-spread-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: It's an early error if the AssignmentExpression is a function body with yield as an identifier in strict mode. (Static generator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
-features: [object-spread]
+features: [object-spread, generators]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -21,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/statements/class/gen-method-static-yield-identifier-strict.js b/test/language/statements/class/gen-method-static-yield-identifier-strict.js
index b4479e8b09..0b2df6a66c 100644
--- a/test/language/statements/class/gen-method-static-yield-identifier-strict.js
+++ b/test/language/statements/class/gen-method-static-yield-identifier-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: It's an early error if the generator body has another function body with yield as an identifier in strict mode. (Static generator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -19,6 +20,7 @@ info: |
 
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+
 ---*/
 throw "Test262: This statement should not be evaluated.";
 
diff --git a/test/language/statements/class/gen-method-static-yield-spread-arr-multiple.js b/test/language/statements/class/gen-method-static-yield-spread-arr-multiple.js
index 9a100d2455..458f5fac59 100644
--- a/test/language/statements/class/gen-method-static-yield-spread-arr-multiple.js
+++ b/test/language/statements/class/gen-method-static-yield-spread-arr-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Static generator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 includes: [compareArray.js]
 info: |
@@ -18,6 +19,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/statements/class/gen-method-static-yield-spread-arr-single.js b/test/language/statements/class/gen-method-static-yield-spread-arr-single.js
index 5a74810166..b9895b77e7 100644
--- a/test/language/statements/class/gen-method-static-yield-spread-arr-single.js
+++ b/test/language/statements/class/gen-method-static-yield-spread-arr-single.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Static generator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 info: |
     ClassElement :
@@ -17,6 +18,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/statements/class/gen-method-static-yield-spread-obj.js b/test/language/statements/class/gen-method-static-yield-spread-obj.js
index 04a4f30e67..69c2878e94 100644
--- a/test/language/statements/class/gen-method-static-yield-spread-obj.js
+++ b/test/language/statements/class/gen-method-static-yield-spread-obj.js
@@ -4,7 +4,7 @@
 /*---
 description: Use yield value in a object spread position (Static generator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
-features: [object-spread]
+features: [object-spread, generators]
 flags: [generated]
 includes: [compareArray.js]
 info: |
@@ -19,6 +19,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/statements/class/gen-method-yield-as-binding-identifier-escaped.js b/test/language/statements/class/gen-method-yield-as-binding-identifier-escaped.js
index 85aaa962a4..348689940c 100644
--- a/test/language/statements/class/gen-method-yield-as-binding-identifier-escaped.js
+++ b/test/language/statements/class/gen-method-yield-as-binding-identifier-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a binding identifier. (Generator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     BindingIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/class/gen-method-yield-as-binding-identifier.js b/test/language/statements/class/gen-method-yield-as-binding-identifier.js
index f750476460..4634243806 100644
--- a/test/language/statements/class/gen-method-yield-as-binding-identifier.js
+++ b/test/language/statements/class/gen-method-yield-as-binding-identifier.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a binding identifier. (Generator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     BindingIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/class/gen-method-yield-as-identifier-reference-escaped.js b/test/language/statements/class/gen-method-yield-as-identifier-reference-escaped.js
index 111d9495f3..305ff17488 100644
--- a/test/language/statements/class/gen-method-yield-as-identifier-reference-escaped.js
+++ b/test/language/statements/class/gen-method-yield-as-identifier-reference-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as an identifier reference. (Generator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     IdentifierReference : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/class/gen-method-yield-as-identifier-reference.js b/test/language/statements/class/gen-method-yield-as-identifier-reference.js
index 99ba48debd..1151da0e5a 100644
--- a/test/language/statements/class/gen-method-yield-as-identifier-reference.js
+++ b/test/language/statements/class/gen-method-yield-as-identifier-reference.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as an identifier reference. (Generator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     IdentifierReference : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/class/gen-method-yield-as-label-identifier-escaped.js b/test/language/statements/class/gen-method-yield-as-label-identifier-escaped.js
index dd7de145c4..62c17541b7 100644
--- a/test/language/statements/class/gen-method-yield-as-label-identifier-escaped.js
+++ b/test/language/statements/class/gen-method-yield-as-label-identifier-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a label identifier. (Generator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     LabelIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/class/gen-method-yield-as-label-identifier.js b/test/language/statements/class/gen-method-yield-as-label-identifier.js
index b19397dc74..ffab33eb4e 100644
--- a/test/language/statements/class/gen-method-yield-as-label-identifier.js
+++ b/test/language/statements/class/gen-method-yield-as-label-identifier.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a label identifier. (Generator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -20,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     LabelIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/class/gen-method-yield-identifier-spread-strict.js b/test/language/statements/class/gen-method-yield-identifier-spread-strict.js
index 338235d66c..d2dc7e6e8e 100644
--- a/test/language/statements/class/gen-method-yield-identifier-spread-strict.js
+++ b/test/language/statements/class/gen-method-yield-identifier-spread-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: It's an early error if the AssignmentExpression is a function body with yield as an identifier in strict mode. (Geenerator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
-features: [object-spread]
+features: [object-spread, generators]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -21,6 +21,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/statements/class/gen-method-yield-identifier-strict.js b/test/language/statements/class/gen-method-yield-identifier-strict.js
index 880ff1130e..a5e61ff73b 100644
--- a/test/language/statements/class/gen-method-yield-identifier-strict.js
+++ b/test/language/statements/class/gen-method-yield-identifier-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: It's an early error if the generator body has another function body with yield as an identifier in strict mode. (Geenerator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -19,6 +20,7 @@ info: |
 
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
+
 ---*/
 throw "Test262: This statement should not be evaluated.";
 
diff --git a/test/language/statements/class/gen-method-yield-spread-arr-multiple.js b/test/language/statements/class/gen-method-yield-spread-arr-multiple.js
index daf4bbd4a2..a2e10a8ce2 100644
--- a/test/language/statements/class/gen-method-yield-spread-arr-multiple.js
+++ b/test/language/statements/class/gen-method-yield-spread-arr-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Geenerator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 includes: [compareArray.js]
 info: |
@@ -18,6 +19,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/statements/class/gen-method-yield-spread-arr-single.js b/test/language/statements/class/gen-method-yield-spread-arr-single.js
index 86b634eb17..4e94ae41a7 100644
--- a/test/language/statements/class/gen-method-yield-spread-arr-single.js
+++ b/test/language/statements/class/gen-method-yield-spread-arr-single.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Geenerator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
+features: [generators]
 flags: [generated]
 info: |
     ClassElement :
@@ -17,6 +18,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/statements/class/gen-method-yield-spread-obj.js b/test/language/statements/class/gen-method-yield-spread-obj.js
index 693003505c..0636efd83d 100644
--- a/test/language/statements/class/gen-method-yield-spread-obj.js
+++ b/test/language/statements/class/gen-method-yield-spread-obj.js
@@ -4,7 +4,7 @@
 /*---
 description: Use yield value in a object spread position (Geenerator method as a ClassDeclaration element)
 esid: prod-GeneratorMethod
-features: [object-spread]
+features: [object-spread, generators]
 flags: [generated]
 includes: [compareArray.js]
 info: |
@@ -19,6 +19,7 @@ info: |
     GeneratorMethod :
       * PropertyName ( UniqueFormalParameters ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/statements/const/dstr-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/const/dstr-ary-ptrn-elem-ary-empty-init.js
index 08efe6f6a5..ba6d17c4fa 100644
--- a/test/language/statements/const/dstr-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/const/dstr-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (`const` statement)
 esid: sec-let-and-const-declarations-runtime-semantics-evaluation
 es6id: 13.3.1.4
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     LexicalBinding : BindingPattern Initializer
@@ -28,6 +28,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/const/dstr-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/const/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
index 665d9de947..1acfb3da1e 100644
--- a/test/language/statements/const/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/const/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (`const` statement)
 esid: sec-let-and-const-declarations-runtime-semantics-evaluation
 es6id: 13.3.1.4
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     LexicalBinding : BindingPattern Initializer
@@ -30,6 +30,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 const [gen = function* () {}, xGen = function* x() {}] = [];
diff --git a/test/language/statements/const/dstr-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/const/dstr-obj-ptrn-id-init-fn-name-gen.js
index 45467e7f68..72720471ee 100644
--- a/test/language/statements/const/dstr-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/const/dstr-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (`const` statement)
 esid: sec-let-and-const-declarations-runtime-semantics-evaluation
 es6id: 13.3.1.4
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     LexicalBinding : BindingPattern Initializer
@@ -29,6 +29,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 const { gen = function* () {}, xGen = function* x() {} } = {};
diff --git a/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elem-ary-empty-init.js
index a5f98b2dce..e578eae747 100644
--- a/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -46,6 +46,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js
index cea862e75d..3113bf2a90 100644
--- a/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           [...]
     6. If environment is undefined, return PutValue(lhs, v).
     7. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elision-iter-close.js b/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elision-iter-close.js
index db6bb2a2d0..78308591a0 100644
--- a/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elision-iter-close.js
+++ b/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elision-iter-close.js
@@ -4,7 +4,7 @@
 /*---
 description: The iterator is properly consumed by the destructuring pattern (for-await-of statement in an async function)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [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-rest-id-iter-close.js b/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-id-iter-close.js
index 1b97581d1c..a9210b63ac 100644
--- a/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-id-iter-close.js
+++ b/test/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-id-iter-close.js
@@ -4,7 +4,7 @@
 /*---
 description: The iterator is properly consumed by the destructuring pattern (for-await-of statement in an async function)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [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-elem-ary-empty-init.js b/test/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elem-ary-empty-init.js
index 6ad9cf139a..bbedf8a59c 100644
--- a/test/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -46,6 +46,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elem-id-init-fn-name-gen.js
index 1d7ad09392..7b2a30baed 100644
--- a/test/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           [...]
     6. If environment is undefined, return PutValue(lhs, v).
     7. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-id-init-fn-name-gen.js
index 1cbe88c162..77452a05ce 100644
--- a/test/language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-func-dstr-const-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-func-dstr-const-obj-ptrn-id-init-fn-name-gen.js
index 8acacee74a..299ae670aa 100644
--- a/test/language/statements/for-await-of/async-func-dstr-const-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-func-dstr-const-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elem-ary-empty-init.js
index 0e4e595cc0..12fdbfebbb 100644
--- a/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -46,6 +46,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js
index b510798933..6ae910b1f6 100644
--- a/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           [...]
     6. If environment is undefined, return PutValue(lhs, v).
     7. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elision-iter-close.js b/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elision-iter-close.js
index d156ff2b8f..8d133e62b2 100644
--- a/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elision-iter-close.js
+++ b/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elision-iter-close.js
@@ -4,7 +4,7 @@
 /*---
 description: The iterator is properly consumed by the destructuring pattern (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [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-rest-id-iter-close.js b/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-id-iter-close.js
index 8eb33fdb41..f330a4ce47 100644
--- a/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-id-iter-close.js
+++ b/test/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-id-iter-close.js
@@ -4,7 +4,7 @@
 /*---
 description: The iterator is properly consumed by the destructuring pattern (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [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-elem-ary-empty-init.js b/test/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elem-ary-empty-init.js
index a19aa261f5..10d6c62b2b 100644
--- a/test/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -46,6 +46,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elem-id-init-fn-name-gen.js
index 62394147b4..051ca06cfd 100644
--- a/test/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           [...]
     6. If environment is undefined, return PutValue(lhs, v).
     7. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-id-init-fn-name-gen.js
index 33374b5733..92beaa1cb7 100644
--- a/test/language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-func-dstr-let-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-func-dstr-let-obj-ptrn-id-init-fn-name-gen.js
index 8e378bdb9b..871cc1f7fc 100644
--- a/test/language/statements/for-await-of/async-func-dstr-let-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-func-dstr-let-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elem-ary-empty-init.js
index 148b900f88..df22aab8d8 100644
--- a/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -43,6 +43,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js
index 38c2e7c6f8..9896d8cfe7 100644
--- a/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -44,6 +44,7 @@ info: |
           [...]
     6. If environment is undefined, return PutValue(lhs, v).
     7. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elision-iter-close.js b/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elision-iter-close.js
index fb6fc16823..44144b730b 100644
--- a/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elision-iter-close.js
+++ b/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elision-iter-close.js
@@ -4,7 +4,7 @@
 /*---
 description: The iterator is properly consumed by the destructuring pattern (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [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-rest-id-iter-close.js b/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-id-iter-close.js
index c21307123b..d05ed3ffba 100644
--- a/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-id-iter-close.js
+++ b/test/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-id-iter-close.js
@@ -4,7 +4,7 @@
 /*---
 description: The iterator is properly consumed by the destructuring pattern (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [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-elem-ary-empty-init.js b/test/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elem-ary-empty-init.js
index 24c8ca7b44..0b2101202d 100644
--- a/test/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -46,6 +46,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elem-id-init-fn-name-gen.js
index 8e4a43b2aa..4fad2ee8b3 100644
--- a/test/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           [...]
     6. If environment is undefined, return PutValue(lhs, v).
     7. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-id-init-fn-name-gen.js
index 776d591db6..da3147214e 100644
--- a/test/language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-func-dstr-var-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-func-dstr-var-obj-ptrn-id-init-fn-name-gen.js
index f0f05a1ab5..557fec91d9 100644
--- a/test/language/statements/for-await-of/async-func-dstr-var-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-func-dstr-var-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -44,6 +44,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elem-ary-empty-init.js
index a5c5cd3a6d..c527ba591b 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -46,6 +46,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js
index 890fc70ff2..4032716d63 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           [...]
     6. If environment is undefined, return PutValue(lhs, v).
     7. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision-iter-close.js b/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision-iter-close.js
index fd8d14770b..7b2b9de610 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision-iter-close.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elision-iter-close.js
@@ -4,7 +4,7 @@
 /*---
 description: The iterator is properly consumed by the destructuring pattern (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [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-rest-id-iter-close.js b/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-id-iter-close.js
index af61e2889a..3ec4899f3e 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-id-iter-close.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-id-iter-close.js
@@ -4,7 +4,7 @@
 /*---
 description: The iterator is properly consumed by the destructuring pattern (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [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-elem-ary-empty-init.js b/test/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elem-ary-empty-init.js
index 90dd99c29b..b294ecf8a4 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -46,6 +46,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elem-id-init-fn-name-gen.js
index 82bddc49fb..18360017c5 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           [...]
     6. If environment is undefined, return PutValue(lhs, v).
     7. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-id-init-fn-name-gen.js
index 9d1f48d453..409ec483ac 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-id-init-fn-name-gen.js
index 2f82a8fe1f..91b1382d5f 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elem-ary-empty-init.js
index 1ebbc56325..faa6b0fefc 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -46,6 +46,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js
index 937825c24b..4d4f33872c 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           [...]
     6. If environment is undefined, return PutValue(lhs, v).
     7. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision-iter-close.js b/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision-iter-close.js
index 58306e76b8..4a11347150 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision-iter-close.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elision-iter-close.js
@@ -4,7 +4,7 @@
 /*---
 description: The iterator is properly consumed by the destructuring pattern (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [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-rest-id-iter-close.js b/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-id-iter-close.js
index 8cd3f727f8..d13a2043cc 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-id-iter-close.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-id-iter-close.js
@@ -4,7 +4,7 @@
 /*---
 description: The iterator is properly consumed by the destructuring pattern (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [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-elem-ary-empty-init.js b/test/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elem-ary-empty-init.js
index 16a9eb3a72..a35184fc83 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -46,6 +46,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elem-id-init-fn-name-gen.js
index 6e319e753d..694f66c56d 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           [...]
     6. If environment is undefined, return PutValue(lhs, v).
     7. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-id-init-fn-name-gen.js
index d8a9002f15..b2aceafebe 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-id-init-fn-name-gen.js
index 428770a315..fbb1eefecd 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elem-ary-empty-init.js
index b579f35429..b57f4a3864 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -43,6 +43,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js
index 7d904485e4..17a3f6cba6 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -44,6 +44,7 @@ info: |
           [...]
     6. If environment is undefined, return PutValue(lhs, v).
     7. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision-iter-close.js b/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision-iter-close.js
index 71f956e2eb..4fe7ab8a91 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision-iter-close.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elision-iter-close.js
@@ -4,7 +4,7 @@
 /*---
 description: The iterator is properly consumed by the destructuring pattern (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [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-rest-id-iter-close.js b/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-id-iter-close.js
index ff17a59707..1a8ba25053 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-id-iter-close.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-id-iter-close.js
@@ -4,7 +4,7 @@
 /*---
 description: The iterator is properly consumed by the destructuring pattern (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [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-elem-ary-empty-init.js b/test/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elem-ary-empty-init.js
index 6f5f9ff77e..1785efad6a 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elem-ary-empty-init.js
@@ -4,7 +4,7 @@
 /*---
 description: BindingElement with array binding pattern and initializer is used (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -46,6 +46,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elem-id-init-fn-name-gen.js
index e252e7b779..eba673cf24 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           [...]
     6. If environment is undefined, return PutValue(lhs, v).
     7. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-id-init-fn-name-gen.js
index 83ce4bb018..6c72f32243 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-id-init-fn-name-gen.js
index 429f03b34b..0720096521 100644
--- a/test/language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-id-init-fn-name-gen.js
@@ -4,7 +4,7 @@
 /*---
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-await-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
-features: [destructuring-binding, async-iteration]
+features: [generators, destructuring-binding, async-iteration]
 flags: [generated, async]
 info: |
     IterationStatement :
@@ -44,6 +44,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-of/dstr-const-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/for-of/dstr-const-ary-ptrn-elem-ary-empty-init.js
index 5c9df65531..57f29c74a8 100644
--- a/test/language/statements/for-of/dstr-const-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for-of/dstr-const-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for-of/dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for-of/dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js
index a821cdbc4c..ff55b5fcef 100644
--- a/test/language/statements/for-of/dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for-of/dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -49,6 +49,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-of/dstr-const-ary-ptrn-elision-iter-close.js b/test/language/statements/for-of/dstr-const-ary-ptrn-elision-iter-close.js
index d5d69820f9..b1371aceaa 100644
--- a/test/language/statements/for-of/dstr-const-ary-ptrn-elision-iter-close.js
+++ b/test/language/statements/for-of/dstr-const-ary-ptrn-elision-iter-close.js
@@ -5,7 +5,7 @@
 description: The iterator is properly consumed by the destructuring pattern (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-of/dstr-const-ary-ptrn-rest-id-iter-close.js b/test/language/statements/for-of/dstr-const-ary-ptrn-rest-id-iter-close.js
index a505abf901..6de1cf780a 100644
--- a/test/language/statements/for-of/dstr-const-ary-ptrn-rest-id-iter-close.js
+++ b/test/language/statements/for-of/dstr-const-ary-ptrn-rest-id-iter-close.js
@@ -5,7 +5,7 @@
 description: The iterator is properly consumed by the destructuring pattern (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-of/dstr-const-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for-of/dstr-const-obj-ptrn-id-init-fn-name-gen.js
index 134d1c6da4..53a60475ce 100644
--- a/test/language/statements/for-of/dstr-const-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for-of/dstr-const-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -48,6 +48,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-of/dstr-let-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/for-of/dstr-let-ary-ptrn-elem-ary-empty-init.js
index 95ad580164..e5f888ef76 100644
--- a/test/language/statements/for-of/dstr-let-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for-of/dstr-let-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for-of/dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for-of/dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js
index 4f0cecc2e2..e8805da213 100644
--- a/test/language/statements/for-of/dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for-of/dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -49,6 +49,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-of/dstr-let-ary-ptrn-elision-iter-close.js b/test/language/statements/for-of/dstr-let-ary-ptrn-elision-iter-close.js
index 7dce142e5e..702811f258 100644
--- a/test/language/statements/for-of/dstr-let-ary-ptrn-elision-iter-close.js
+++ b/test/language/statements/for-of/dstr-let-ary-ptrn-elision-iter-close.js
@@ -5,7 +5,7 @@
 description: The iterator is properly consumed by the destructuring pattern (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-of/dstr-let-ary-ptrn-rest-id-iter-close.js b/test/language/statements/for-of/dstr-let-ary-ptrn-rest-id-iter-close.js
index d93a9f7a9f..e76d657d5d 100644
--- a/test/language/statements/for-of/dstr-let-ary-ptrn-rest-id-iter-close.js
+++ b/test/language/statements/for-of/dstr-let-ary-ptrn-rest-id-iter-close.js
@@ -5,7 +5,7 @@
 description: The iterator is properly consumed by the destructuring pattern (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-of/dstr-let-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for-of/dstr-let-obj-ptrn-id-init-fn-name-gen.js
index 5fc38fa6cb..a5b8865831 100644
--- a/test/language/statements/for-of/dstr-let-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for-of/dstr-let-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -48,6 +48,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-of/dstr-var-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/for-of/dstr-var-ary-ptrn-elem-ary-empty-init.js
index c545d59dfb..b198555e3c 100644
--- a/test/language/statements/for-of/dstr-var-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for-of/dstr-var-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -44,6 +44,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for-of/dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for-of/dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js
index 6b1b838696..11ff359c55 100644
--- a/test/language/statements/for-of/dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for-of/dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -46,6 +46,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for-of/dstr-var-ary-ptrn-elision-iter-close.js b/test/language/statements/for-of/dstr-var-ary-ptrn-elision-iter-close.js
index e652adaebd..20d97fd8b3 100644
--- a/test/language/statements/for-of/dstr-var-ary-ptrn-elision-iter-close.js
+++ b/test/language/statements/for-of/dstr-var-ary-ptrn-elision-iter-close.js
@@ -5,7 +5,7 @@
 description: The iterator is properly consumed by the destructuring pattern (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-of/dstr-var-ary-ptrn-rest-id-iter-close.js b/test/language/statements/for-of/dstr-var-ary-ptrn-rest-id-iter-close.js
index 48ec63f5aa..f35b4aa478 100644
--- a/test/language/statements/for-of/dstr-var-ary-ptrn-rest-id-iter-close.js
+++ b/test/language/statements/for-of/dstr-var-ary-ptrn-rest-id-iter-close.js
@@ -5,7 +5,7 @@
 description: The iterator is properly consumed by the destructuring pattern (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for-of/dstr-var-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for-of/dstr-var-obj-ptrn-id-init-fn-name-gen.js
index 938100e545..7e88ae91c5 100644
--- a/test/language/statements/for-of/dstr-var-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for-of/dstr-var-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (for-of statement)
 esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
 es6id: 13.7.5.11
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -45,6 +45,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for/dstr-const-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/for/dstr-const-ary-ptrn-elem-ary-empty-init.js
index d62a303f7f..a58a66f6dc 100644
--- a/test/language/statements/for/dstr-const-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for/dstr-const-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for/dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for/dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js
index 314d7ae67a..43a2cf4d93 100644
--- a/test/language/statements/for/dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for/dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -49,6 +49,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for/dstr-const-ary-ptrn-elision-iter-close.js b/test/language/statements/for/dstr-const-ary-ptrn-elision-iter-close.js
index 2bf96c4c3e..2dc6810c86 100644
--- a/test/language/statements/for/dstr-const-ary-ptrn-elision-iter-close.js
+++ b/test/language/statements/for/dstr-const-ary-ptrn-elision-iter-close.js
@@ -5,7 +5,7 @@
 description: The iterator is properly consumed by the destructuring pattern (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for/dstr-const-ary-ptrn-rest-id-iter-close.js b/test/language/statements/for/dstr-const-ary-ptrn-rest-id-iter-close.js
index 8c84b5cc90..3beb77718d 100644
--- a/test/language/statements/for/dstr-const-ary-ptrn-rest-id-iter-close.js
+++ b/test/language/statements/for/dstr-const-ary-ptrn-rest-id-iter-close.js
@@ -5,7 +5,7 @@
 description: The iterator is properly consumed by the destructuring pattern (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for/dstr-const-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for/dstr-const-obj-ptrn-id-init-fn-name-gen.js
index 212a78c706..d23e77286b 100644
--- a/test/language/statements/for/dstr-const-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for/dstr-const-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -48,6 +48,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for/dstr-let-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/for/dstr-let-ary-ptrn-elem-ary-empty-init.js
index 9057b321c9..fc1855c546 100644
--- a/test/language/statements/for/dstr-let-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for/dstr-let-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -47,6 +47,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for/dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for/dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js
index e3f0ab5250..41e2fc3098 100644
--- a/test/language/statements/for/dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for/dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -49,6 +49,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for/dstr-let-ary-ptrn-elision-iter-close.js b/test/language/statements/for/dstr-let-ary-ptrn-elision-iter-close.js
index fd50399602..2c99a7ce2c 100644
--- a/test/language/statements/for/dstr-let-ary-ptrn-elision-iter-close.js
+++ b/test/language/statements/for/dstr-let-ary-ptrn-elision-iter-close.js
@@ -5,7 +5,7 @@
 description: The iterator is properly consumed by the destructuring pattern (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for/dstr-let-ary-ptrn-rest-id-iter-close.js b/test/language/statements/for/dstr-let-ary-ptrn-rest-id-iter-close.js
index 2bd36c00bf..f24ca5a73b 100644
--- a/test/language/statements/for/dstr-let-ary-ptrn-rest-id-iter-close.js
+++ b/test/language/statements/for/dstr-let-ary-ptrn-rest-id-iter-close.js
@@ -5,7 +5,7 @@
 description: The iterator is properly consumed by the destructuring pattern (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for/dstr-let-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for/dstr-let-obj-ptrn-id-init-fn-name-gen.js
index a7897d2b1a..5e5bf86e37 100644
--- a/test/language/statements/for/dstr-let-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for/dstr-let-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -48,6 +48,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for/dstr-var-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/for/dstr-var-ary-ptrn-elem-ary-empty-init.js
index 66d58c6d58..bab682f554 100644
--- a/test/language/statements/for/dstr-var-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/for/dstr-var-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -41,6 +41,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/for/dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/for/dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js
index 3ead9776b2..10b088a7de 100644
--- a/test/language/statements/for/dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/for/dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -43,6 +43,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/for/dstr-var-ary-ptrn-elision-iter-close.js b/test/language/statements/for/dstr-var-ary-ptrn-elision-iter-close.js
index 4a46e38f75..8888f088ce 100644
--- a/test/language/statements/for/dstr-var-ary-ptrn-elision-iter-close.js
+++ b/test/language/statements/for/dstr-var-ary-ptrn-elision-iter-close.js
@@ -5,7 +5,7 @@
 description: The iterator is properly consumed by the destructuring pattern (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for/dstr-var-ary-ptrn-rest-id-iter-close.js b/test/language/statements/for/dstr-var-ary-ptrn-rest-id-iter-close.js
index 7d8f477b82..8ecdcf3764 100644
--- a/test/language/statements/for/dstr-var-ary-ptrn-rest-id-iter-close.js
+++ b/test/language/statements/for/dstr-var-ary-ptrn-rest-id-iter-close.js
@@ -5,7 +5,7 @@
 description: The iterator is properly consumed by the destructuring pattern (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
diff --git a/test/language/statements/for/dstr-var-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/for/dstr-var-obj-ptrn-id-init-fn-name-gen.js
index 51dfc46531..56ecead328 100644
--- a/test/language/statements/for/dstr-var-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/for/dstr-var-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (for statement)
 esid: sec-for-statement-runtime-semantics-labelledevaluation
 es6id: 13.7.4.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     IterationStatement :
@@ -42,6 +42,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var iterCount = 0;
diff --git a/test/language/statements/function/dstr-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/function/dstr-ary-ptrn-elem-ary-empty-init.js
index 0648728f1c..50ba48cb9a 100644
--- a/test/language/statements/function/dstr-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/function/dstr-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (function declaration)
 esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.1.19
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     FunctionDeclaration :
@@ -50,6 +50,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/function/dstr-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/function/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
index 677d2202fb..410f31c6a6 100644
--- a/test/language/statements/function/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/function/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (function declaration)
 esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.1.19
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     FunctionDeclaration :
@@ -52,6 +52,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/function/dstr-dflt-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/function/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
index 81ae466e1a..72645d5fd5 100644
--- a/test/language/statements/function/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/function/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (function declaration (default parameter))
 esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.1.19
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     FunctionDeclaration :
@@ -50,6 +50,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index ba3ab7b2a5..3734d45da8 100644
--- a/test/language/statements/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/function/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (function declaration (default parameter))
 esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.1.19
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     FunctionDeclaration :
@@ -52,6 +52,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/function/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/function/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
index cf12cc58a2..5845c9cf43 100644
--- a/test/language/statements/function/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/function/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (function declaration (default parameter))
 esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.1.19
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     FunctionDeclaration :
@@ -51,6 +51,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/function/dstr-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/function/dstr-obj-ptrn-id-init-fn-name-gen.js
index db0a16361d..bf5226db23 100644
--- a/test/language/statements/function/dstr-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/function/dstr-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (function declaration)
 esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.1.19
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     FunctionDeclaration :
@@ -51,6 +51,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/generators/arguments-with-arguments-fn.js b/test/language/statements/generators/arguments-with-arguments-fn.js
index 728962cb4d..6b67e7a19c 100644
--- a/test/language/statements/generators/arguments-with-arguments-fn.js
+++ b/test/language/statements/generators/arguments-with-arguments-fn.js
@@ -16,6 +16,7 @@ info: |
          i. Let argumentsObjectNeeded be false.
   [...]
 flags: [noStrict]
+features: [generators]
 ---*/
 
 var args;
diff --git a/test/language/statements/generators/arguments-with-arguments-lex.js b/test/language/statements/generators/arguments-with-arguments-lex.js
index 407908eedf..9fe14c3775 100644
--- a/test/language/statements/generators/arguments-with-arguments-lex.js
+++ b/test/language/statements/generators/arguments-with-arguments-lex.js
@@ -16,6 +16,7 @@ info: |
          i. Let argumentsObjectNeeded be false.
   [...]
 flags: [noStrict]
+features: [generators]
 ---*/
 
 var args;
diff --git a/test/language/statements/generators/cptn-decl.js b/test/language/statements/generators/cptn-decl.js
index ccf8a92352..f355be3f4c 100644
--- a/test/language/statements/generators/cptn-decl.js
+++ b/test/language/statements/generators/cptn-decl.js
@@ -11,6 +11,7 @@ info: >
     HoistableDeclaration : GeneratorDeclaration
 
     1. Return NormalCompletion(empty).
+features: [generators]
 ---*/
 
 assert.sameValue(eval('function* f() {}'), undefined);
diff --git a/test/language/statements/generators/declaration.js b/test/language/statements/generators/declaration.js
index 0f8aada0de..f25b49c800 100644
--- a/test/language/statements/generators/declaration.js
+++ b/test/language/statements/generators/declaration.js
@@ -7,6 +7,7 @@ info: >
 es6id: 14.4
 author: Sam Mikes
 description: can declare generator functions
+features: [generators]
 ---*/
 
 function *foo(a) { yield a+1; return; }
diff --git a/test/language/statements/generators/default-proto.js b/test/language/statements/generators/default-proto.js
index 96469f7be4..66f63c972f 100644
--- a/test/language/statements/generators/default-proto.js
+++ b/test/language/statements/generators/default-proto.js
@@ -24,6 +24,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/language/statements/generators/dflt-params-abrupt.js b/test/language/statements/generators/dflt-params-abrupt.js
index 14d99ef7b9..23af7e9ca6 100644
--- a/test/language/statements/generators/dflt-params-abrupt.js
+++ b/test/language/statements/generators/dflt-params-abrupt.js
@@ -4,7 +4,7 @@
 /*---
 description: Abrupt completion returned by evaluation of initializer (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
@@ -37,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/generators/dflt-params-arg-val-not-undefined.js b/test/language/statements/generators/dflt-params-arg-val-not-undefined.js
index f08c4a5258..a8b871bdba 100644
--- a/test/language/statements/generators/dflt-params-arg-val-not-undefined.js
+++ b/test/language/statements/generators/dflt-params-arg-val-not-undefined.js
@@ -4,7 +4,7 @@
 /*---
 description: Use of intializer when argument value is not `undefined` (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
@@ -37,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/generators/dflt-params-arg-val-undefined.js b/test/language/statements/generators/dflt-params-arg-val-undefined.js
index 0d50fc6835..64691f34ae 100644
--- a/test/language/statements/generators/dflt-params-arg-val-undefined.js
+++ b/test/language/statements/generators/dflt-params-arg-val-undefined.js
@@ -4,7 +4,7 @@
 /*---
 description: Use of intializer when argument value is `undefined` (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
@@ -37,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/generators/dflt-params-duplicates.js b/test/language/statements/generators/dflt-params-duplicates.js
index 71323f4998..d2d321eb45 100644
--- a/test/language/statements/generators/dflt-params-duplicates.js
+++ b/test/language/statements/generators/dflt-params-duplicates.js
@@ -4,7 +4,7 @@
 /*---
 description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 negative:
   phase: early
@@ -40,6 +40,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.2 Static Semantics: Early Errors
 
     StrictFormalParameters : FormalParameters
diff --git a/test/language/statements/generators/dflt-params-ref-later.js b/test/language/statements/generators/dflt-params-ref-later.js
index 6c351f0186..3795311730 100644
--- a/test/language/statements/generators/dflt-params-ref-later.js
+++ b/test/language/statements/generators/dflt-params-ref-later.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter that occurs later in the ParameterList (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
@@ -37,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/generators/dflt-params-ref-prior.js b/test/language/statements/generators/dflt-params-ref-prior.js
index 39eb6654db..2775bbe2a9 100644
--- a/test/language/statements/generators/dflt-params-ref-prior.js
+++ b/test/language/statements/generators/dflt-params-ref-prior.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter that occurs earlier in the ParameterList (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
@@ -37,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/generators/dflt-params-ref-self.js b/test/language/statements/generators/dflt-params-ref-self.js
index 387f8db2ee..1b1ca288b2 100644
--- a/test/language/statements/generators/dflt-params-ref-self.js
+++ b/test/language/statements/generators/dflt-params-ref-self.js
@@ -4,7 +4,7 @@
 /*---
 description: Referencing a parameter from within its own initializer (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
@@ -37,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1.19 Runtime Semantics: IteratorBindingInitialization
 
     FormalsList : FormalsList , FormalParameter
diff --git a/test/language/statements/generators/dflt-params-rest.js b/test/language/statements/generators/dflt-params-rest.js
index f8536410ea..9bc7857f94 100644
--- a/test/language/statements/generators/dflt-params-rest.js
+++ b/test/language/statements/generators/dflt-params-rest.js
@@ -4,7 +4,7 @@
 /*---
 description: RestParameter does not support an initializer (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
-features: [default-parameters]
+features: [default-parameters, generators]
 flags: [generated]
 negative:
   phase: early
@@ -40,6 +40,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     14.1 Function Definitions
 
     Syntax
diff --git a/test/language/statements/generators/dflt-params-trailing-comma.js b/test/language/statements/generators/dflt-params-trailing-comma.js
index 37125ebe7f..6d30e48d6a 100644
--- a/test/language/statements/generators/dflt-params-trailing-comma.js
+++ b/test/language/statements/generators/dflt-params-trailing-comma.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using default parameters (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
+features: [generators]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
@@ -36,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/statements/generators/dstr-ary-init-iter-close.js b/test/language/statements/generators/dstr-ary-init-iter-close.js
index 7493355382..a7291222cb 100644
--- a/test/language/statements/generators/dstr-ary-init-iter-close.js
+++ b/test/language/statements/generators/dstr-ary-init-iter-close.js
@@ -5,7 +5,7 @@
 description: Iterator is closed when not exhausted by pattern evaluation (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-init-iter-get-err.js b/test/language/statements/generators/dstr-ary-init-iter-get-err.js
index 340e60c50b..d1c793c117 100644
--- a/test/language/statements/generators/dstr-ary-init-iter-get-err.js
+++ b/test/language/statements/generators/dstr-ary-init-iter-get-err.js
@@ -5,7 +5,7 @@
 description: Abrupt completion returned by GetIterator (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-init-iter-no-close.js b/test/language/statements/generators/dstr-ary-init-iter-no-close.js
index 33b36cf473..076f6a20b8 100644
--- a/test/language/statements/generators/dstr-ary-init-iter-no-close.js
+++ b/test/language/statements/generators/dstr-ary-init-iter-no-close.js
@@ -5,7 +5,7 @@
 description: Iterator is not closed when exhausted by pattern evaluation (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-name-iter-val.js b/test/language/statements/generators/dstr-ary-name-iter-val.js
index 62ca40ba1a..4fe88ea031 100644
--- a/test/language/statements/generators/dstr-ary-name-iter-val.js
+++ b/test/language/statements/generators/dstr-ary-name-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding with normal value iteration (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-ary-elem-init.js b/test/language/statements/generators/dstr-ary-ptrn-elem-ary-elem-init.js
index 178b968551..b72101410a 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-ary-elem-init.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-ary-elem-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-ary-elem-iter.js b/test/language/statements/generators/dstr-ary-ptrn-elem-ary-elem-iter.js
index b60799f56d..684f991cdc 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-ary-elem-iter.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-ary-elem-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/generators/dstr-ary-ptrn-elem-ary-empty-init.js
index e18c81d65a..4e0608d9e2 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
@@ -49,6 +49,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-ary-empty-iter.js b/test/language/statements/generators/dstr-ary-ptrn-elem-ary-empty-iter.js
index e4d52d0508..a75b48415d 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-ary-empty-iter.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-ary-empty-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-ary-rest-init.js b/test/language/statements/generators/dstr-ary-ptrn-elem-ary-rest-init.js
index 7bd3859401..678e89c574 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-ary-rest-init.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-ary-rest-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-ary-rest-iter.js b/test/language/statements/generators/dstr-ary-ptrn-elem-ary-rest-iter.js
index feadf2ea1e..086f0ad714 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-ary-rest-iter.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-ary-rest-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-ary-val-null.js b/test/language/statements/generators/dstr-ary-ptrn-elem-ary-val-null.js
index 51027c061d..7b53a5b90a 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-ary-val-null.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-ary-val-null.js
@@ -5,7 +5,7 @@
 description: Nested array destructuring with a null value (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-exhausted.js b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-exhausted.js
index f17730b33b..a668c8967d 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-exhausted.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-exhausted.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an exhausted iterator (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-arrow.js b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-arrow.js
index b3c9b01d8c..8861bb0288 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-arrow.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to arrow functions (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-class.js b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-class.js
index c834ea4c66..7977dfa7a2 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-class.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-cover.js b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-cover.js
index cc047bc3e2..96e582f199 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-cover.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-fn.js b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-fn.js
index cfb41aba06..46b473e1ca 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-fn.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
index 9b58c8b502..da2eae6ff6 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
@@ -51,6 +51,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-hole.js b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-hole.js
index 12fb735bab..77f13ebbac 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-hole.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-hole.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with a "hole" (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-skipped.js b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-skipped.js
index 60056c98b7..2b4460f291 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-skipped.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-throws.js b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-throws.js
index 9ed3b6a24b..2985f045c6 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-throws.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer returns an abrupt completion (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-undef.js b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-undef.js
index 2acdbed966..5cc11aca65 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-undef.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-undef.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an undefined value (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-unresolvable.js b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-unresolvable.js
index 51412028b4..65d80299a2 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-unresolvable.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-complete.js b/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-complete.js
index 48168560d0..b1d728fe51 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-complete.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-complete.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration completes (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-done.js b/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-done.js
index 1339789f13..e3cf8bd3eb 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-done.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-done.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-step-err.js b/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-step-err.js
index 26bee8ce6f..d7aa3a222e 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-step-err.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-step-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorStep returns an abrupt completion (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-val-err.js b/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-val-err.js
index 27edea431e..4b501d2ca9 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-val-err.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-val.js b/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-val.js
index 1e9303ce4b..613584bafd 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-val.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-id-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-obj-id-init.js b/test/language/statements/generators/dstr-ary-ptrn-elem-obj-id-init.js
index 65ccc831f3..fe1c5b9535 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-obj-id-init.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-obj-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-obj-id.js b/test/language/statements/generators/dstr-ary-ptrn-elem-obj-id.js
index f8d86ab2f9..e6397c5e1b 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-obj-id.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-obj-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-obj-prop-id-init.js b/test/language/statements/generators/dstr-ary-ptrn-elem-obj-prop-id-init.js
index aef44d6891..2a4b899d8a 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-obj-prop-id-init.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-obj-prop-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-obj-prop-id.js b/test/language/statements/generators/dstr-ary-ptrn-elem-obj-prop-id.js
index 20d25962ca..9112697e63 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-obj-prop-id.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-obj-val-null.js b/test/language/statements/generators/dstr-ary-ptrn-elem-obj-val-null.js
index 057d0bcb73..720074d2f7 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-obj-val-null.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-obj-val-null.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a null value (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-elem-obj-val-undef.js b/test/language/statements/generators/dstr-ary-ptrn-elem-obj-val-undef.js
index f21bafeaca..1fdf4eba08 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-elem-obj-val-undef.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-elem-obj-val-undef.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a value of `undefined` (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-rest-ary-elem.js b/test/language/statements/generators/dstr-ary-ptrn-rest-ary-elem.js
index b140b5ec8d..6247402279 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-rest-ary-elem.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-rest-ary-elem.js
@@ -5,7 +5,7 @@
 description: Rest element containing an array BindingElementList pattern (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-rest-ary-rest.js b/test/language/statements/generators/dstr-ary-ptrn-rest-ary-rest.js
index 3d11c6650c..df36f3c13e 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-rest-ary-rest.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-rest-ary-rest.js
@@ -5,7 +5,7 @@
 description: Rest element containing a rest element (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-rest-id-elision.js b/test/language/statements/generators/dstr-ary-ptrn-rest-id-elision.js
index 8704f0f05d..95b9e3e0c1 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-rest-id-elision.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-rest-id-elision.js
@@ -5,7 +5,7 @@
 description: Rest element following elision elements (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-rest-id-exhausted.js b/test/language/statements/generators/dstr-ary-ptrn-rest-id-exhausted.js
index 9b47c96c35..79f26a030d 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-rest-id-exhausted.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-rest-id-exhausted.js
@@ -5,7 +5,7 @@
 description: RestElement applied to an exhausted iterator (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-rest-id-iter-val-err.js b/test/language/statements/generators/dstr-ary-ptrn-rest-id-iter-val-err.js
index c8e4e67ced..eb0b2284cc 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-rest-id-iter-val-err.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-rest-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [Symbol.iterator, destructuring-binding]
+features: [Symbol.iterator, generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-rest-id.js b/test/language/statements/generators/dstr-ary-ptrn-rest-id.js
index 14bfa74e9b..e2b1fe4fcb 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-rest-id.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-rest-id.js
@@ -5,7 +5,7 @@
 description: Lone rest element (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-rest-init-ary.js b/test/language/statements/generators/dstr-ary-ptrn-rest-init-ary.js
index 1a445775e6..2a7e5450d3 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-rest-init-ary.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-rest-init-ary.js
@@ -5,7 +5,7 @@
 description: Reset element (nested array pattern) does not support initializer (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/generators/dstr-ary-ptrn-rest-init-id.js b/test/language/statements/generators/dstr-ary-ptrn-rest-init-id.js
index d7d20e9439..b166562fed 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-rest-init-id.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-rest-init-id.js
@@ -5,7 +5,7 @@
 description: Reset element (identifier) does not support initializer (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/generators/dstr-ary-ptrn-rest-init-obj.js b/test/language/statements/generators/dstr-ary-ptrn-rest-init-obj.js
index 390cdbc98f..a9527de695 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-rest-init-obj.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-rest-init-obj.js
@@ -5,7 +5,7 @@
 description: Reset element (nested object pattern) does not support initializer (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/generators/dstr-ary-ptrn-rest-not-final-ary.js b/test/language/statements/generators/dstr-ary-ptrn-rest-not-final-ary.js
index 77d8170c5b..1210b4b86b 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-rest-not-final-ary.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-rest-not-final-ary.js
@@ -5,7 +5,7 @@
 description: Rest element (array binding pattern) may not be followed by any element (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/generators/dstr-ary-ptrn-rest-not-final-id.js b/test/language/statements/generators/dstr-ary-ptrn-rest-not-final-id.js
index ac610fb04f..712889121b 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-rest-not-final-id.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-rest-not-final-id.js
@@ -5,7 +5,7 @@
 description: Rest element (identifier) may not be followed by any element (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/generators/dstr-ary-ptrn-rest-not-final-obj.js b/test/language/statements/generators/dstr-ary-ptrn-rest-not-final-obj.js
index 5c8f7d1669..ca9d782763 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-rest-not-final-obj.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-rest-not-final-obj.js
@@ -5,7 +5,7 @@
 description: Rest element (object binding pattern) may not be followed by any element (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/generators/dstr-ary-ptrn-rest-obj-id.js b/test/language/statements/generators/dstr-ary-ptrn-rest-obj-id.js
index 77d59ed238..63e683c67f 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-rest-obj-id.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-rest-obj-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-ary-ptrn-rest-obj-prop-id.js b/test/language/statements/generators/dstr-ary-ptrn-rest-obj-prop-id.js
index da0edfeb49..466d13e958 100644
--- a/test/language/statements/generators/dstr-ary-ptrn-rest-obj-prop-id.js
+++ b/test/language/statements/generators/dstr-ary-ptrn-rest-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-dflt-ary-init-iter-close.js b/test/language/statements/generators/dstr-dflt-ary-init-iter-close.js
index b7159d14f7..fe6255fb10 100644
--- a/test/language/statements/generators/dstr-dflt-ary-init-iter-close.js
+++ b/test/language/statements/generators/dstr-dflt-ary-init-iter-close.js
@@ -5,7 +5,7 @@
 description: Iterator is closed when not exhausted by pattern evaluation (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-dflt-ary-init-iter-get-err.js b/test/language/statements/generators/dstr-dflt-ary-init-iter-get-err.js
index be0a0929fe..f451d94d52 100644
--- a/test/language/statements/generators/dstr-dflt-ary-init-iter-get-err.js
+++ b/test/language/statements/generators/dstr-dflt-ary-init-iter-get-err.js
@@ -5,7 +5,7 @@
 description: Abrupt completion returned by GetIterator (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-dflt-ary-init-iter-no-close.js b/test/language/statements/generators/dstr-dflt-ary-init-iter-no-close.js
index b08a9f0841..2bd19fabbb 100644
--- a/test/language/statements/generators/dstr-dflt-ary-init-iter-no-close.js
+++ b/test/language/statements/generators/dstr-dflt-ary-init-iter-no-close.js
@@ -5,7 +5,7 @@
 description: Iterator is not closed when exhausted by pattern evaluation (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-dflt-ary-name-iter-val.js b/test/language/statements/generators/dstr-dflt-ary-name-iter-val.js
index 01cc9dfb4d..564ac89e6c 100644
--- a/test/language/statements/generators/dstr-dflt-ary-name-iter-val.js
+++ b/test/language/statements/generators/dstr-dflt-ary-name-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding with normal value iteration (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-ary-elem-init.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-elem-init.js
index 86d79f337b..7266aede71 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-elem-init.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-elem-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-ary-elem-iter.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-elem-iter.js
index 4df9e01554..c2c112c8cf 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-elem-iter.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-elem-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-ary-empty-init.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
index d535b67c4b..1cd223f4d7 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
@@ -49,6 +49,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-empty-iter.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-empty-iter.js
index db6ad2f12a..112bd02f0e 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-empty-iter.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-empty-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-ary-rest-init.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-rest-init.js
index 1cbba70f3c..09b3aeeee5 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-rest-init.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-rest-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-ary-rest-iter.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-rest-iter.js
index 08f81debb1..d117577df2 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-rest-iter.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-rest-iter.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is not used (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-ary-val-null.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-val-null.js
index 67ea3a8278..a892a70521 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-val-null.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-ary-val-null.js
@@ -5,7 +5,7 @@
 description: Nested array destructuring with a null value (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-id-init-exhausted.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-exhausted.js
index 193c144826..d5c8321825 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-exhausted.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-exhausted.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an exhausted iterator (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-id-init-fn-name-arrow.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
index 854c4457fb..23079ec61c 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to arrow functions (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-id-init-fn-name-class.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-class.js
index 083875d7f4..bd0ca397ea 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-class.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-id-init-fn-name-cover.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
index 37ac885369..b6918892f9 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding does assign name to "anonymous" functions "through" cover grammar (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-id-init-fn-name-fn.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
index e2f20084a9..b408b3a047 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-id-init-fn-name-gen.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
index de951966fc..e9ea425f3f 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
@@ -51,6 +51,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-hole.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-hole.js
index ef05a5478b..32e961a424 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-hole.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-hole.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with a "hole" (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-id-init-skipped.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-skipped.js
index 067f1dbe10..5b72938880 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-skipped.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-id-init-throws.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-throws.js
index e5bdb2bf5c..6450e6ec35 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-throws.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer returns an abrupt completion (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-id-init-undef.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-undef.js
index 12cc3cd63c..6d1061da75 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-undef.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-undef.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer with an undefined value (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-id-init-unresolvable.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-unresolvable.js
index 3860cbd0c0..6aac5edd3a 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-unresolvable.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-id-iter-complete.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-iter-complete.js
index 801b828215..2807388d06 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-iter-complete.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-iter-complete.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration completes (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-id-iter-done.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-iter-done.js
index 433f52ee60..fcec5ce12e 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-iter-done.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-iter-done.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-id-iter-step-err.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-iter-step-err.js
index cc6330b55a..48eda78fc7 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-iter-step-err.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-iter-step-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorStep returns an abrupt completion (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-iter-val-err.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-iter-val-err.js
index fd80d49971..7492cd5da5 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-iter-val-err.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-iter-val.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-iter-val.js
index 22cc5f2077..c744a3236b 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-iter-val.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-id-iter-val.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding when value iteration was completed previously (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-obj-id-init.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-id-init.js
index 39067b4ab9..a747b32a22 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-id-init.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-obj-id.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-id.js
index 191f6635ea..eb37fddf46 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-id.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-obj-prop-id-init.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-prop-id-init.js
index 1ece4c26d1..815419bac3 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-prop-id-init.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-prop-id-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is used (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-obj-prop-id.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-prop-id.js
index 5c50e495f8..7ff10856b5 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-prop-id.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: BindingElement with object binding pattern and initializer is not used (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-obj-val-null.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-val-null.js
index 596d0aab10..84fba013e6 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-val-null.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-val-null.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a null value (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-elem-obj-val-undef.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-val-undef.js
index 0731bc027e..cc6e1f7c04 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-val-undef.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-elem-obj-val-undef.js
@@ -5,7 +5,7 @@
 description: Nested object destructuring with a value of `undefined` (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-rest-ary-elem.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-ary-elem.js
index eef37179bb..6e9bf38d71 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-ary-elem.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-ary-elem.js
@@ -5,7 +5,7 @@
 description: Rest element containing an array BindingElementList pattern (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-rest-ary-rest.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-ary-rest.js
index c3f1e58bc2..54d333cbd4 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-ary-rest.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-ary-rest.js
@@ -5,7 +5,7 @@
 description: Rest element containing a rest element (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-rest-id-elision.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-id-elision.js
index ad05e3cfd1..4078c60a75 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-id-elision.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-id-elision.js
@@ -5,7 +5,7 @@
 description: Rest element following elision elements (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-rest-id-exhausted.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-id-exhausted.js
index add35a813b..051cb72d17 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-id-exhausted.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-id-exhausted.js
@@ -5,7 +5,7 @@
 description: RestElement applied to an exhausted iterator (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-id-iter-val-err.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-id-iter-val-err.js
index 6adac85057..fb01521b55 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-id-iter-val-err.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-id-iter-val-err.js
@@ -5,7 +5,7 @@
 description: Error forwarding when IteratorValue returns an abrupt completion (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [Symbol.iterator, destructuring-binding, default-parameters]
+features: [Symbol.iterator, generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-id.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-id.js
index 3663784da3..c9826500f8 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-id.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-id.js
@@ -5,7 +5,7 @@
 description: Lone rest element (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-rest-init-ary.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-ary.js
index b6cf14554a..fc5ac385be 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-ary.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-ary.js
@@ -5,7 +5,7 @@
 description: Reset element (nested array pattern) does not support initializer (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-id.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-id.js
index 294784dce7..ffcbb55d93 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-id.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-id.js
@@ -5,7 +5,7 @@
 description: Reset element (identifier) does not support initializer (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-obj.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-obj.js
index 95f7dfe03f..8996c1df12 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-obj.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-obj.js
@@ -5,7 +5,7 @@
 description: Reset element (nested object pattern) does not support initializer (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-ary.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-ary.js
index 48d76a9d59..5145b5fbdb 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-ary.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-ary.js
@@ -5,7 +5,7 @@
 description: Rest element (array binding pattern) may not be followed by any element (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-id.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-id.js
index 9fe5a46d9a..c93820ea9f 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-id.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-id.js
@@ -5,7 +5,7 @@
 description: Rest element (identifier) may not be followed by any element (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-obj.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-obj.js
index 8d08ffdc69..0189289634 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-obj.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-obj.js
@@ -5,7 +5,7 @@
 description: Rest element (object binding pattern) may not be followed by any element (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-obj-id.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-obj-id.js
index cdf51b5aff..02051f2167 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-obj-id.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-obj-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-rest-obj-prop-id.js b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-obj-prop-id.js
index c1528e9fb5..c77bd06921 100644
--- a/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-obj-prop-id.js
+++ b/test/language/statements/generators/dstr-dflt-ary-ptrn-rest-obj-prop-id.js
@@ -5,7 +5,7 @@
 description: Rest element containing an object binding pattern (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-init-null.js b/test/language/statements/generators/dstr-dflt-obj-init-null.js
index f412768ba4..b369433adb 100644
--- a/test/language/statements/generators/dstr-dflt-obj-init-null.js
+++ b/test/language/statements/generators/dstr-dflt-obj-init-null.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (null) (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-init-undefined.js b/test/language/statements/generators/dstr-dflt-obj-init-undefined.js
index f6468ebeb6..6e49d286b7 100644
--- a/test/language/statements/generators/dstr-dflt-obj-init-undefined.js
+++ b/test/language/statements/generators/dstr-dflt-obj-init-undefined.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (undefined) (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-empty.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-empty.js
index 253010fdeb..e1f33c1fce 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-empty.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-empty.js
@@ -5,7 +5,7 @@
 description: No property access occurs for an "empty" object binding pattern (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-id-get-value-err.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-get-value-err.js
index 0d0e5ba2e9..2cd15c48b4 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-id-get-value-err.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-id-init-fn-name-arrow.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-fn-name-arrow.js
index fcfb26a19f..744fcd5e13 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-fn-name-arrow.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to arrow functions (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-id-init-fn-name-class.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-fn-name-class.js
index c5237dc1b9..8d8f9c5dbb 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-fn-name-class.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-id-init-fn-name-cover.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-fn-name-cover.js
index 5543d43b2c..c616a7e52a 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-fn-name-cover.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-id-init-fn-name-fn.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-fn-name-fn.js
index 324a5c2276..8ca16416ee 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-fn-name-fn.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
index 6d994dd2da..433b67aa6c 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding, default-parameters]
+features: [generators, destructuring-binding, default-parameters]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
@@ -50,6 +50,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-skipped.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-skipped.js
index 4096a4b59f..29fa54eabe 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-skipped.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-id-init-throws.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-throws.js
index d06548d200..680171bde8 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-throws.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-id-init-unresolvable.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-unresolvable.js
index dddb47c93f..f3750cfcec 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-unresolvable.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-id-trailing-comma.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-trailing-comma.js
index 7d4a83c1c6..7bdc614f37 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-id-trailing-comma.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-list-err.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-list-err.js
index 0981d78f75..7d2abc0f75 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-list-err.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-list-err.js
@@ -5,7 +5,7 @@
 description: Binding property list evaluation is interrupted by an abrupt completion (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-prop-ary-init.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-ary-init.js
index 0674cd5ed2..2a5732b301 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-ary-init.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-ary-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern using initializer (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-prop-ary-trailing-comma.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-ary-trailing-comma.js
index db8885f2cf..01dc6a277e 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-ary-trailing-comma.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-ary-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-prop-ary-value-null.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-ary-value-null.js
index a767e22aae..76f97590b1 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-ary-value-null.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-ary-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern taking the `null` value (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-prop-ary.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-ary.js
index 41971dd081..7c67bdb14e 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-ary.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-ary.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern not using initializer (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-prop-eval-err.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-eval-err.js
index 4d9e8f4a2d..2682ea190d 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-eval-err.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-eval-err.js
@@ -5,7 +5,7 @@
 description: Evaluation of property name returns an abrupt completion (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-prop-id-get-value-err.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-get-value-err.js
index 62b3f35e01..e2e607bb37 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-get-value-err.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-prop-id-init-skipped.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-init-skipped.js
index a468e20520..7fe7e614e2 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-init-skipped.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-prop-id-init-throws.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-init-throws.js
index 263fb6f1d4..7d33cc5cd0 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-init-throws.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-prop-id-init-unresolvable.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-init-unresolvable.js
index 45ba2c738d..5a102aa1ba 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-init-unresolvable.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-prop-id-init.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-init.js
index ff051f9789..500a9c96c4 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-init.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-init.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name, identifier, and initializer (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-prop-id-trailing-comma.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-trailing-comma.js
index 3884b210f8..94b5d53dfd 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-trailing-comma.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-prop-id.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id.js
index 91d177e31d..eff9e935d1 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-id.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name and identifier (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-prop-obj-init.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-obj-init.js
index a98ab8ea25..7b16f5b494 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-obj-init.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-obj-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern using initializer (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-prop-obj-value-null.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-obj-value-null.js
index 07270d3221..e9b681d6df 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-obj-value-null.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-obj-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-prop-obj-value-undef.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-obj-value-undef.js
index 29d8c6980a..436472dd99 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-obj-value-undef.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-obj-value-undef.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-prop-obj.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-obj.js
index 965520888f..ac10b9c10a 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-obj.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-prop-obj.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern not using initializer (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [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-obj-ptrn-rest-getter.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-getter.js
index ae7f7ee5fd..e979103de7 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-getter.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-getter.js
@@ -5,7 +5,7 @@
 description: Getter is called when obj is being deconstructed to a rest Object (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js
index e0ae3936c5..504d200fed 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-skip-non-enumerable.js
@@ -5,7 +5,7 @@
 description: Rest object doesn't contain non-enumerable properties (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-val-obj.js b/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-val-obj.js
index e4b97cf5d0..1db863f3c0 100644
--- a/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-val-obj.js
+++ b/test/language/statements/generators/dstr-dflt-obj-ptrn-rest-val-obj.js
@@ -5,7 +5,7 @@
 description: Rest object contains just unextracted data (generator function declaration (default parameter))
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [object-rest, destructuring-binding, default-parameters]
+features: [object-rest, generators, destructuring-binding, default-parameters]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/generators/dstr-obj-init-null.js b/test/language/statements/generators/dstr-obj-init-null.js
index cb6058be3d..c2fabe93db 100644
--- a/test/language/statements/generators/dstr-obj-init-null.js
+++ b/test/language/statements/generators/dstr-obj-init-null.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (null) (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-init-undefined.js b/test/language/statements/generators/dstr-obj-init-undefined.js
index ac88fd230f..aa648c56f2 100644
--- a/test/language/statements/generators/dstr-obj-init-undefined.js
+++ b/test/language/statements/generators/dstr-obj-init-undefined.js
@@ -5,7 +5,7 @@
 description: Value specifed for object binding pattern must be object coercible (undefined) (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-empty.js b/test/language/statements/generators/dstr-obj-ptrn-empty.js
index 7e46f03ff8..9c6d55389b 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-empty.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-empty.js
@@ -5,7 +5,7 @@
 description: No property access occurs for an "empty" object binding pattern (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-id-get-value-err.js b/test/language/statements/generators/dstr-obj-ptrn-id-get-value-err.js
index 97ea1c238d..eb88a68668 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-id-get-value-err.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-arrow.js b/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-arrow.js
index 79d916fe40..1524098bca 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-arrow.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-arrow.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to arrow functions (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-class.js b/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-class.js
index 22f38f316b..1f39e89f52 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-class.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-class.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" classes (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-cover.js b/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-cover.js
index d5ddaeb39f..e3c66fa8bf 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-cover.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-cover.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns `name` to "anonymous" functions "through" cover grammar (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-fn.js b/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-fn.js
index c926eb58ea..5ea058499f 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-fn.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-fn.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" functions (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-gen.js
index c310b09f6c..4e81317e04 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
@@ -50,6 +50,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/generators/dstr-obj-ptrn-id-init-skipped.js b/test/language/statements/generators/dstr-obj-ptrn-id-init-skipped.js
index bba7adad58..3b5cdfd15a 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-id-init-skipped.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-id-init-throws.js b/test/language/statements/generators/dstr-obj-ptrn-id-init-throws.js
index 01bbf913f0..22807e06f4 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-id-init-throws.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-id-init-unresolvable.js b/test/language/statements/generators/dstr-obj-ptrn-id-init-unresolvable.js
index 42ee0c1b23..8b896c3e04 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-id-init-unresolvable.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-id-trailing-comma.js b/test/language/statements/generators/dstr-obj-ptrn-id-trailing-comma.js
index 62e6ce7267..0a32cfbb2c 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-id-trailing-comma.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-list-err.js b/test/language/statements/generators/dstr-obj-ptrn-list-err.js
index 7f16a56fce..45a4fdced6 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-list-err.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-list-err.js
@@ -5,7 +5,7 @@
 description: Binding property list evaluation is interrupted by an abrupt completion (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-prop-ary-init.js b/test/language/statements/generators/dstr-obj-ptrn-prop-ary-init.js
index 228ec11c18..1c3d7adc47 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-prop-ary-init.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-prop-ary-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern using initializer (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-prop-ary-trailing-comma.js b/test/language/statements/generators/dstr-obj-ptrn-prop-ary-trailing-comma.js
index 641422256d..6636ab4937 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-prop-ary-trailing-comma.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-prop-ary-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-prop-ary-value-null.js b/test/language/statements/generators/dstr-obj-ptrn-prop-ary-value-null.js
index 8e5ac0f9b8..04c1832470 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-prop-ary-value-null.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-prop-ary-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern taking the `null` value (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-prop-ary.js b/test/language/statements/generators/dstr-obj-ptrn-prop-ary.js
index dd531adad1..15d198872b 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-prop-ary.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-prop-ary.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" array binding pattern not using initializer (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-prop-eval-err.js b/test/language/statements/generators/dstr-obj-ptrn-prop-eval-err.js
index a4a30ed6d1..6a47078eaf 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-prop-eval-err.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-prop-eval-err.js
@@ -5,7 +5,7 @@
 description: Evaluation of property name returns an abrupt completion (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-prop-id-get-value-err.js b/test/language/statements/generators/dstr-obj-ptrn-prop-id-get-value-err.js
index fe2f014ad7..63a5240d8a 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-prop-id-get-value-err.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-prop-id-get-value-err.js
@@ -5,7 +5,7 @@
 description: Error thrown when accessing the corresponding property of the value object (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-prop-id-init-skipped.js b/test/language/statements/generators/dstr-obj-ptrn-prop-id-init-skipped.js
index a20f25724c..b26ec647fc 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-prop-id-init-skipped.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-prop-id-init-skipped.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is not evaluated when value is not `undefined` (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-prop-id-init-throws.js b/test/language/statements/generators/dstr-obj-ptrn-prop-id-init-throws.js
index e7b9e0b85d..bc4b2f1eba 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-prop-id-init-throws.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-prop-id-init-throws.js
@@ -5,7 +5,7 @@
 description: Error thrown when evaluating the initializer (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-prop-id-init-unresolvable.js b/test/language/statements/generators/dstr-obj-ptrn-prop-id-init-unresolvable.js
index 429112664f..c2e81805e0 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-prop-id-init-unresolvable.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-prop-id-init-unresolvable.js
@@ -5,7 +5,7 @@
 description: Destructuring initializer is an unresolvable reference (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-prop-id-init.js b/test/language/statements/generators/dstr-obj-ptrn-prop-id-init.js
index 1964df1ab7..c07d13a7ef 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-prop-id-init.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-prop-id-init.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name, identifier, and initializer (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-prop-id-trailing-comma.js b/test/language/statements/generators/dstr-obj-ptrn-prop-id-trailing-comma.js
index cfa9d5c4fb..830f6a64cd 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-prop-id-trailing-comma.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-prop-id-trailing-comma.js
@@ -5,7 +5,7 @@
 description: Trailing comma is allowed following BindingPropertyList (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-prop-id.js b/test/language/statements/generators/dstr-obj-ptrn-prop-id.js
index 6563a4a9eb..2369a49e9c 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-prop-id.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-prop-id.js
@@ -5,7 +5,7 @@
 description: Binding as specified via property name and identifier (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-prop-obj-init.js b/test/language/statements/generators/dstr-obj-ptrn-prop-obj-init.js
index 9371faf798..0b423ccdfc 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-prop-obj-init.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-prop-obj-init.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern using initializer (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-prop-obj-value-null.js b/test/language/statements/generators/dstr-obj-ptrn-prop-obj-value-null.js
index 27a4dd0015..00b2b900eb 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-prop-obj-value-null.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-prop-obj-value-null.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-prop-obj-value-undef.js b/test/language/statements/generators/dstr-obj-ptrn-prop-obj-value-undef.js
index a37ebfc7b5..ccf14a6cc1 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-prop-obj-value-undef.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-prop-obj-value-undef.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern taking the `null` value (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-prop-obj.js b/test/language/statements/generators/dstr-obj-ptrn-prop-obj.js
index 904d0ae16f..8f38491bb7 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-prop-obj.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-prop-obj.js
@@ -5,7 +5,7 @@
 description: Object binding pattern with "nested" object binding pattern not using initializer (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
diff --git a/test/language/statements/generators/dstr-obj-ptrn-rest-getter.js b/test/language/statements/generators/dstr-obj-ptrn-rest-getter.js
index 1a7243af05..5e17d5e770 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-rest-getter.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-rest-getter.js
@@ -5,7 +5,7 @@
 description: Getter is called when obj is being deconstructed to a rest Object (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js b/test/language/statements/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js
index 04d37e1534..7f4e0d07f6 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-rest-skip-non-enumerable.js
@@ -5,7 +5,7 @@
 description: Rest object doesn't contain non-enumerable properties (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/generators/dstr-obj-ptrn-rest-val-obj.js b/test/language/statements/generators/dstr-obj-ptrn-rest-val-obj.js
index 372a6cd817..8f9a58b5bd 100644
--- a/test/language/statements/generators/dstr-obj-ptrn-rest-val-obj.js
+++ b/test/language/statements/generators/dstr-obj-ptrn-rest-val-obj.js
@@ -5,7 +5,7 @@
 description: Rest object contains just unextracted data (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [object-rest, destructuring-binding]
+features: [object-rest, generators, destructuring-binding]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/generators/has-instance.js b/test/language/statements/generators/has-instance.js
index 83b03f4888..a5996a9c99 100644
--- a/test/language/statements/generators/has-instance.js
+++ b/test/language/statements/generators/has-instance.js
@@ -5,6 +5,7 @@
 description: >
     A Generator object is an instance of a generator function.
 es6id: 25.3
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/language/statements/generators/invoke-as-constructor.js b/test/language/statements/generators/invoke-as-constructor.js
index 8252e70fbb..92b7b07100 100644
--- a/test/language/statements/generators/invoke-as-constructor.js
+++ b/test/language/statements/generators/invoke-as-constructor.js
@@ -5,6 +5,7 @@
 description: >
     Generator statements cannot be used as constructors.
 es6id: 14.4
+features: [generators]
 ---*/
 
 function* g(){}
diff --git a/test/language/statements/generators/length-dflt.js b/test/language/statements/generators/length-dflt.js
index 5fbf570467..747434017a 100644
--- a/test/language/statements/generators/length-dflt.js
+++ b/test/language/statements/generators/length-dflt.js
@@ -26,7 +26,7 @@ info: |
     2. If HasInitializer of FormalsList is true or HasInitializer of
     FormalParameter is true, return count.
     3. Return count+1.
-features: [default-parameters]
+features: [generators, default-parameters]
 includes: [propertyHelper.js]
 ---*/
 
diff --git a/test/language/statements/generators/length-property-descriptor.js b/test/language/statements/generators/length-property-descriptor.js
index cfd6ef940e..7cdf89106f 100644
--- a/test/language/statements/generators/length-property-descriptor.js
+++ b/test/language/statements/generators/length-property-descriptor.js
@@ -6,6 +6,7 @@ description: >
     Generator functions should define a `length` property.
 includes: [propertyHelper.js]
 es6id: 25.2.4
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/language/statements/generators/name.js b/test/language/statements/generators/name.js
index c6b931652f..6e77a03f1d 100644
--- a/test/language/statements/generators/name.js
+++ b/test/language/statements/generators/name.js
@@ -11,6 +11,7 @@ info: >
     [...]
     6. Perform SetFunctionName(F, name).
 includes: [propertyHelper.js]
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/language/statements/generators/no-yield.js b/test/language/statements/generators/no-yield.js
index 1c4366e982..715c2a198e 100644
--- a/test/language/statements/generators/no-yield.js
+++ b/test/language/statements/generators/no-yield.js
@@ -2,11 +2,12 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      Generators declared with GeneratorDeclaration syntax do not require a
-      `yield` expression.
-  es6id: 14.4
- ---*/
+description: >
+    Generators declared with GeneratorDeclaration syntax do not require a
+    `yield` expression.
+es6id: 14.4
+features: [generators]
+---*/
 
 function *foo(a) {}
 
diff --git a/test/language/statements/generators/param-dflt-yield.js b/test/language/statements/generators/param-dflt-yield.js
index 30caa04026..fea79cf064 100644
--- a/test/language/statements/generators/param-dflt-yield.js
+++ b/test/language/statements/generators/param-dflt-yield.js
@@ -13,7 +13,7 @@ info: |
   YieldExpression cannot be used within the FormalParameters of a generator
   function because any expressions that are part of FormalParameters are
   evaluated before the resulting generator object is in a resumable state.
-features: [default-parameters]
+features: [generators, default-parameters]
 negative:
   phase: early
   type: SyntaxError
diff --git a/test/language/statements/generators/params-dflt-args-unmapped.js b/test/language/statements/generators/params-dflt-args-unmapped.js
index 01c611de8a..9729286862 100644
--- a/test/language/statements/generators/params-dflt-args-unmapped.js
+++ b/test/language/statements/generators/params-dflt-args-unmapped.js
@@ -4,7 +4,7 @@
 description: Referencing the arguments object from a default parameter (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [default-parameters]
+features: [generators, default-parameters]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
 
diff --git a/test/language/statements/generators/params-dflt-ref-arguments.js b/test/language/statements/generators/params-dflt-ref-arguments.js
index e1c6b4873a..0d4e360aa8 100644
--- a/test/language/statements/generators/params-dflt-ref-arguments.js
+++ b/test/language/statements/generators/params-dflt-ref-arguments.js
@@ -4,7 +4,7 @@
 description: Referencing the arguments object from a default parameter (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
 es6id: 14.4.12
-features: [default-parameters]
+features: [generators, default-parameters]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
 
diff --git a/test/language/statements/generators/params-trailing-comma-multiple.js b/test/language/statements/generators/params-trailing-comma-multiple.js
index 368f87868d..d6eff04432 100644
--- a/test/language/statements/generators/params-trailing-comma-multiple.js
+++ b/test/language/statements/generators/params-trailing-comma-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using multiple parameters (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
+features: [generators]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
@@ -36,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/statements/generators/params-trailing-comma-single.js b/test/language/statements/generators/params-trailing-comma-single.js
index 0627fab764..fb3ae2f5de 100644
--- a/test/language/statements/generators/params-trailing-comma-single.js
+++ b/test/language/statements/generators/params-trailing-comma-single.js
@@ -4,6 +4,7 @@
 /*---
 description: A trailing comma should not increase the respective length, using a single parameter (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
+features: [generators]
 flags: [generated]
 info: |
     GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody }
@@ -36,6 +37,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/statements/generators/prototype-own-properties.js b/test/language/statements/generators/prototype-own-properties.js
index 736e412efd..b4be695551 100644
--- a/test/language/statements/generators/prototype-own-properties.js
+++ b/test/language/statements/generators/prototype-own-properties.js
@@ -5,6 +5,7 @@ es6id: 25.2.4.2
 description: >
     The `prototype` property of GeneratorFunction instances are created as
     plain objects with no "own" properties.
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/language/statements/generators/prototype-property-descriptor.js b/test/language/statements/generators/prototype-property-descriptor.js
index 1ab7fbc3ba..a69b8cef87 100644
--- a/test/language/statements/generators/prototype-property-descriptor.js
+++ b/test/language/statements/generators/prototype-property-descriptor.js
@@ -6,6 +6,7 @@ description: >
     Generator objects should define a `prototype` property.
 includes: [propertyHelper.js]
 es6id: 25.2.4
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/language/statements/generators/prototype-relation-to-function.js b/test/language/statements/generators/prototype-relation-to-function.js
index 8966bbae76..f9f6edfb23 100644
--- a/test/language/statements/generators/prototype-relation-to-function.js
+++ b/test/language/statements/generators/prototype-relation-to-function.js
@@ -6,6 +6,7 @@ description: >
     The value of the [[Prototype]] internal slot of the GeneratorFunction
     prototype object is the FunctionPrototype intrinsic object.
 es6id: 25.2.2.2
+features: [generators]
 ---*/
 
 function f() {}
diff --git a/test/language/statements/generators/prototype-typeof.js b/test/language/statements/generators/prototype-typeof.js
index 1f2fa3de20..ce8a47332f 100644
--- a/test/language/statements/generators/prototype-typeof.js
+++ b/test/language/statements/generators/prototype-typeof.js
@@ -6,6 +6,7 @@ description: >
     Whenever a GeneratorFunction instance is created another ordinary object is
     also created and is the initial value of the generator function’s prototype
     property.
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/language/statements/generators/prototype-uniqueness.js b/test/language/statements/generators/prototype-uniqueness.js
index 91b00a3ca1..3eba24f3b3 100644
--- a/test/language/statements/generators/prototype-uniqueness.js
+++ b/test/language/statements/generators/prototype-uniqueness.js
@@ -5,6 +5,7 @@
 description: >
     GeneratorFunction instances are created with a unique prototype object.
 es6id: 25.2.1
+features: [generators]
 ---*/
 
 function* g1() {}
diff --git a/test/language/statements/generators/prototype-value.js b/test/language/statements/generators/prototype-value.js
index feadf6d4e0..bf949bd04f 100644
--- a/test/language/statements/generators/prototype-value.js
+++ b/test/language/statements/generators/prototype-value.js
@@ -7,6 +7,7 @@ description: >
     value of the prototype property of the Generator function that created the
     instance.
 es6id: 25.3
+features: [generators]
 ---*/
 
 function* g() {}
diff --git a/test/language/statements/generators/rest-params-trailing-comma-early-error.js b/test/language/statements/generators/rest-params-trailing-comma-early-error.js
index 630d78ad04..13410afbf7 100644
--- a/test/language/statements/generators/rest-params-trailing-comma-early-error.js
+++ b/test/language/statements/generators/rest-params-trailing-comma-early-error.js
@@ -4,6 +4,7 @@
 /*---
 description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (generator function declaration)
 esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -39,6 +40,7 @@ info: |
            iteratorRecord and env as arguments.
     [...]
 
+
     Trailing comma in the parameters list
 
     14.1 Function Definitions
diff --git a/test/language/statements/generators/return.js b/test/language/statements/generators/return.js
index de7e4b50fb..18ef8afd97 100644
--- a/test/language/statements/generators/return.js
+++ b/test/language/statements/generators/return.js
@@ -2,10 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `return` is a valid statement within generator function bodies.
-  es6id: 14.4
- ---*/
+description: >
+  return is a valid statement within generator function bodies.
+es6id: 14.4
+features: [generators]
+---*/
 
 function* g1() { return; }
 function* g2() { return 1; }
diff --git a/test/language/statements/generators/scope-body-lex-distinct.js b/test/language/statements/generators/scope-body-lex-distinct.js
index 9506c1b85d..f9297d2539 100644
--- a/test/language/statements/generators/scope-body-lex-distinct.js
+++ b/test/language/statements/generators/scope-body-lex-distinct.js
@@ -40,7 +40,7 @@ info: |
                     like-named lexical declaration.
           iii. Let thisLex be thisLex's outer environment reference.
 flags: [noStrict]
-features: [let]
+features: [generators, let]
 ---*/
 
 function* g() {
diff --git a/test/language/statements/generators/scope-param-elem-var-close.js b/test/language/statements/generators/scope-param-elem-var-close.js
index b3185aceff..f3e509a178 100644
--- a/test/language/statements/generators/scope-param-elem-var-close.js
+++ b/test/language/statements/generators/scope-param-elem-var-close.js
@@ -15,6 +15,7 @@ info: |
     11. Set the LexicalEnvironment of currentContext to originalEnv.
     [...]
 flags: [noStrict]
+features: [generators]
 ---*/
 
 var x = 'outside';
diff --git a/test/language/statements/generators/scope-param-elem-var-open.js b/test/language/statements/generators/scope-param-elem-var-open.js
index 461be1c9ad..65eeac82a8 100644
--- a/test/language/statements/generators/scope-param-elem-var-open.js
+++ b/test/language/statements/generators/scope-param-elem-var-open.js
@@ -16,6 +16,7 @@ info: |
     11. Set the LexicalEnvironment of currentContext to originalEnv.
     [...]
 flags: [noStrict]
+features: [generators]
 ---*/
 
 var x = 'outside';
diff --git a/test/language/statements/generators/scope-param-rest-elem-var-close.js b/test/language/statements/generators/scope-param-rest-elem-var-close.js
index ee534ec079..1e9dc5de5f 100644
--- a/test/language/statements/generators/scope-param-rest-elem-var-close.js
+++ b/test/language/statements/generators/scope-param-rest-elem-var-close.js
@@ -21,6 +21,7 @@ info: |
     11. Set the LexicalEnvironment of currentContext to originalEnv.
     [...]
 flags: [noStrict]
+features: [generators]
 ---*/
 
 var x = 'outside';
diff --git a/test/language/statements/generators/scope-param-rest-elem-var-open.js b/test/language/statements/generators/scope-param-rest-elem-var-open.js
index 73d6b348d4..5831f32ddc 100644
--- a/test/language/statements/generators/scope-param-rest-elem-var-open.js
+++ b/test/language/statements/generators/scope-param-rest-elem-var-open.js
@@ -21,6 +21,7 @@ info: |
     11. Set the LexicalEnvironment of currentContext to originalEnv.
     [...]
 flags: [noStrict]
+features: [generators]
 ---*/
 
 var x = 'outside';
diff --git a/test/language/statements/generators/scope-paramsbody-var-close.js b/test/language/statements/generators/scope-paramsbody-var-close.js
index 22fd3651e8..76824560c6 100644
--- a/test/language/statements/generators/scope-paramsbody-var-close.js
+++ b/test/language/statements/generators/scope-paramsbody-var-close.js
@@ -17,6 +17,7 @@ info: |
         d. Set the VariableEnvironment of calleeContext to varEnv.
         e. Let instantiatedVarNames be a new empty List.
         [...]
+features: [generators]
 ---*/
 
 var probe;
diff --git a/test/language/statements/generators/scope-paramsbody-var-open.js b/test/language/statements/generators/scope-paramsbody-var-open.js
index e84dcca348..00f0813254 100644
--- a/test/language/statements/generators/scope-paramsbody-var-open.js
+++ b/test/language/statements/generators/scope-paramsbody-var-open.js
@@ -18,6 +18,7 @@ info: |
         d. Set the VariableEnvironment of calleeContext to varEnv.
         e. Let instantiatedVarNames be a new empty List.
         [...]
+features: [generators]
 ---*/
 
 var x = 'outside';
diff --git a/test/language/statements/generators/use-strict-with-non-simple-param.js b/test/language/statements/generators/use-strict-with-non-simple-param.js
index c4dace8d20..5406d325c3 100644
--- a/test/language/statements/generators/use-strict-with-non-simple-param.js
+++ b/test/language/statements/generators/use-strict-with-non-simple-param.js
@@ -12,6 +12,7 @@ info: >
 negative:
   phase: early
   type: SyntaxError
+features: [generators]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/test/language/statements/generators/yield-as-binding-identifier-escaped.js b/test/language/statements/generators/yield-as-binding-identifier-escaped.js
index 6e1fe4fce5..b0657ec032 100644
--- a/test/language/statements/generators/yield-as-binding-identifier-escaped.js
+++ b/test/language/statements/generators/yield-as-binding-identifier-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a binding identifier. (Generator Function declaration)
 esid: prod-GeneratorDeclaration
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorDeclaration :
       function * BindingIdentifier ( FormalParameters ) { GeneratorBody }
 
+
     BindingIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/generators/yield-as-binding-identifier.js b/test/language/statements/generators/yield-as-binding-identifier.js
index 7202826b2c..c5497bfe05 100644
--- a/test/language/statements/generators/yield-as-binding-identifier.js
+++ b/test/language/statements/generators/yield-as-binding-identifier.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a binding identifier. (Generator Function declaration)
 esid: prod-GeneratorDeclaration
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorDeclaration :
       function * BindingIdentifier ( FormalParameters ) { GeneratorBody }
 
+
     BindingIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/generators/yield-as-function-expression-binding-identifier.js b/test/language/statements/generators/yield-as-function-expression-binding-identifier.js
index 56c5d072a9..d3333d1482 100644
--- a/test/language/statements/generators/yield-as-function-expression-binding-identifier.js
+++ b/test/language/statements/generators/yield-as-function-expression-binding-identifier.js
@@ -2,12 +2,13 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` may be used as the binding identifier of a function expression
-      within generator bodies.
-  es6id: 14.1
-  flags: [noStrict]
- ---*/
+description: >
+    `yield` may be used as the binding identifier of a function expression
+    within generator bodies.
+es6id: 14.1
+flags: [noStrict]
+features: [generators]
+---*/
 
 var result;
 function* g() {
diff --git a/test/language/statements/generators/yield-as-generator-declaration-binding-identifier.js b/test/language/statements/generators/yield-as-generator-declaration-binding-identifier.js
index 89afbf4ef4..14bf071fef 100644
--- a/test/language/statements/generators/yield-as-generator-declaration-binding-identifier.js
+++ b/test/language/statements/generators/yield-as-generator-declaration-binding-identifier.js
@@ -2,12 +2,13 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` is a valid BindingIdentifier for GeneratorDeclarations outside of
-      strict mode.
-  es6id: 12.1.1
-  flags: [noStrict]
- ---*/
+description: >
+    `yield` is a valid BindingIdentifier for GeneratorDeclarations outside of
+    strict mode.
+es6id: 12.1.1
+flags: [noStrict]
+features: [generators]
+---*/
 
 var iter, result;
 function* yield() { (yield 3) + (yield 4); }
diff --git a/test/language/statements/generators/yield-as-identifier-in-nested-function.js b/test/language/statements/generators/yield-as-identifier-in-nested-function.js
index 326554dba3..ff52e110f4 100644
--- a/test/language/statements/generators/yield-as-identifier-in-nested-function.js
+++ b/test/language/statements/generators/yield-as-identifier-in-nested-function.js
@@ -2,12 +2,13 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` is not a reserved keyword within normal function bodies declared
-      within generator function bodies.
-  es6id: 12.1.1
-  flags: [noStrict]
- ---*/
+description: >
+    `yield` is not a reserved keyword within normal function bodies declared
+    within generator function bodies.
+es6id: 12.1.1
+flags: [noStrict]
+features: [generators]
+---*/
 
 var result;
 function* g() {
diff --git a/test/language/statements/generators/yield-as-identifier-reference-escaped.js b/test/language/statements/generators/yield-as-identifier-reference-escaped.js
index 9400f91d4a..516d66a678 100644
--- a/test/language/statements/generators/yield-as-identifier-reference-escaped.js
+++ b/test/language/statements/generators/yield-as-identifier-reference-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as an identifier reference. (Generator Function declaration)
 esid: prod-GeneratorDeclaration
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorDeclaration :
       function * BindingIdentifier ( FormalParameters ) { GeneratorBody }
 
+
     IdentifierReference : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/generators/yield-as-identifier-reference.js b/test/language/statements/generators/yield-as-identifier-reference.js
index fbbef224f6..7575e4f9ee 100644
--- a/test/language/statements/generators/yield-as-identifier-reference.js
+++ b/test/language/statements/generators/yield-as-identifier-reference.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as an identifier reference. (Generator Function declaration)
 esid: prod-GeneratorDeclaration
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorDeclaration :
       function * BindingIdentifier ( FormalParameters ) { GeneratorBody }
 
+
     IdentifierReference : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/generators/yield-as-label-identifier-escaped.js b/test/language/statements/generators/yield-as-label-identifier-escaped.js
index 34650c88cd..61ac567d12 100644
--- a/test/language/statements/generators/yield-as-label-identifier-escaped.js
+++ b/test/language/statements/generators/yield-as-label-identifier-escaped.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a label identifier. (Generator Function declaration)
 esid: prod-GeneratorDeclaration
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorDeclaration :
       function * BindingIdentifier ( FormalParameters ) { GeneratorBody }
 
+
     LabelIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/generators/yield-as-label-identifier.js b/test/language/statements/generators/yield-as-label-identifier.js
index 01f9200b8e..41fc25259a 100644
--- a/test/language/statements/generators/yield-as-label-identifier.js
+++ b/test/language/statements/generators/yield-as-label-identifier.js
@@ -4,6 +4,7 @@
 /*---
 description: yield is a reserved keyword within generator function bodies and may not be used as a label identifier. (Generator Function declaration)
 esid: prod-GeneratorDeclaration
+features: [generators]
 flags: [generated]
 negative:
   phase: early
@@ -14,6 +15,7 @@ info: |
     GeneratorDeclaration :
       function * BindingIdentifier ( FormalParameters ) { GeneratorBody }
 
+
     LabelIdentifier : Identifier
 
     It is a Syntax Error if this production has a [Yield] parameter and
diff --git a/test/language/statements/generators/yield-as-literal-property-name.js b/test/language/statements/generators/yield-as-literal-property-name.js
index e6faf1f109..2a7e63cbba 100644
--- a/test/language/statements/generators/yield-as-literal-property-name.js
+++ b/test/language/statements/generators/yield-as-literal-property-name.js
@@ -2,11 +2,12 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` may be used as a literal property name in an object literal
-      within generator function bodies.
-  es6id: 12.1.1
- ---*/
+description: >
+    `yield` may be used as a literal property name in an object literal
+    within generator function bodies.
+es6id: 12.1.1
+features: [generators]
+---*/
 
 var result;
 function* g() {
diff --git a/test/language/statements/generators/yield-as-logical-or-expression.js b/test/language/statements/generators/yield-as-logical-or-expression.js
index 21d336c504..0c0f01ec38 100644
--- a/test/language/statements/generators/yield-as-logical-or-expression.js
+++ b/test/language/statements/generators/yield-as-logical-or-expression.js
@@ -2,13 +2,14 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` expressions are not LogicalOrExpressions.
-  es6id: 12.1.1
-  negative:
-    phase: early
-    type: SyntaxError
- ---*/
+description: >
+    `yield` expressions are not LogicalOrExpressions.
+es6id: 12.1.1
+negative:
+  phase: early
+  type: SyntaxError
+features: [generators]
+---*/
 
 throw "Test262: This statement should not be evaluated.";
 
diff --git a/test/language/statements/generators/yield-as-parameter.js b/test/language/statements/generators/yield-as-parameter.js
index b513601ad8..09e8f17bb8 100644
--- a/test/language/statements/generators/yield-as-parameter.js
+++ b/test/language/statements/generators/yield-as-parameter.js
@@ -2,14 +2,15 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` is a reserved keyword within generator function bodies and may
-      not be used as the binding identifier of a parameter.
-  es6id: 12.1.1
-  negative:
-    phase: early
-    type: SyntaxError
- ---*/
+description: >
+    `yield` is a reserved keyword within generator function bodies and may
+    not be used as the binding identifier of a parameter.
+es6id: 12.1.1
+negative:
+  phase: early
+  type: SyntaxError
+features: [generators]
+---*/
 
 throw "Test262: This statement should not be evaluated.";
 
diff --git a/test/language/statements/generators/yield-as-property-name.js b/test/language/statements/generators/yield-as-property-name.js
index be770038d1..bcd2e2a346 100644
--- a/test/language/statements/generators/yield-as-property-name.js
+++ b/test/language/statements/generators/yield-as-property-name.js
@@ -2,11 +2,12 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` may be used as a literal property name in an object literal
-      within generator function bodies.
-  es6id: 12.1.1
- ---*/
+description: >
+    `yield` may be used as a literal property name in an object literal
+    within generator function bodies.
+es6id: 12.1.1
+features: [generators]
+---*/
 
 var result;
 function* g() {
diff --git a/test/language/statements/generators/yield-as-statement.js b/test/language/statements/generators/yield-as-statement.js
index 1c9aa142c3..99bd070d45 100644
--- a/test/language/statements/generators/yield-as-statement.js
+++ b/test/language/statements/generators/yield-as-statement.js
@@ -2,10 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` is a valid statement within generator function bodies.
-  es6id: 14.4
- ---*/
+description: >
+    `yield` is a valid statement within generator function bodies.
+es6id: 14.4
+features: [generators]
+---*/
 
 var iter, result;
 function* g1() { yield; }
diff --git a/test/language/statements/generators/yield-as-yield-operand.js b/test/language/statements/generators/yield-as-yield-operand.js
index 6737b1dae5..80f37b4b0f 100644
--- a/test/language/statements/generators/yield-as-yield-operand.js
+++ b/test/language/statements/generators/yield-as-yield-operand.js
@@ -2,11 +2,12 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` expressions may be used as the right-hand-side of other `yield`
-      expressions.
-  es6id: 14.4
- ---*/
+description: >
+    `yield` expressions may be used as the right-hand-side of other `yield`
+    expressions.
+es6id: 14.4
+features: [generators]
+---*/
 
 var iter, result;
 function* g() {
diff --git a/test/language/statements/generators/yield-identifier-non-strict.js b/test/language/statements/generators/yield-identifier-non-strict.js
index afc45810b9..d29d35df04 100644
--- a/test/language/statements/generators/yield-identifier-non-strict.js
+++ b/test/language/statements/generators/yield-identifier-non-strict.js
@@ -4,12 +4,14 @@
 /*---
 description: Use of yield as a valid identifier in a function body inside a generator body in non strict mode (Generator function declaration - valid for non-strict only cases)
 esid: prod-GeneratorDeclaration
+features: [generators]
 flags: [generated, noStrict]
 info: |
     14.4 Generator Function Definitions
 
     GeneratorDeclaration[Yield, Await, Default]:
       function * BindingIdentifier[?Yield, ?Await] ( FormalParameters[+Yield, ~Await] ) { GeneratorBody }
+
 ---*/
 
 var callCount = 0;
diff --git a/test/language/statements/generators/yield-identifier-spread-non-strict.js b/test/language/statements/generators/yield-identifier-spread-non-strict.js
index 6c6a8992b0..4c7858bdec 100644
--- a/test/language/statements/generators/yield-identifier-spread-non-strict.js
+++ b/test/language/statements/generators/yield-identifier-spread-non-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: Mixed use of object spread and yield as a valid identifier in a function body inside a generator body in non strict mode (Generator function declaration - valid for non-strict only cases)
 esid: prod-GeneratorDeclaration
-features: [Symbol, object-spread]
+features: [Symbol, object-spread, generators]
 flags: [generated, noStrict]
 info: |
     14.4 Generator Function Definitions
@@ -12,6 +12,7 @@ info: |
     GeneratorDeclaration[Yield, Await, Default]:
       function * BindingIdentifier[?Yield, ?Await] ( FormalParameters[+Yield, ~Await] ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/statements/generators/yield-identifier-spread-strict.js b/test/language/statements/generators/yield-identifier-spread-strict.js
index c2dff731c4..d6e4913853 100644
--- a/test/language/statements/generators/yield-identifier-spread-strict.js
+++ b/test/language/statements/generators/yield-identifier-spread-strict.js
@@ -4,7 +4,7 @@
 /*---
 description: It's an early error if the AssignmentExpression is a function body with yield as an identifier in strict mode. (Generator Function declaration)
 esid: prod-GeneratorDeclaration
-features: [object-spread]
+features: [object-spread, generators]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -15,6 +15,7 @@ info: |
     GeneratorDeclaration :
       function * BindingIdentifier ( FormalParameters ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/statements/generators/yield-identifier-strict.js b/test/language/statements/generators/yield-identifier-strict.js
index e098dfccb6..dc3d61b414 100644
--- a/test/language/statements/generators/yield-identifier-strict.js
+++ b/test/language/statements/generators/yield-identifier-strict.js
@@ -4,6 +4,7 @@
 /*---
 description: It's an early error if the generator body has another function body with yield as an identifier in strict mode. (Generator Function declaration)
 esid: prod-GeneratorDeclaration
+features: [generators]
 flags: [generated, onlyStrict]
 negative:
   phase: early
@@ -13,6 +14,7 @@ info: |
 
     GeneratorDeclaration :
       function * BindingIdentifier ( FormalParameters ) { GeneratorBody }
+
 ---*/
 throw "Test262: This statement should not be evaluated.";
 
diff --git a/test/language/statements/generators/yield-newline.js b/test/language/statements/generators/yield-newline.js
index 349019dbef..d1fcda3801 100644
--- a/test/language/statements/generators/yield-newline.js
+++ b/test/language/statements/generators/yield-newline.js
@@ -2,10 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      Newlines terminate `yield` expressions.
-  es6id: 14.4
- ---*/
+description: >
+    Newlines terminate `yield` expressions.
+es6id: 14.4
+features: [generators]
+---*/
 
 var iter, result;
 function* g() {
diff --git a/test/language/statements/generators/yield-spread-arr-multiple.js b/test/language/statements/generators/yield-spread-arr-multiple.js
index 1fdf352d0b..da28d3876c 100644
--- a/test/language/statements/generators/yield-spread-arr-multiple.js
+++ b/test/language/statements/generators/yield-spread-arr-multiple.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Generator Function declaration)
 esid: prod-GeneratorDeclaration
+features: [generators]
 flags: [generated]
 includes: [compareArray.js]
 info: |
@@ -12,6 +13,7 @@ info: |
     GeneratorDeclaration :
       function * BindingIdentifier ( FormalParameters ) { GeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/statements/generators/yield-spread-arr-single.js b/test/language/statements/generators/yield-spread-arr-single.js
index 1ef357eec9..d180a67dcc 100644
--- a/test/language/statements/generators/yield-spread-arr-single.js
+++ b/test/language/statements/generators/yield-spread-arr-single.js
@@ -4,6 +4,7 @@
 /*---
 description: Use yield value in a array spread position (Generator Function declaration)
 esid: prod-GeneratorDeclaration
+features: [generators]
 flags: [generated]
 info: |
     14.4 Generator Function Definitions
@@ -11,6 +12,7 @@ info: |
     GeneratorDeclaration :
       function * BindingIdentifier ( FormalParameters ) { GeneratorBody }
 
+
     Array Initializer
 
     SpreadElement[Yield, Await]:
diff --git a/test/language/statements/generators/yield-spread-obj.js b/test/language/statements/generators/yield-spread-obj.js
index d5f2206179..4750b55dec 100644
--- a/test/language/statements/generators/yield-spread-obj.js
+++ b/test/language/statements/generators/yield-spread-obj.js
@@ -4,7 +4,7 @@
 /*---
 description: Use yield value in a object spread position (Generator Function declaration)
 esid: prod-GeneratorDeclaration
-features: [object-spread]
+features: [object-spread, generators]
 flags: [generated]
 includes: [compareArray.js]
 info: |
@@ -13,6 +13,7 @@ info: |
     GeneratorDeclaration :
       function * BindingIdentifier ( FormalParameters ) { GeneratorBody }
 
+
     Spread Properties
 
     PropertyDefinition[Yield]:
diff --git a/test/language/statements/generators/yield-star-after-newline.js b/test/language/statements/generators/yield-star-after-newline.js
index f7780188b5..120f9ab677 100644
--- a/test/language/statements/generators/yield-star-after-newline.js
+++ b/test/language/statements/generators/yield-star-after-newline.js
@@ -2,13 +2,14 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      A newline may not precede the `*` token in a `yield` expression.
-  es6id: 14.4
-  negative:
-    phase: early
-    type: SyntaxError
- ---*/
+description: >
+    A newline may not precede the `*` token in a `yield` expression.
+es6id: 14.4
+negative:
+  phase: early
+  type: SyntaxError
+features: [generators]
+---*/
 
 throw "Test262: This statement should not be evaluated.";
 
diff --git a/test/language/statements/generators/yield-star-before-newline.js b/test/language/statements/generators/yield-star-before-newline.js
index 13f39ed0ae..c0fc20bb09 100644
--- a/test/language/statements/generators/yield-star-before-newline.js
+++ b/test/language/statements/generators/yield-star-before-newline.js
@@ -2,10 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      The right-hand side of a `yield *` expression may appear on a new line.
-  es6id: 14.4
- ---*/
+description: >
+    The right-hand side of a `yield *` expression may appear on a new line.
+es6id: 14.4
+features: [generators]
+---*/
 
 var result;
 function* g() {
diff --git a/test/language/statements/generators/yield-weak-binding.js b/test/language/statements/generators/yield-weak-binding.js
index fc49d8b9b2..f7a9dcfd0b 100644
--- a/test/language/statements/generators/yield-weak-binding.js
+++ b/test/language/statements/generators/yield-weak-binding.js
@@ -2,13 +2,14 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-  description: >
-      `yield` expressions bind weakly
-  es6id: 14.4
-  negative:
-    phase: early
-    type: SyntaxError
- ---*/
+description: >
+    `yield` expressions bind weakly
+es6id: 14.4
+negative:
+  phase: early
+  type: SyntaxError
+features: [generators]
+---*/
 
 throw "Test262: This statement should not be evaluated.";
 
diff --git a/test/language/statements/let/dstr-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/let/dstr-ary-ptrn-elem-ary-empty-init.js
index 2d792f0aa8..2a948788eb 100644
--- a/test/language/statements/let/dstr-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/let/dstr-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (`let` statement)
 esid: sec-let-and-const-declarations-runtime-semantics-evaluation
 es6id: 13.3.1.4
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     LexicalBinding : BindingPattern Initializer
@@ -28,6 +28,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/let/dstr-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/let/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
index 666ba776d5..fbae953cbc 100644
--- a/test/language/statements/let/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/let/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (`let` statement)
 esid: sec-let-and-const-declarations-runtime-semantics-evaluation
 es6id: 13.3.1.4
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     LexicalBinding : BindingPattern Initializer
@@ -30,6 +30,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 let [gen = function* () {}, xGen = function* x() {}] = [];
diff --git a/test/language/statements/let/dstr-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/let/dstr-obj-ptrn-id-init-fn-name-gen.js
index 247697f983..65810d3899 100644
--- a/test/language/statements/let/dstr-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/let/dstr-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (`let` statement)
 esid: sec-let-and-const-declarations-runtime-semantics-evaluation
 es6id: 13.3.1.4
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     LexicalBinding : BindingPattern Initializer
@@ -29,6 +29,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 let { gen = function* () {}, xGen = function* x() {} } = {};
diff --git a/test/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-generator-declaration.js b/test/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-generator-declaration.js
index 0cd8d287b4..7c9464de71 100644
--- a/test/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-generator-declaration.js
+++ b/test/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-generator-declaration.js
@@ -4,7 +4,7 @@
 /*---
 description: redeclaration with GeneratorDeclaration (AsyncFunctionDeclaration in SwitchStatement)
 esid: sec-switch-statement-static-semantics-early-errors
-features: [async-functions]
+features: [generators, async-functions]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-generator-declaration.js b/test/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-generator-declaration.js
index 4071acb9ed..a339b25c80 100644
--- a/test/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-generator-declaration.js
+++ b/test/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-generator-declaration.js
@@ -4,7 +4,7 @@
 /*---
 description: redeclaration with GeneratorDeclaration (AsyncGeneratorDeclaration in SwitchStatement)
 esid: sec-switch-statement-static-semantics-early-errors
-features: [async-iteration]
+features: [generators, async-iteration]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-generator-declaration.js b/test/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-generator-declaration.js
index 3f0b8e2d99..c15c061efe 100644
--- a/test/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-generator-declaration.js
+++ b/test/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-generator-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with GeneratorDeclaration (ClassDeclaration in SwitchStatement)
 esid: sec-switch-statement-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-generator-declaration.js b/test/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-generator-declaration.js
index 4f5920307c..f2835bf508 100644
--- a/test/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-generator-declaration.js
+++ b/test/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-generator-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with GeneratorDeclaration (LexicalDeclaration (const) in SwitchStatement)
 esid: sec-switch-statement-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-generator-declaration.js b/test/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-generator-declaration.js
index 08c8a1afdd..12dfdea528 100644
--- a/test/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-generator-declaration.js
+++ b/test/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-generator-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with GeneratorDeclaration (FunctionDeclaration in SwitchStatement)
 esid: sec-switch-statement-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-function-declaration.js b/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-function-declaration.js
index 50377e30fc..850f2a8553 100644
--- a/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-function-declaration.js
+++ b/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-function-declaration.js
@@ -4,7 +4,7 @@
 /*---
 description: redeclaration with AsyncFunctionDeclaration (GeneratorDeclaration in SwitchStatement)
 esid: sec-switch-statement-static-semantics-early-errors
-features: [async-functions]
+features: [async-functions, generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js b/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js
index 1b4aa7ce71..b28c6c0c2a 100644
--- a/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js
+++ b/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js
@@ -4,7 +4,7 @@
 /*---
 description: redeclaration with AsyncGeneratorDeclaration (GeneratorDeclaration in SwitchStatement)
 esid: sec-switch-statement-static-semantics-early-errors
-features: [async-iteration]
+features: [async-iteration, generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-class-declaration.js b/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-class-declaration.js
index 749df1c9ef..f718dd745c 100644
--- a/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-class-declaration.js
+++ b/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-class-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with ClassDeclaration (GeneratorDeclaration in SwitchStatement)
 esid: sec-switch-statement-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-const-declaration.js b/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-const-declaration.js
index 06108ea3e6..d5c9971018 100644
--- a/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-const-declaration.js
+++ b/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-const-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with const-LexicalDeclaration (GeneratorDeclaration in SwitchStatement)
 esid: sec-switch-statement-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-function-declaration.js b/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-function-declaration.js
index b75d88677d..c6c8ed6195 100644
--- a/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-function-declaration.js
+++ b/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-function-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with FunctionDeclaration (GeneratorDeclaration in SwitchStatement)
 esid: sec-switch-statement-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-generator-declaration.js b/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-generator-declaration.js
index a628be72ce..db967dd68d 100644
--- a/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-generator-declaration.js
+++ b/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-generator-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with GeneratorDeclaration (GeneratorDeclaration in SwitchStatement)
 esid: sec-switch-statement-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-let-declaration.js b/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-let-declaration.js
index 0eff541dcb..144f47a8da 100644
--- a/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-let-declaration.js
+++ b/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-let-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with let-LexicalDeclaration (GeneratorDeclaration in SwitchStatement)
 esid: sec-switch-statement-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-var-declaration.js b/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-var-declaration.js
index c8f972bc48..304977aa5c 100644
--- a/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-var-declaration.js
+++ b/test/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-var-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with VariableDeclaration (GeneratorDeclaration in SwitchStatement)
 esid: sec-switch-statement-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-generator-declaration.js b/test/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-generator-declaration.js
index 3867d5e1f6..42f07c4577 100644
--- a/test/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-generator-declaration.js
+++ b/test/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-generator-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with GeneratorDeclaration (LexicalDeclaration (let) in SwitchStatement)
 esid: sec-switch-statement-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-generator-declaration.js b/test/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-generator-declaration.js
index 2b2b0d22ac..c7c35e1f77 100644
--- a/test/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-generator-declaration.js
+++ b/test/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-generator-declaration.js
@@ -4,6 +4,7 @@
 /*---
 description: redeclaration with GeneratorDeclaration (VariableDeclaration in SwitchStatement)
 esid: sec-switch-statement-static-semantics-early-errors
+features: [generators]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/try/dstr-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/try/dstr-ary-ptrn-elem-ary-empty-init.js
index 26591d0715..efafe7761a 100644
--- a/test/language/statements/try/dstr-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/try/dstr-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (try statement)
 esid: sec-runtime-semantics-catchclauseevaluation
 es6id: 13.15.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     Catch : catch ( CatchParameter ) Block
@@ -26,6 +26,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/try/dstr-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/try/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
index 9551cd9cae..7c09fd2a10 100644
--- a/test/language/statements/try/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/try/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (try statement)
 esid: sec-runtime-semantics-catchclauseevaluation
 es6id: 13.15.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     Catch : catch ( CatchParameter ) Block
@@ -28,6 +28,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var ranCatch = false;
diff --git a/test/language/statements/try/dstr-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/try/dstr-obj-ptrn-id-init-fn-name-gen.js
index 248baabafa..a2f5a2464f 100644
--- a/test/language/statements/try/dstr-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/try/dstr-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (try statement)
 esid: sec-runtime-semantics-catchclauseevaluation
 es6id: 13.15.7
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     Catch : catch ( CatchParameter ) Block
@@ -27,6 +27,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var ranCatch = false;
diff --git a/test/language/statements/variable/dstr-ary-ptrn-elem-ary-empty-init.js b/test/language/statements/variable/dstr-ary-ptrn-elem-ary-empty-init.js
index 06fdd82195..0a7c3e58b6 100644
--- a/test/language/statements/variable/dstr-ary-ptrn-elem-ary-empty-init.js
+++ b/test/language/statements/variable/dstr-ary-ptrn-elem-ary-empty-init.js
@@ -5,7 +5,7 @@
 description: BindingElement with array binding pattern and initializer is used (`var` statement)
 esid: sec-variable-statement-runtime-semantics-evaluation
 es6id: 13.3.2.4
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     VariableDeclaration : BindingPattern Initializer
@@ -27,6 +27,7 @@ info: |
        b. Let v be ? GetValue(defaultValue).
     4. Return the result of performing BindingInitialization of BindingPattern
        with v and environment as the arguments.
+
 ---*/
 var initCount = 0;
 var iterCount = 0;
diff --git a/test/language/statements/variable/dstr-ary-ptrn-elem-id-init-fn-name-gen.js b/test/language/statements/variable/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
index add0a978fa..a37b5c57db 100644
--- a/test/language/statements/variable/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
+++ b/test/language/statements/variable/dstr-ary-ptrn-elem-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (`var` statement)
 esid: sec-variable-statement-runtime-semantics-evaluation
 es6id: 13.3.2.4
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     VariableDeclaration : BindingPattern Initializer
@@ -29,6 +29,7 @@ info: |
           [...]
     7. If environment is undefined, return PutValue(lhs, v).
     8. Return InitializeReferencedBinding(lhs, v).
+
 ---*/
 
 var [gen = function* () {}, xGen = function* x() {}] = [];
diff --git a/test/language/statements/variable/dstr-obj-ptrn-id-init-fn-name-gen.js b/test/language/statements/variable/dstr-obj-ptrn-id-init-fn-name-gen.js
index 5aa4072800..22c0aedd08 100644
--- a/test/language/statements/variable/dstr-obj-ptrn-id-init-fn-name-gen.js
+++ b/test/language/statements/variable/dstr-obj-ptrn-id-init-fn-name-gen.js
@@ -5,7 +5,7 @@
 description: SingleNameBinding assigns name to "anonymous" generator functions (`var` statement)
 esid: sec-variable-statement-runtime-semantics-evaluation
 es6id: 13.3.2.4
-features: [destructuring-binding]
+features: [generators, destructuring-binding]
 flags: [generated]
 info: |
     VariableDeclaration : BindingPattern Initializer
@@ -28,6 +28,7 @@ info: |
           ii. ReturnIfAbrupt(hasNameProperty).
           iii. If hasNameProperty is false, perform SetFunctionName(v,
                bindingId).
+
 ---*/
 
 var { gen = function* () {}, xGen = function* x() {} } = {};
-- 
GitLab