From d142f754681e8e5d6930d3fa2ff275879af9aa86 Mon Sep 17 00:00:00 2001
From: Leo Balter <leonardo.balter@gmail.com>
Date: Tue, 28 Nov 2017 12:49:12 -0500
Subject: [PATCH] Regenerate tests

---
 .../class/err-field-delete-call-expression-privatename.js       | 2 +-
 .../err-field-delete-covered-call-expression-privatename.js     | 2 +-
 .../err-field-delete-covered-member-expression-privatename.js   | 2 +-
 .../class/err-field-delete-member-expression-privatename.js     | 2 +-
 ...rr-field-delete-twice-covered-call-expression-privatename.js | 2 +-
 ...-field-delete-twice-covered-member-expression-privatename.js | 2 +-
 .../class/err-method-delete-call-expression-privatename.js      | 2 +-
 .../err-method-delete-covered-call-expression-privatename.js    | 2 +-
 .../err-method-delete-covered-member-expression-privatename.js  | 2 +-
 .../class/err-method-delete-member-expression-privatename.js    | 2 +-
 ...r-method-delete-twice-covered-call-expression-privatename.js | 2 +-
 ...method-delete-twice-covered-member-expression-privatename.js | 2 +-
 .../class/fields-after-same-line-gen-computed-names.js          | 2 +-
 .../class/fields-after-same-line-gen-computed-symbol-names.js   | 2 +-
 .../class/fields-after-same-line-gen-literal-names.js           | 2 +-
 .../class/fields-after-same-line-gen-private-names.js           | 2 +-
 .../class/fields-after-same-line-gen-static-computed-names.js   | 2 +-
 .../fields-after-same-line-gen-static-computed-symbol-names.js  | 2 +-
 .../class/fields-after-same-line-gen-static-literal-names.js    | 2 +-
 .../class/fields-after-same-line-gen-static-private-names.js    | 2 +-
 .../class/fields-after-same-line-gen-string-literal-names.js    | 2 +-
 .../class/fields-after-same-line-method-computed-names.js       | 2 +-
 .../fields-after-same-line-method-computed-symbol-names.js      | 2 +-
 .../class/fields-after-same-line-method-literal-names.js        | 2 +-
 .../class/fields-after-same-line-method-private-names.js        | 2 +-
 .../fields-after-same-line-method-static-computed-names.js      | 2 +-
 ...ields-after-same-line-method-static-computed-symbol-names.js | 2 +-
 .../class/fields-after-same-line-method-static-literal-names.js | 2 +-
 .../class/fields-after-same-line-method-static-private-names.js | 2 +-
 .../class/fields-after-same-line-method-string-literal-names.js | 2 +-
 .../fields-after-same-line-static-async-gen-computed-names.js   | 2 +-
 ...ds-after-same-line-static-async-gen-computed-symbol-names.js | 2 +-
 .../fields-after-same-line-static-async-gen-literal-names.js    | 2 +-
 .../fields-after-same-line-static-async-gen-private-names.js    | 2 +-
 ...ds-after-same-line-static-async-gen-static-computed-names.js | 2 +-
 ...r-same-line-static-async-gen-static-computed-symbol-names.js | 2 +-
 ...lds-after-same-line-static-async-gen-static-literal-names.js | 2 +-
 ...lds-after-same-line-static-async-gen-static-private-names.js | 2 +-
 ...lds-after-same-line-static-async-gen-string-literal-names.js | 2 +-
 ...fields-after-same-line-static-async-method-computed-names.js | 2 +-
 ...after-same-line-static-async-method-computed-symbol-names.js | 2 +-
 .../fields-after-same-line-static-async-method-literal-names.js | 2 +-
 .../fields-after-same-line-static-async-method-private-names.js | 2 +-
 ...after-same-line-static-async-method-static-computed-names.js | 2 +-
 ...ame-line-static-async-method-static-computed-symbol-names.js | 2 +-
 ...-after-same-line-static-async-method-static-literal-names.js | 2 +-
 ...-after-same-line-static-async-method-static-private-names.js | 2 +-
 ...-after-same-line-static-async-method-string-literal-names.js | 2 +-
 .../class/fields-after-same-line-static-gen-computed-names.js   | 2 +-
 .../fields-after-same-line-static-gen-computed-symbol-names.js  | 2 +-
 .../class/fields-after-same-line-static-gen-literal-names.js    | 2 +-
 .../class/fields-after-same-line-static-gen-private-names.js    | 2 +-
 .../fields-after-same-line-static-gen-static-computed-names.js  | 2 +-
 ...s-after-same-line-static-gen-static-computed-symbol-names.js | 2 +-
 .../fields-after-same-line-static-gen-static-literal-names.js   | 2 +-
 .../fields-after-same-line-static-gen-static-private-names.js   | 2 +-
 .../fields-after-same-line-static-gen-string-literal-names.js   | 2 +-
 .../fields-after-same-line-static-method-computed-names.js      | 2 +-
 ...ields-after-same-line-static-method-computed-symbol-names.js | 2 +-
 .../class/fields-after-same-line-static-method-literal-names.js | 2 +-
 .../class/fields-after-same-line-static-method-private-names.js | 2 +-
 ...ields-after-same-line-static-method-static-computed-names.js | 2 +-
 ...fter-same-line-static-method-static-computed-symbol-names.js | 2 +-
 ...fields-after-same-line-static-method-static-literal-names.js | 2 +-
 ...fields-after-same-line-static-method-static-private-names.js | 2 +-
 ...fields-after-same-line-static-method-string-literal-names.js | 2 +-
 .../class/fields-arrow-fnc-init-err-contains-arguments.js       | 2 +-
 .../class/fields-arrow-fnc-init-err-contains-super.js           | 2 +-
 .../class/fields-comp-name-init-err-contains-arguments.js       | 2 +-
 .../class/fields-comp-name-init-err-contains-super.js           | 2 +-
 .../class/fields-computed-name-propname-constructor.js          | 2 +-
 .../class/fields-computed-name-toprimitive-symbol.js            | 2 +-
 .../expressions/class/fields-computed-name-toprimitive.js       | 2 +-
 .../class/fields-computed-variable-name-propname-constructor.js | 2 +-
 ...fields-computed-variable-name-static-propname-constructor.js | 2 +-
 .../fields-computed-variable-name-static-propname-prototype.js  | 2 +-
 .../expressions/class/fields-ctor-called-after-fields-init.js   | 2 +-
 .../fields-derived-cls-direct-eval-err-contains-supercall-1.js  | 2 +-
 .../fields-derived-cls-direct-eval-err-contains-supercall-2.js  | 2 +-
 .../fields-derived-cls-direct-eval-err-contains-supercall.js    | 2 +-
 ...elds-derived-cls-direct-eval-err-contains-superproperty-1.js | 2 +-
 ...elds-derived-cls-direct-eval-err-contains-superproperty-2.js | 2 +-
 ...fields-derived-cls-indirect-eval-err-contains-supercall-1.js | 2 +-
 ...fields-derived-cls-indirect-eval-err-contains-supercall-2.js | 2 +-
 .../fields-derived-cls-indirect-eval-err-contains-supercall.js  | 2 +-
 ...ds-derived-cls-indirect-eval-err-contains-superproperty-1.js | 2 +-
 ...ds-derived-cls-indirect-eval-err-contains-superproperty-2.js | 2 +-
 .../class/fields-direct-eval-err-contains-arguments.js          | 2 +-
 .../class/fields-direct-eval-err-contains-newtarget.js          | 2 +-
 .../class/fields-equality-init-err-contains-arguments.js        | 2 +-
 .../class/fields-equality-init-err-contains-super.js            | 2 +-
 .../fields-evaluation-error-computed-name-referenceerror.js     | 2 +-
 .../fields-evaluation-error-computed-name-toprimitive-err.js    | 2 +-
 .../class/fields-evaluation-error-computed-name-tostring-err.js | 2 +-
 .../class/fields-evaluation-error-computed-name-valueof-err.js  | 2 +-
 .../class/fields-indirect-eval-err-contains-arguments.js        | 2 +-
 .../class/fields-indirect-eval-err-contains-newtarget.js        | 2 +-
 test/language/expressions/class/fields-init-err-evaluation.js   | 2 +-
 .../expressions/class/fields-init-value-defined-after-class.js  | 2 +-
 .../language/expressions/class/fields-init-value-incremental.js | 2 +-
 .../class/fields-literal-name-init-err-contains-arguments.js    | 2 +-
 .../class/fields-literal-name-init-err-contains-super.js        | 2 +-
 .../class/fields-literal-name-propname-constructor.js           | 2 +-
 .../class/fields-literal-name-static-propname-constructor.js    | 2 +-
 .../class/fields-literal-name-static-propname-prototype.js      | 2 +-
 .../class/fields-multiple-definitions-computed-names.js         | 2 +-
 .../class/fields-multiple-definitions-computed-symbol-names.js  | 2 +-
 .../class/fields-multiple-definitions-literal-names.js          | 2 +-
 .../class/fields-multiple-definitions-private-names.js          | 2 +-
 .../class/fields-multiple-definitions-static-computed-names.js  | 2 +-
 .../fields-multiple-definitions-static-computed-symbol-names.js | 2 +-
 .../class/fields-multiple-definitions-static-literal-names.js   | 2 +-
 .../class/fields-multiple-definitions-static-private-names.js   | 2 +-
 .../class/fields-multiple-definitions-string-literal-names.js   | 2 +-
 .../class/fields-multiple-stacked-definitions-computed-names.js | 2 +-
 ...fields-multiple-stacked-definitions-computed-symbol-names.js | 2 +-
 .../class/fields-multiple-stacked-definitions-literal-names.js  | 2 +-
 .../class/fields-multiple-stacked-definitions-private-names.js  | 2 +-
 ...fields-multiple-stacked-definitions-static-computed-names.js | 2 +-
 ...multiple-stacked-definitions-static-computed-symbol-names.js | 2 +-
 .../fields-multiple-stacked-definitions-static-literal-names.js | 2 +-
 .../fields-multiple-stacked-definitions-static-private-names.js | 2 +-
 .../fields-multiple-stacked-definitions-string-literal-names.js | 2 +-
 .../class/fields-new-no-sc-line-method-computed-names.js        | 2 +-
 .../class/fields-new-no-sc-line-method-computed-symbol-names.js | 2 +-
 .../class/fields-new-no-sc-line-method-literal-names.js         | 2 +-
 .../class/fields-new-no-sc-line-method-private-names.js         | 2 +-
 .../class/fields-new-no-sc-line-method-static-computed-names.js | 2 +-
 ...fields-new-no-sc-line-method-static-computed-symbol-names.js | 2 +-
 .../class/fields-new-no-sc-line-method-static-literal-names.js  | 2 +-
 .../class/fields-new-no-sc-line-method-static-private-names.js  | 2 +-
 .../class/fields-new-no-sc-line-method-string-literal-names.js  | 2 +-
 .../expressions/class/fields-new-sc-line-gen-computed-names.js  | 2 +-
 .../class/fields-new-sc-line-gen-computed-symbol-names.js       | 2 +-
 .../expressions/class/fields-new-sc-line-gen-literal-names.js   | 2 +-
 .../expressions/class/fields-new-sc-line-gen-private-names.js   | 2 +-
 .../class/fields-new-sc-line-gen-static-computed-names.js       | 2 +-
 .../fields-new-sc-line-gen-static-computed-symbol-names.js      | 2 +-
 .../class/fields-new-sc-line-gen-static-literal-names.js        | 2 +-
 .../class/fields-new-sc-line-gen-static-private-names.js        | 2 +-
 .../class/fields-new-sc-line-gen-string-literal-names.js        | 2 +-
 .../class/fields-new-sc-line-method-computed-names.js           | 2 +-
 .../class/fields-new-sc-line-method-computed-symbol-names.js    | 2 +-
 .../class/fields-new-sc-line-method-literal-names.js            | 2 +-
 .../class/fields-new-sc-line-method-private-names.js            | 2 +-
 .../class/fields-new-sc-line-method-static-computed-names.js    | 2 +-
 .../fields-new-sc-line-method-static-computed-symbol-names.js   | 2 +-
 .../class/fields-new-sc-line-method-static-literal-names.js     | 2 +-
 .../class/fields-new-sc-line-method-static-private-names.js     | 2 +-
 .../class/fields-new-sc-line-method-string-literal-names.js     | 2 +-
 .../fields-private-arrow-fnc-init-err-contains-arguments.js     | 2 +-
 .../class/fields-private-arrow-fnc-init-err-contains-super.js   | 2 +-
 .../fields-private-literal-name-init-err-contains-arguments.js  | 2 +-
 .../fields-private-literal-name-init-err-contains-super.js      | 2 +-
 .../class/fields-private-ternary-init-err-contains-arguments.js | 2 +-
 .../class/fields-private-ternary-init-err-contains-super.js     | 2 +-
 .../class/fields-private-typeof-init-err-contains-arguments.js  | 2 +-
 .../class/fields-private-typeof-init-err-contains-super.js      | 2 +-
 test/language/expressions/class/fields-redeclaration-symbol.js  | 2 +-
 test/language/expressions/class/fields-redeclaration.js         | 2 +-
 .../class/fields-regular-definitions-computed-names.js          | 2 +-
 .../class/fields-regular-definitions-computed-symbol-names.js   | 2 +-
 .../class/fields-regular-definitions-literal-names.js           | 2 +-
 .../class/fields-regular-definitions-private-names.js           | 2 +-
 .../class/fields-regular-definitions-static-computed-names.js   | 2 +-
 .../fields-regular-definitions-static-computed-symbol-names.js  | 2 +-
 .../class/fields-regular-definitions-static-literal-names.js    | 2 +-
 .../class/fields-regular-definitions-static-private-names.js    | 2 +-
 .../class/fields-regular-definitions-string-literal-names.js    | 2 +-
 .../class/fields-same-line-async-gen-computed-names.js          | 2 +-
 .../class/fields-same-line-async-gen-computed-symbol-names.js   | 2 +-
 .../class/fields-same-line-async-gen-literal-names.js           | 2 +-
 .../class/fields-same-line-async-gen-private-names.js           | 2 +-
 .../class/fields-same-line-async-gen-static-computed-names.js   | 2 +-
 .../fields-same-line-async-gen-static-computed-symbol-names.js  | 2 +-
 .../class/fields-same-line-async-gen-static-literal-names.js    | 2 +-
 .../class/fields-same-line-async-gen-static-private-names.js    | 2 +-
 .../class/fields-same-line-async-gen-string-literal-names.js    | 2 +-
 .../class/fields-same-line-async-method-computed-names.js       | 2 +-
 .../fields-same-line-async-method-computed-symbol-names.js      | 2 +-
 .../class/fields-same-line-async-method-literal-names.js        | 2 +-
 .../class/fields-same-line-async-method-private-names.js        | 2 +-
 .../fields-same-line-async-method-static-computed-names.js      | 2 +-
 ...ields-same-line-async-method-static-computed-symbol-names.js | 2 +-
 .../class/fields-same-line-async-method-static-literal-names.js | 2 +-
 .../class/fields-same-line-async-method-static-private-names.js | 2 +-
 .../class/fields-same-line-async-method-string-literal-names.js | 2 +-
 .../expressions/class/fields-same-line-gen-computed-names.js    | 2 +-
 .../class/fields-same-line-gen-computed-symbol-names.js         | 2 +-
 .../expressions/class/fields-same-line-gen-literal-names.js     | 2 +-
 .../expressions/class/fields-same-line-gen-private-names.js     | 2 +-
 .../class/fields-same-line-gen-static-computed-names.js         | 2 +-
 .../class/fields-same-line-gen-static-computed-symbol-names.js  | 2 +-
 .../class/fields-same-line-gen-static-literal-names.js          | 2 +-
 .../class/fields-same-line-gen-static-private-names.js          | 2 +-
 .../class/fields-same-line-gen-string-literal-names.js          | 2 +-
 .../expressions/class/fields-same-line-method-computed-names.js | 2 +-
 .../class/fields-same-line-method-computed-symbol-names.js      | 2 +-
 .../expressions/class/fields-same-line-method-literal-names.js  | 2 +-
 .../expressions/class/fields-same-line-method-private-names.js  | 2 +-
 .../class/fields-same-line-method-static-computed-names.js      | 2 +-
 .../fields-same-line-method-static-computed-symbol-names.js     | 2 +-
 .../class/fields-same-line-method-static-literal-names.js       | 2 +-
 .../class/fields-same-line-method-static-private-names.js       | 2 +-
 .../class/fields-same-line-method-string-literal-names.js       | 2 +-
 .../fields-static-comp-name-init-err-contains-arguments.js      | 2 +-
 .../class/fields-static-comp-name-init-err-contains-super.js    | 2 +-
 .../class/fields-static-computed-name-toprimitive-symbol.js     | 2 +-
 .../class/fields-static-computed-name-toprimitive.js            | 2 +-
 .../class/fields-static-literal-init-err-contains-arguments.js  | 2 +-
 .../class/fields-static-literal-init-err-contains-super.js      | 2 +-
 .../class/fields-static-private-init-err-contains-arguments.js  | 2 +-
 .../class/fields-static-private-init-err-contains-super.js      | 2 +-
 .../expressions/class/fields-static-redeclaration-symbol.js     | 2 +-
 test/language/expressions/class/fields-static-redeclaration.js  | 2 +-
 ...ds-static-string-literal-name-init-err-contains-arguments.js | 2 +-
 ...fields-static-string-literal-name-init-err-contains-super.js | 2 +-
 .../fields-string-literal-name-init-err-contains-arguments.js   | 2 +-
 .../class/fields-string-literal-name-init-err-contains-super.js | 2 +-
 .../class/fields-string-name-propname-constructor.js            | 2 +-
 .../class/fields-string-name-static-propname-constructor.js     | 2 +-
 .../class/fields-string-name-static-propname-prototype.js       | 2 +-
 .../class/fields-ternary-init-err-contains-arguments.js         | 2 +-
 .../expressions/class/fields-ternary-init-err-contains-super.js | 2 +-
 .../class/fields-typeof-init-err-contains-arguments.js          | 2 +-
 .../expressions/class/fields-typeof-init-err-contains-super.js  | 2 +-
 .../expressions/class/fields-wrapped-in-sc-computed-names.js    | 2 +-
 .../class/fields-wrapped-in-sc-computed-symbol-names.js         | 2 +-
 .../expressions/class/fields-wrapped-in-sc-literal-names.js     | 2 +-
 .../expressions/class/fields-wrapped-in-sc-private-names.js     | 2 +-
 .../class/fields-wrapped-in-sc-static-computed-names.js         | 2 +-
 .../class/fields-wrapped-in-sc-static-computed-symbol-names.js  | 2 +-
 .../class/fields-wrapped-in-sc-static-literal-names.js          | 2 +-
 .../class/fields-wrapped-in-sc-static-private-names.js          | 2 +-
 .../class/fields-wrapped-in-sc-string-literal-names.js          | 2 +-
 .../class/err-field-delete-call-expression-privatename.js       | 2 +-
 .../err-field-delete-covered-call-expression-privatename.js     | 2 +-
 .../err-field-delete-covered-member-expression-privatename.js   | 2 +-
 .../class/err-field-delete-member-expression-privatename.js     | 2 +-
 ...rr-field-delete-twice-covered-call-expression-privatename.js | 2 +-
 ...-field-delete-twice-covered-member-expression-privatename.js | 2 +-
 .../class/err-method-delete-call-expression-privatename.js      | 2 +-
 .../err-method-delete-covered-call-expression-privatename.js    | 2 +-
 .../err-method-delete-covered-member-expression-privatename.js  | 2 +-
 .../class/err-method-delete-member-expression-privatename.js    | 2 +-
 ...r-method-delete-twice-covered-call-expression-privatename.js | 2 +-
 ...method-delete-twice-covered-member-expression-privatename.js | 2 +-
 .../class/fields-after-same-line-gen-computed-names.js          | 2 +-
 .../class/fields-after-same-line-gen-computed-symbol-names.js   | 2 +-
 .../class/fields-after-same-line-gen-literal-names.js           | 2 +-
 .../class/fields-after-same-line-gen-private-names.js           | 2 +-
 .../class/fields-after-same-line-gen-static-computed-names.js   | 2 +-
 .../fields-after-same-line-gen-static-computed-symbol-names.js  | 2 +-
 .../class/fields-after-same-line-gen-static-literal-names.js    | 2 +-
 .../class/fields-after-same-line-gen-static-private-names.js    | 2 +-
 .../class/fields-after-same-line-gen-string-literal-names.js    | 2 +-
 .../class/fields-after-same-line-method-computed-names.js       | 2 +-
 .../fields-after-same-line-method-computed-symbol-names.js      | 2 +-
 .../class/fields-after-same-line-method-literal-names.js        | 2 +-
 .../class/fields-after-same-line-method-private-names.js        | 2 +-
 .../fields-after-same-line-method-static-computed-names.js      | 2 +-
 ...ields-after-same-line-method-static-computed-symbol-names.js | 2 +-
 .../class/fields-after-same-line-method-static-literal-names.js | 2 +-
 .../class/fields-after-same-line-method-static-private-names.js | 2 +-
 .../class/fields-after-same-line-method-string-literal-names.js | 2 +-
 .../fields-after-same-line-static-async-gen-computed-names.js   | 2 +-
 ...ds-after-same-line-static-async-gen-computed-symbol-names.js | 2 +-
 .../fields-after-same-line-static-async-gen-literal-names.js    | 2 +-
 .../fields-after-same-line-static-async-gen-private-names.js    | 2 +-
 ...ds-after-same-line-static-async-gen-static-computed-names.js | 2 +-
 ...r-same-line-static-async-gen-static-computed-symbol-names.js | 2 +-
 ...lds-after-same-line-static-async-gen-static-literal-names.js | 2 +-
 ...lds-after-same-line-static-async-gen-static-private-names.js | 2 +-
 ...lds-after-same-line-static-async-gen-string-literal-names.js | 2 +-
 ...fields-after-same-line-static-async-method-computed-names.js | 2 +-
 ...after-same-line-static-async-method-computed-symbol-names.js | 2 +-
 .../fields-after-same-line-static-async-method-literal-names.js | 2 +-
 .../fields-after-same-line-static-async-method-private-names.js | 2 +-
 ...after-same-line-static-async-method-static-computed-names.js | 2 +-
 ...ame-line-static-async-method-static-computed-symbol-names.js | 2 +-
 ...-after-same-line-static-async-method-static-literal-names.js | 2 +-
 ...-after-same-line-static-async-method-static-private-names.js | 2 +-
 ...-after-same-line-static-async-method-string-literal-names.js | 2 +-
 .../class/fields-after-same-line-static-gen-computed-names.js   | 2 +-
 .../fields-after-same-line-static-gen-computed-symbol-names.js  | 2 +-
 .../class/fields-after-same-line-static-gen-literal-names.js    | 2 +-
 .../class/fields-after-same-line-static-gen-private-names.js    | 2 +-
 .../fields-after-same-line-static-gen-static-computed-names.js  | 2 +-
 ...s-after-same-line-static-gen-static-computed-symbol-names.js | 2 +-
 .../fields-after-same-line-static-gen-static-literal-names.js   | 2 +-
 .../fields-after-same-line-static-gen-static-private-names.js   | 2 +-
 .../fields-after-same-line-static-gen-string-literal-names.js   | 2 +-
 .../fields-after-same-line-static-method-computed-names.js      | 2 +-
 ...ields-after-same-line-static-method-computed-symbol-names.js | 2 +-
 .../class/fields-after-same-line-static-method-literal-names.js | 2 +-
 .../class/fields-after-same-line-static-method-private-names.js | 2 +-
 ...ields-after-same-line-static-method-static-computed-names.js | 2 +-
 ...fter-same-line-static-method-static-computed-symbol-names.js | 2 +-
 ...fields-after-same-line-static-method-static-literal-names.js | 2 +-
 ...fields-after-same-line-static-method-static-private-names.js | 2 +-
 ...fields-after-same-line-static-method-string-literal-names.js | 2 +-
 .../class/fields-arrow-fnc-init-err-contains-arguments.js       | 2 +-
 .../class/fields-arrow-fnc-init-err-contains-super.js           | 2 +-
 .../class/fields-comp-name-init-err-contains-arguments.js       | 2 +-
 .../class/fields-comp-name-init-err-contains-super.js           | 2 +-
 .../class/fields-computed-name-propname-constructor.js          | 2 +-
 .../statements/class/fields-computed-name-toprimitive-symbol.js | 2 +-
 .../statements/class/fields-computed-name-toprimitive.js        | 2 +-
 .../class/fields-computed-variable-name-propname-constructor.js | 2 +-
 ...fields-computed-variable-name-static-propname-constructor.js | 2 +-
 .../fields-computed-variable-name-static-propname-prototype.js  | 2 +-
 .../statements/class/fields-ctor-called-after-fields-init.js    | 2 +-
 .../fields-derived-cls-direct-eval-err-contains-supercall-1.js  | 2 +-
 .../fields-derived-cls-direct-eval-err-contains-supercall-2.js  | 2 +-
 .../fields-derived-cls-direct-eval-err-contains-supercall.js    | 2 +-
 ...elds-derived-cls-direct-eval-err-contains-superproperty-1.js | 2 +-
 ...elds-derived-cls-direct-eval-err-contains-superproperty-2.js | 2 +-
 ...fields-derived-cls-indirect-eval-err-contains-supercall-1.js | 2 +-
 ...fields-derived-cls-indirect-eval-err-contains-supercall-2.js | 2 +-
 .../fields-derived-cls-indirect-eval-err-contains-supercall.js  | 2 +-
 ...ds-derived-cls-indirect-eval-err-contains-superproperty-1.js | 2 +-
 ...ds-derived-cls-indirect-eval-err-contains-superproperty-2.js | 2 +-
 .../class/fields-direct-eval-err-contains-arguments.js          | 2 +-
 .../class/fields-direct-eval-err-contains-newtarget.js          | 2 +-
 .../class/fields-equality-init-err-contains-arguments.js        | 2 +-
 .../statements/class/fields-equality-init-err-contains-super.js | 2 +-
 .../fields-evaluation-error-computed-name-referenceerror.js     | 2 +-
 .../fields-evaluation-error-computed-name-toprimitive-err.js    | 2 +-
 .../class/fields-evaluation-error-computed-name-tostring-err.js | 2 +-
 .../class/fields-evaluation-error-computed-name-valueof-err.js  | 2 +-
 .../class/fields-indirect-eval-err-contains-arguments.js        | 2 +-
 .../class/fields-indirect-eval-err-contains-newtarget.js        | 2 +-
 test/language/statements/class/fields-init-err-evaluation.js    | 2 +-
 .../statements/class/fields-init-value-defined-after-class.js   | 2 +-
 test/language/statements/class/fields-init-value-incremental.js | 2 +-
 .../class/fields-literal-name-init-err-contains-arguments.js    | 2 +-
 .../class/fields-literal-name-init-err-contains-super.js        | 2 +-
 .../class/fields-literal-name-propname-constructor.js           | 2 +-
 .../class/fields-literal-name-static-propname-constructor.js    | 2 +-
 .../class/fields-literal-name-static-propname-prototype.js      | 2 +-
 .../class/fields-multiple-definitions-computed-names.js         | 2 +-
 .../class/fields-multiple-definitions-computed-symbol-names.js  | 2 +-
 .../class/fields-multiple-definitions-literal-names.js          | 2 +-
 .../class/fields-multiple-definitions-private-names.js          | 2 +-
 .../class/fields-multiple-definitions-static-computed-names.js  | 2 +-
 .../fields-multiple-definitions-static-computed-symbol-names.js | 2 +-
 .../class/fields-multiple-definitions-static-literal-names.js   | 2 +-
 .../class/fields-multiple-definitions-static-private-names.js   | 2 +-
 .../class/fields-multiple-definitions-string-literal-names.js   | 2 +-
 .../class/fields-multiple-stacked-definitions-computed-names.js | 2 +-
 ...fields-multiple-stacked-definitions-computed-symbol-names.js | 2 +-
 .../class/fields-multiple-stacked-definitions-literal-names.js  | 2 +-
 .../class/fields-multiple-stacked-definitions-private-names.js  | 2 +-
 ...fields-multiple-stacked-definitions-static-computed-names.js | 2 +-
 ...multiple-stacked-definitions-static-computed-symbol-names.js | 2 +-
 .../fields-multiple-stacked-definitions-static-literal-names.js | 2 +-
 .../fields-multiple-stacked-definitions-static-private-names.js | 2 +-
 .../fields-multiple-stacked-definitions-string-literal-names.js | 2 +-
 .../class/fields-new-no-sc-line-method-computed-names.js        | 2 +-
 .../class/fields-new-no-sc-line-method-computed-symbol-names.js | 2 +-
 .../class/fields-new-no-sc-line-method-literal-names.js         | 2 +-
 .../class/fields-new-no-sc-line-method-private-names.js         | 2 +-
 .../class/fields-new-no-sc-line-method-static-computed-names.js | 2 +-
 ...fields-new-no-sc-line-method-static-computed-symbol-names.js | 2 +-
 .../class/fields-new-no-sc-line-method-static-literal-names.js  | 2 +-
 .../class/fields-new-no-sc-line-method-static-private-names.js  | 2 +-
 .../class/fields-new-no-sc-line-method-string-literal-names.js  | 2 +-
 .../statements/class/fields-new-sc-line-gen-computed-names.js   | 2 +-
 .../class/fields-new-sc-line-gen-computed-symbol-names.js       | 2 +-
 .../statements/class/fields-new-sc-line-gen-literal-names.js    | 2 +-
 .../statements/class/fields-new-sc-line-gen-private-names.js    | 2 +-
 .../class/fields-new-sc-line-gen-static-computed-names.js       | 2 +-
 .../fields-new-sc-line-gen-static-computed-symbol-names.js      | 2 +-
 .../class/fields-new-sc-line-gen-static-literal-names.js        | 2 +-
 .../class/fields-new-sc-line-gen-static-private-names.js        | 2 +-
 .../class/fields-new-sc-line-gen-string-literal-names.js        | 2 +-
 .../class/fields-new-sc-line-method-computed-names.js           | 2 +-
 .../class/fields-new-sc-line-method-computed-symbol-names.js    | 2 +-
 .../statements/class/fields-new-sc-line-method-literal-names.js | 2 +-
 .../statements/class/fields-new-sc-line-method-private-names.js | 2 +-
 .../class/fields-new-sc-line-method-static-computed-names.js    | 2 +-
 .../fields-new-sc-line-method-static-computed-symbol-names.js   | 2 +-
 .../class/fields-new-sc-line-method-static-literal-names.js     | 2 +-
 .../class/fields-new-sc-line-method-static-private-names.js     | 2 +-
 .../class/fields-new-sc-line-method-string-literal-names.js     | 2 +-
 .../fields-private-arrow-fnc-init-err-contains-arguments.js     | 2 +-
 .../class/fields-private-arrow-fnc-init-err-contains-super.js   | 2 +-
 .../fields-private-literal-name-init-err-contains-arguments.js  | 2 +-
 .../fields-private-literal-name-init-err-contains-super.js      | 2 +-
 .../class/fields-private-ternary-init-err-contains-arguments.js | 2 +-
 .../class/fields-private-ternary-init-err-contains-super.js     | 2 +-
 .../class/fields-private-typeof-init-err-contains-arguments.js  | 2 +-
 .../class/fields-private-typeof-init-err-contains-super.js      | 2 +-
 test/language/statements/class/fields-redeclaration-symbol.js   | 2 +-
 test/language/statements/class/fields-redeclaration.js          | 2 +-
 .../class/fields-regular-definitions-computed-names.js          | 2 +-
 .../class/fields-regular-definitions-computed-symbol-names.js   | 2 +-
 .../class/fields-regular-definitions-literal-names.js           | 2 +-
 .../class/fields-regular-definitions-private-names.js           | 2 +-
 .../class/fields-regular-definitions-static-computed-names.js   | 2 +-
 .../fields-regular-definitions-static-computed-symbol-names.js  | 2 +-
 .../class/fields-regular-definitions-static-literal-names.js    | 2 +-
 .../class/fields-regular-definitions-static-private-names.js    | 2 +-
 .../class/fields-regular-definitions-string-literal-names.js    | 2 +-
 .../class/fields-same-line-async-gen-computed-names.js          | 2 +-
 .../class/fields-same-line-async-gen-computed-symbol-names.js   | 2 +-
 .../class/fields-same-line-async-gen-literal-names.js           | 2 +-
 .../class/fields-same-line-async-gen-private-names.js           | 2 +-
 .../class/fields-same-line-async-gen-static-computed-names.js   | 2 +-
 .../fields-same-line-async-gen-static-computed-symbol-names.js  | 2 +-
 .../class/fields-same-line-async-gen-static-literal-names.js    | 2 +-
 .../class/fields-same-line-async-gen-static-private-names.js    | 2 +-
 .../class/fields-same-line-async-gen-string-literal-names.js    | 2 +-
 .../class/fields-same-line-async-method-computed-names.js       | 2 +-
 .../fields-same-line-async-method-computed-symbol-names.js      | 2 +-
 .../class/fields-same-line-async-method-literal-names.js        | 2 +-
 .../class/fields-same-line-async-method-private-names.js        | 2 +-
 .../fields-same-line-async-method-static-computed-names.js      | 2 +-
 ...ields-same-line-async-method-static-computed-symbol-names.js | 2 +-
 .../class/fields-same-line-async-method-static-literal-names.js | 2 +-
 .../class/fields-same-line-async-method-static-private-names.js | 2 +-
 .../class/fields-same-line-async-method-string-literal-names.js | 2 +-
 .../statements/class/fields-same-line-gen-computed-names.js     | 2 +-
 .../class/fields-same-line-gen-computed-symbol-names.js         | 2 +-
 .../statements/class/fields-same-line-gen-literal-names.js      | 2 +-
 .../statements/class/fields-same-line-gen-private-names.js      | 2 +-
 .../class/fields-same-line-gen-static-computed-names.js         | 2 +-
 .../class/fields-same-line-gen-static-computed-symbol-names.js  | 2 +-
 .../class/fields-same-line-gen-static-literal-names.js          | 2 +-
 .../class/fields-same-line-gen-static-private-names.js          | 2 +-
 .../class/fields-same-line-gen-string-literal-names.js          | 2 +-
 .../statements/class/fields-same-line-method-computed-names.js  | 2 +-
 .../class/fields-same-line-method-computed-symbol-names.js      | 2 +-
 .../statements/class/fields-same-line-method-literal-names.js   | 2 +-
 .../statements/class/fields-same-line-method-private-names.js   | 2 +-
 .../class/fields-same-line-method-static-computed-names.js      | 2 +-
 .../fields-same-line-method-static-computed-symbol-names.js     | 2 +-
 .../class/fields-same-line-method-static-literal-names.js       | 2 +-
 .../class/fields-same-line-method-static-private-names.js       | 2 +-
 .../class/fields-same-line-method-string-literal-names.js       | 2 +-
 .../fields-static-comp-name-init-err-contains-arguments.js      | 2 +-
 .../class/fields-static-comp-name-init-err-contains-super.js    | 2 +-
 .../class/fields-static-computed-name-toprimitive-symbol.js     | 2 +-
 .../statements/class/fields-static-computed-name-toprimitive.js | 2 +-
 .../class/fields-static-literal-init-err-contains-arguments.js  | 2 +-
 .../class/fields-static-literal-init-err-contains-super.js      | 2 +-
 .../class/fields-static-private-init-err-contains-arguments.js  | 2 +-
 .../class/fields-static-private-init-err-contains-super.js      | 2 +-
 .../statements/class/fields-static-redeclaration-symbol.js      | 2 +-
 test/language/statements/class/fields-static-redeclaration.js   | 2 +-
 ...ds-static-string-literal-name-init-err-contains-arguments.js | 2 +-
 ...fields-static-string-literal-name-init-err-contains-super.js | 2 +-
 .../fields-string-literal-name-init-err-contains-arguments.js   | 2 +-
 .../class/fields-string-literal-name-init-err-contains-super.js | 2 +-
 .../statements/class/fields-string-name-propname-constructor.js | 2 +-
 .../class/fields-string-name-static-propname-constructor.js     | 2 +-
 .../class/fields-string-name-static-propname-prototype.js       | 2 +-
 .../class/fields-ternary-init-err-contains-arguments.js         | 2 +-
 .../statements/class/fields-ternary-init-err-contains-super.js  | 2 +-
 .../class/fields-typeof-init-err-contains-arguments.js          | 2 +-
 .../statements/class/fields-typeof-init-err-contains-super.js   | 2 +-
 .../statements/class/fields-wrapped-in-sc-computed-names.js     | 2 +-
 .../class/fields-wrapped-in-sc-computed-symbol-names.js         | 2 +-
 .../statements/class/fields-wrapped-in-sc-literal-names.js      | 2 +-
 .../statements/class/fields-wrapped-in-sc-private-names.js      | 2 +-
 .../class/fields-wrapped-in-sc-static-computed-names.js         | 2 +-
 .../class/fields-wrapped-in-sc-static-computed-symbol-names.js  | 2 +-
 .../class/fields-wrapped-in-sc-static-literal-names.js          | 2 +-
 .../class/fields-wrapped-in-sc-static-private-names.js          | 2 +-
 .../class/fields-wrapped-in-sc-string-literal-names.js          | 2 +-
 470 files changed, 470 insertions(+), 470 deletions(-)

diff --git a/test/language/expressions/class/err-field-delete-call-expression-privatename.js b/test/language/expressions/class/err-field-delete-call-expression-privatename.js
index 5941f1b87f..ca9713f246 100644
--- a/test/language/expressions/class/err-field-delete-call-expression-privatename.js
+++ b/test/language/expressions/class/err-field-delete-call-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on call expressions . privatename (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/err-field-delete-covered-call-expression-privatename.js b/test/language/expressions/class/err-field-delete-covered-call-expression-privatename.js
index 2709caa814..1f8f33f554 100644
--- a/test/language/expressions/class/err-field-delete-covered-call-expression-privatename.js
+++ b/test/language/expressions/class/err-field-delete-covered-call-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on call expressions . privatename (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/err-field-delete-covered-member-expression-privatename.js b/test/language/expressions/class/err-field-delete-covered-member-expression-privatename.js
index 84e557e622..ee592c39a2 100644
--- a/test/language/expressions/class/err-field-delete-covered-member-expression-privatename.js
+++ b/test/language/expressions/class/err-field-delete-covered-member-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on member expressions . privatename (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class-fields-private, class]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/err-field-delete-member-expression-privatename.js b/test/language/expressions/class/err-field-delete-member-expression-privatename.js
index 6e8381e221..a3054ee411 100644
--- a/test/language/expressions/class/err-field-delete-member-expression-privatename.js
+++ b/test/language/expressions/class/err-field-delete-member-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on member expressions . privatename (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-call-expression-privatename.js b/test/language/expressions/class/err-field-delete-twice-covered-call-expression-privatename.js
index ccc0f4f172..d80e461249 100644
--- a/test/language/expressions/class/err-field-delete-twice-covered-call-expression-privatename.js
+++ b/test/language/expressions/class/err-field-delete-twice-covered-call-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on call expressions . privatename (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-member-expression-privatename.js b/test/language/expressions/class/err-field-delete-twice-covered-member-expression-privatename.js
index c170745c4f..952a163e65 100644
--- a/test/language/expressions/class/err-field-delete-twice-covered-member-expression-privatename.js
+++ b/test/language/expressions/class/err-field-delete-twice-covered-member-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on member expressions . privatename (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/err-method-delete-call-expression-privatename.js b/test/language/expressions/class/err-method-delete-call-expression-privatename.js
index ad7390815c..2967855ec1 100644
--- a/test/language/expressions/class/err-method-delete-call-expression-privatename.js
+++ b/test/language/expressions/class/err-method-delete-call-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on call expressions . privatename (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/err-method-delete-covered-call-expression-privatename.js b/test/language/expressions/class/err-method-delete-covered-call-expression-privatename.js
index 3b85fdf5f4..a3d193cdc3 100644
--- a/test/language/expressions/class/err-method-delete-covered-call-expression-privatename.js
+++ b/test/language/expressions/class/err-method-delete-covered-call-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on call expressions . privatename (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/err-method-delete-covered-member-expression-privatename.js b/test/language/expressions/class/err-method-delete-covered-member-expression-privatename.js
index ae0ef4619c..2f9a2b2fd2 100644
--- a/test/language/expressions/class/err-method-delete-covered-member-expression-privatename.js
+++ b/test/language/expressions/class/err-method-delete-covered-member-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on member expressions . privatename (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class-fields-private, class]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/err-method-delete-member-expression-privatename.js b/test/language/expressions/class/err-method-delete-member-expression-privatename.js
index 5ac00be882..7c2b524737 100644
--- a/test/language/expressions/class/err-method-delete-member-expression-privatename.js
+++ b/test/language/expressions/class/err-method-delete-member-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on member expressions . privatename (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class-fields-private, class]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-call-expression-privatename.js b/test/language/expressions/class/err-method-delete-twice-covered-call-expression-privatename.js
index 02aa7e63dc..881106a27c 100644
--- a/test/language/expressions/class/err-method-delete-twice-covered-call-expression-privatename.js
+++ b/test/language/expressions/class/err-method-delete-twice-covered-call-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on call expressions . privatename (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-member-expression-privatename.js b/test/language/expressions/class/err-method-delete-twice-covered-member-expression-privatename.js
index 6ca6f29abe..fd5ff6e57f 100644
--- a/test/language/expressions/class/err-method-delete-twice-covered-member-expression-privatename.js
+++ b/test/language/expressions/class/err-method-delete-twice-covered-member-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on member expressions . privatename (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class-fields-private, class]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-after-same-line-gen-computed-names.js b/test/language/expressions/class/fields-after-same-line-gen-computed-names.js
index 9e58a6259e..276f5ea3ec 100644
--- a/test/language/expressions/class/fields-after-same-line-gen-computed-names.js
+++ b/test/language/expressions/class/fields-after-same-line-gen-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, generators, class-fields]
+features: [computed-property-names, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-gen-computed-symbol-names.js b/test/language/expressions/class/fields-after-same-line-gen-computed-symbol-names.js
index 780844d06f..ca449cf303 100644
--- a/test/language/expressions/class/fields-after-same-line-gen-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-after-same-line-gen-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, generators, class-fields]
+features: [Symbol, computed-property-names, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-gen-literal-names.js b/test/language/expressions/class/fields-after-same-line-gen-literal-names.js
index 301c70b2b0..cf16227496 100644
--- a/test/language/expressions/class/fields-after-same-line-gen-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-gen-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-gen-private-names.js b/test/language/expressions/class/fields-after-same-line-gen-private-names.js
index 26556aa6b3..e730657f11 100644
--- a/test/language/expressions/class/fields-after-same-line-gen-private-names.js
+++ b/test/language/expressions/class/fields-after-same-line-gen-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [class-fields-private, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-gen-static-computed-names.js b/test/language/expressions/class/fields-after-same-line-gen-static-computed-names.js
index a9634a241d..d4eb5d94a5 100644
--- a/test/language/expressions/class/fields-after-same-line-gen-static-computed-names.js
+++ b/test/language/expressions/class/fields-after-same-line-gen-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, generators, class-fields]
+features: [computed-property-names, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-gen-static-computed-symbol-names.js b/test/language/expressions/class/fields-after-same-line-gen-static-computed-symbol-names.js
index 8e6670f833..434717683a 100644
--- a/test/language/expressions/class/fields-after-same-line-gen-static-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-after-same-line-gen-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, generators, class-fields]
+features: [Symbol, computed-property-names, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-gen-static-literal-names.js b/test/language/expressions/class/fields-after-same-line-gen-static-literal-names.js
index 5d6c2150d7..385c526537 100644
--- a/test/language/expressions/class/fields-after-same-line-gen-static-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-gen-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-gen-static-private-names.js b/test/language/expressions/class/fields-after-same-line-gen-static-private-names.js
index 9dc9e66e47..5264b5e105 100644
--- a/test/language/expressions/class/fields-after-same-line-gen-static-private-names.js
+++ b/test/language/expressions/class/fields-after-same-line-gen-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [class-fields-private, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-gen-string-literal-names.js b/test/language/expressions/class/fields-after-same-line-gen-string-literal-names.js
index d13199303f..fbec943402 100644
--- a/test/language/expressions/class/fields-after-same-line-gen-string-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-gen-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-method-computed-names.js b/test/language/expressions/class/fields-after-same-line-method-computed-names.js
index 05634a09a4..3cf693950b 100644
--- a/test/language/expressions/class/fields-after-same-line-method-computed-names.js
+++ b/test/language/expressions/class/fields-after-same-line-method-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-method-computed-symbol-names.js b/test/language/expressions/class/fields-after-same-line-method-computed-symbol-names.js
index 6c80a4ce8b..81e5ca2a23 100644
--- a/test/language/expressions/class/fields-after-same-line-method-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-after-same-line-method-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-method-literal-names.js b/test/language/expressions/class/fields-after-same-line-method-literal-names.js
index 3a4c92e8cd..542488ff92 100644
--- a/test/language/expressions/class/fields-after-same-line-method-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-method-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-method-private-names.js b/test/language/expressions/class/fields-after-same-line-method-private-names.js
index e2228f86d8..145f1398d3 100644
--- a/test/language/expressions/class/fields-after-same-line-method-private-names.js
+++ b/test/language/expressions/class/fields-after-same-line-method-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-method-static-computed-names.js b/test/language/expressions/class/fields-after-same-line-method-static-computed-names.js
index 9e07480520..c9e4909fc9 100644
--- a/test/language/expressions/class/fields-after-same-line-method-static-computed-names.js
+++ b/test/language/expressions/class/fields-after-same-line-method-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-method-static-computed-symbol-names.js b/test/language/expressions/class/fields-after-same-line-method-static-computed-symbol-names.js
index cb2a0b8cbe..ff9639338d 100644
--- a/test/language/expressions/class/fields-after-same-line-method-static-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-after-same-line-method-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-method-static-literal-names.js b/test/language/expressions/class/fields-after-same-line-method-static-literal-names.js
index a949cb78a8..11fd3d4eb2 100644
--- a/test/language/expressions/class/fields-after-same-line-method-static-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-method-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-method-static-private-names.js b/test/language/expressions/class/fields-after-same-line-method-static-private-names.js
index 1be5b29063..a8e2ec2833 100644
--- a/test/language/expressions/class/fields-after-same-line-method-static-private-names.js
+++ b/test/language/expressions/class/fields-after-same-line-method-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-method-string-literal-names.js b/test/language/expressions/class/fields-after-same-line-method-string-literal-names.js
index e87822259f..bc534cb4b9 100644
--- a/test/language/expressions/class/fields-after-same-line-method-string-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-method-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-gen-computed-names.js b/test/language/expressions/class/fields-after-same-line-static-async-gen-computed-names.js
index 24c474d7d2..e6c23736e8 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-gen-computed-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-gen-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, async-iteration]
+features: [computed-property-names, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-gen-computed-symbol-names.js b/test/language/expressions/class/fields-after-same-line-static-async-gen-computed-symbol-names.js
index f70583c970..2ea39e9b6b 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-gen-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-gen-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, async-iteration]
+features: [Symbol, computed-property-names, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-gen-literal-names.js b/test/language/expressions/class/fields-after-same-line-static-async-gen-literal-names.js
index 4869de1319..e4ebb76d4b 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-gen-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-gen-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-gen-private-names.js b/test/language/expressions/class/fields-after-same-line-static-async-gen-private-names.js
index f861963cfc..167504e93f 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-gen-private-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-gen-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class-fields-private, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-gen-static-computed-names.js b/test/language/expressions/class/fields-after-same-line-static-async-gen-static-computed-names.js
index 12a2fc26e2..ed5ebb9125 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-gen-static-computed-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-gen-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, async-iteration]
+features: [computed-property-names, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-gen-static-computed-symbol-names.js b/test/language/expressions/class/fields-after-same-line-static-async-gen-static-computed-symbol-names.js
index 6417868e8b..f14ea7dc83 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-gen-static-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-gen-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, async-iteration]
+features: [Symbol, computed-property-names, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-gen-static-literal-names.js b/test/language/expressions/class/fields-after-same-line-static-async-gen-static-literal-names.js
index 1c83c9d8c8..c536ba4760 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-gen-static-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-gen-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-gen-static-private-names.js b/test/language/expressions/class/fields-after-same-line-static-async-gen-static-private-names.js
index dea4c29d00..7d535ac73f 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-gen-static-private-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-gen-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class-fields-private, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-gen-string-literal-names.js b/test/language/expressions/class/fields-after-same-line-static-async-gen-string-literal-names.js
index abfec6f633..464838a511 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-gen-string-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-gen-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-method-computed-names.js b/test/language/expressions/class/fields-after-same-line-static-async-method-computed-names.js
index eb3b3bc6e5..8788d21cd6 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-method-computed-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-method-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, async-functions]
+features: [computed-property-names, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-method-computed-symbol-names.js b/test/language/expressions/class/fields-after-same-line-static-async-method-computed-symbol-names.js
index 2dc049dfad..dd0650e0e8 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-method-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-method-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, async-functions]
+features: [Symbol, computed-property-names, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-method-literal-names.js b/test/language/expressions/class/fields-after-same-line-static-async-method-literal-names.js
index b7bd95df0e..1e1af3d4dc 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-method-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-method-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-method-private-names.js b/test/language/expressions/class/fields-after-same-line-static-async-method-private-names.js
index 980aaeb44d..df6dd1aeb7 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-method-private-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-method-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class-fields-private, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-method-static-computed-names.js b/test/language/expressions/class/fields-after-same-line-static-async-method-static-computed-names.js
index e6bd13e379..9eeea58274 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-method-static-computed-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-method-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, async-functions]
+features: [computed-property-names, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-method-static-computed-symbol-names.js b/test/language/expressions/class/fields-after-same-line-static-async-method-static-computed-symbol-names.js
index fdab32bf28..3b0d1ff862 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-method-static-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-method-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, async-functions]
+features: [Symbol, computed-property-names, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-method-static-literal-names.js b/test/language/expressions/class/fields-after-same-line-static-async-method-static-literal-names.js
index df0d6c0b5d..b75f156063 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-method-static-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-method-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-method-static-private-names.js b/test/language/expressions/class/fields-after-same-line-static-async-method-static-private-names.js
index d897837323..5efb076bfe 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-method-static-private-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-method-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class-fields-private, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-async-method-string-literal-names.js b/test/language/expressions/class/fields-after-same-line-static-async-method-string-literal-names.js
index 7c5b9b4feb..25ce5be1f2 100644
--- a/test/language/expressions/class/fields-after-same-line-static-async-method-string-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-async-method-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-gen-computed-names.js b/test/language/expressions/class/fields-after-same-line-static-gen-computed-names.js
index ea238f8c43..90cb115906 100644
--- a/test/language/expressions/class/fields-after-same-line-static-gen-computed-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-gen-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, generators, class-fields]
+features: [computed-property-names, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-gen-computed-symbol-names.js b/test/language/expressions/class/fields-after-same-line-static-gen-computed-symbol-names.js
index a999bd70db..6aec78a03d 100644
--- a/test/language/expressions/class/fields-after-same-line-static-gen-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-gen-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, generators, class-fields]
+features: [Symbol, computed-property-names, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-gen-literal-names.js b/test/language/expressions/class/fields-after-same-line-static-gen-literal-names.js
index 58a549929a..2ba95a6f14 100644
--- a/test/language/expressions/class/fields-after-same-line-static-gen-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-gen-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-gen-private-names.js b/test/language/expressions/class/fields-after-same-line-static-gen-private-names.js
index 6fc4f7f0af..5883a5abc0 100644
--- a/test/language/expressions/class/fields-after-same-line-static-gen-private-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-gen-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [class-fields-private, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-gen-static-computed-names.js b/test/language/expressions/class/fields-after-same-line-static-gen-static-computed-names.js
index b1a0840c18..d16244fc58 100644
--- a/test/language/expressions/class/fields-after-same-line-static-gen-static-computed-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-gen-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, generators, class-fields]
+features: [computed-property-names, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-gen-static-computed-symbol-names.js b/test/language/expressions/class/fields-after-same-line-static-gen-static-computed-symbol-names.js
index f2e39fc7ae..40e7e89014 100644
--- a/test/language/expressions/class/fields-after-same-line-static-gen-static-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-gen-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, generators, class-fields]
+features: [Symbol, computed-property-names, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-gen-static-literal-names.js b/test/language/expressions/class/fields-after-same-line-static-gen-static-literal-names.js
index 04ae3ddd3e..68d70716dd 100644
--- a/test/language/expressions/class/fields-after-same-line-static-gen-static-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-gen-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-gen-static-private-names.js b/test/language/expressions/class/fields-after-same-line-static-gen-static-private-names.js
index bfbe8f01d4..03c13aff6a 100644
--- a/test/language/expressions/class/fields-after-same-line-static-gen-static-private-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-gen-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [class-fields-private, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-gen-string-literal-names.js b/test/language/expressions/class/fields-after-same-line-static-gen-string-literal-names.js
index 5d85381c85..1b83642272 100644
--- a/test/language/expressions/class/fields-after-same-line-static-gen-string-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-gen-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-method-computed-names.js b/test/language/expressions/class/fields-after-same-line-static-method-computed-names.js
index 4adfb5fa08..14055957b6 100644
--- a/test/language/expressions/class/fields-after-same-line-static-method-computed-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-method-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-method-computed-symbol-names.js b/test/language/expressions/class/fields-after-same-line-static-method-computed-symbol-names.js
index 5f513203c1..82f3a4eaed 100644
--- a/test/language/expressions/class/fields-after-same-line-static-method-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-method-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-method-literal-names.js b/test/language/expressions/class/fields-after-same-line-static-method-literal-names.js
index cc9905b8e5..59a4c9c354 100644
--- a/test/language/expressions/class/fields-after-same-line-static-method-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-method-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-method-private-names.js b/test/language/expressions/class/fields-after-same-line-static-method-private-names.js
index 124c47cbeb..48fe0208dd 100644
--- a/test/language/expressions/class/fields-after-same-line-static-method-private-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-method-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-method-static-computed-names.js b/test/language/expressions/class/fields-after-same-line-static-method-static-computed-names.js
index 9c7e097eef..a7af9730f5 100644
--- a/test/language/expressions/class/fields-after-same-line-static-method-static-computed-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-method-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-method-static-computed-symbol-names.js b/test/language/expressions/class/fields-after-same-line-static-method-static-computed-symbol-names.js
index ba37836fe3..5e87b77606 100644
--- a/test/language/expressions/class/fields-after-same-line-static-method-static-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-method-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-method-static-literal-names.js b/test/language/expressions/class/fields-after-same-line-static-method-static-literal-names.js
index b3a08eb916..49df930792 100644
--- a/test/language/expressions/class/fields-after-same-line-static-method-static-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-method-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-method-static-private-names.js b/test/language/expressions/class/fields-after-same-line-static-method-static-private-names.js
index 92c5a19f66..5d189f0ee2 100644
--- a/test/language/expressions/class/fields-after-same-line-static-method-static-private-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-method-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-after-same-line-static-method-string-literal-names.js b/test/language/expressions/class/fields-after-same-line-static-method-string-literal-names.js
index 9e13601f1f..d4d1e093b1 100644
--- a/test/language/expressions/class/fields-after-same-line-static-method-string-literal-names.js
+++ b/test/language/expressions/class/fields-after-same-line-static-method-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-arrow-fnc-init-err-contains-arguments.js b/test/language/expressions/class/fields-arrow-fnc-init-err-contains-arguments.js
index 878ab53cf7..0c06b7e61a 100644
--- a/test/language/expressions/class/fields-arrow-fnc-init-err-contains-arguments.js
+++ b/test/language/expressions/class/fields-arrow-fnc-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (arrow function expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields, arrow-function]
+features: [class, class-fields-public, arrow-function]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-arrow-fnc-init-err-contains-super.js b/test/language/expressions/class/fields-arrow-fnc-init-err-contains-super.js
index b746929920..5cb1e12a1f 100644
--- a/test/language/expressions/class/fields-arrow-fnc-init-err-contains-super.js
+++ b/test/language/expressions/class/fields-arrow-fnc-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (arrow function expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields, arrow-function]
+features: [class, class-fields-public, arrow-function]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-comp-name-init-err-contains-arguments.js b/test/language/expressions/class/fields-comp-name-init-err-contains-arguments.js
index 2b25a726c8..278859ea54 100644
--- a/test/language/expressions/class/fields-comp-name-init-err-contains-arguments.js
+++ b/test/language/expressions/class/fields-comp-name-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (computed ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-comp-name-init-err-contains-super.js b/test/language/expressions/class/fields-comp-name-init-err-contains-super.js
index b3716d81f6..80cabb6737 100644
--- a/test/language/expressions/class/fields-comp-name-init-err-contains-super.js
+++ b/test/language/expressions/class/fields-comp-name-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (computed ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-computed-name-propname-constructor.js b/test/language/expressions/class/fields-computed-name-propname-constructor.js
index d4fd6d12e9..0240885ef8 100644
--- a/test/language/expressions/class/fields-computed-name-propname-constructor.js
+++ b/test/language/expressions/class/fields-computed-name-propname-constructor.js
@@ -4,7 +4,7 @@
 /*---
 description: class fields forbid PropName 'constructor' (no early error -- PropName of ComputedPropertyName not forbidden value)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Static Semantics: PropName
diff --git a/test/language/expressions/class/fields-computed-name-toprimitive-symbol.js b/test/language/expressions/class/fields-computed-name-toprimitive-symbol.js
index 6798bcd380..b5091ccf8b 100644
--- a/test/language/expressions/class/fields-computed-name-toprimitive-symbol.js
+++ b/test/language/expressions/class/fields-computed-name-toprimitive-symbol.js
@@ -4,7 +4,7 @@
 /*---
 description: ToPrimitive evaluation in the ComputedPropertyName (field definitions in a class expression)
 esid: prod-FieldDefinition
-features: [computed-property-names, Symbol.toPrimitive, Symbol, class-fields]
+features: [computed-property-names, Symbol.toPrimitive, Symbol, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-computed-name-toprimitive.js b/test/language/expressions/class/fields-computed-name-toprimitive.js
index aa7186b426..d31d76da0b 100644
--- a/test/language/expressions/class/fields-computed-name-toprimitive.js
+++ b/test/language/expressions/class/fields-computed-name-toprimitive.js
@@ -4,7 +4,7 @@
 /*---
 description: ToPrimitive evaluation in the ComputedPropertyName (field definitions in a class expression)
 esid: prod-FieldDefinition
-features: [computed-property-names, Symbol.toPrimitive, class-fields]
+features: [computed-property-names, Symbol.toPrimitive, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-computed-variable-name-propname-constructor.js b/test/language/expressions/class/fields-computed-variable-name-propname-constructor.js
index 5ce537a3a7..bceceabf9e 100644
--- a/test/language/expressions/class/fields-computed-variable-name-propname-constructor.js
+++ b/test/language/expressions/class/fields-computed-variable-name-propname-constructor.js
@@ -4,7 +4,7 @@
 /*---
 description: class fields forbid PropName 'constructor' (no early error -- PropName of ComputedPropertyName not forbidden value)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Static Semantics: PropName
diff --git a/test/language/expressions/class/fields-computed-variable-name-static-propname-constructor.js b/test/language/expressions/class/fields-computed-variable-name-static-propname-constructor.js
index 62278fa5e2..b0926b084c 100644
--- a/test/language/expressions/class/fields-computed-variable-name-static-propname-constructor.js
+++ b/test/language/expressions/class/fields-computed-variable-name-static-propname-constructor.js
@@ -4,7 +4,7 @@
 /*---
 description: static class field forbid PropName 'constructor' (no early error -- PropName of ComputedPropertyName not forbidden value)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Static Semantics: PropName
diff --git a/test/language/expressions/class/fields-computed-variable-name-static-propname-prototype.js b/test/language/expressions/class/fields-computed-variable-name-static-propname-prototype.js
index 84d0bb0d4b..dfd2688c61 100644
--- a/test/language/expressions/class/fields-computed-variable-name-static-propname-prototype.js
+++ b/test/language/expressions/class/fields-computed-variable-name-static-propname-prototype.js
@@ -4,7 +4,7 @@
 /*---
 description: static class fields forbid PropName 'prototype' (no early error -- PropName of ComputedPropertyName not forbidden value)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Static Semantics: PropName
diff --git a/test/language/expressions/class/fields-ctor-called-after-fields-init.js b/test/language/expressions/class/fields-ctor-called-after-fields-init.js
index 1f5c86afe6..1ea88de76c 100644
--- a/test/language/expressions/class/fields-ctor-called-after-fields-init.js
+++ b/test/language/expressions/class/fields-ctor-called-after-fields-init.js
@@ -4,7 +4,7 @@
 /*---
 description: The constructor method is called after the fields are initalized (field definitions in a class expression)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     [[Construct]] ( argumentsList, newTarget)
diff --git a/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-supercall-1.js b/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-supercall-1.js
index 4eda5161c7..b80496c694 100644
--- a/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-supercall-1.js
+++ b/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-supercall-1.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super()['x']` in StatementList of eval (direct eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-supercall-2.js b/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-supercall-2.js
index a5faa2bfa6..e09d0a2b17 100644
--- a/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-supercall-2.js
+++ b/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-supercall-2.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super().x` in StatementList of eval (direct eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-supercall.js b/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-supercall.js
index 2b120e887c..4b4a50c00f 100644
--- a/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-supercall.js
+++ b/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-supercall.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super()` in StatementList of eval (direct eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-superproperty-1.js b/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-superproperty-1.js
index 88d6771c59..72049e20d9 100644
--- a/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-superproperty-1.js
+++ b/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-superproperty-1.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super.x` in StatementList of eval (direct eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-superproperty-2.js b/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-superproperty-2.js
index a678d0829f..2c0c1c52a5 100644
--- a/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-superproperty-2.js
+++ b/test/language/expressions/class/fields-derived-cls-direct-eval-err-contains-superproperty-2.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super['x']` in StatementList of eval (direct eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-supercall-1.js b/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-supercall-1.js
index 3359f37f77..325a0d040c 100644
--- a/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-supercall-1.js
+++ b/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-supercall-1.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super()['x']` in StatementList of eval (indirect eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-supercall-2.js b/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-supercall-2.js
index 2a8008219d..ea36cd9ed1 100644
--- a/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-supercall-2.js
+++ b/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-supercall-2.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super().x` in StatementList of eval (indirect eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-supercall.js b/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-supercall.js
index d9a3c12a12..2bb1d7f2ab 100644
--- a/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-supercall.js
+++ b/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-supercall.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super()` in StatementList of eval (indirect eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-superproperty-1.js b/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-superproperty-1.js
index f49c5f7438..36bf98e3e9 100644
--- a/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-superproperty-1.js
+++ b/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-superproperty-1.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super.x` in StatementList of eval (indirect eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-superproperty-2.js b/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-superproperty-2.js
index 0954958d1b..e636dc056b 100644
--- a/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-superproperty-2.js
+++ b/test/language/expressions/class/fields-derived-cls-indirect-eval-err-contains-superproperty-2.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super['x']` in StatementList of eval (indirect eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/expressions/class/fields-direct-eval-err-contains-arguments.js b/test/language/expressions/class/fields-direct-eval-err-contains-arguments.js
index 8258639dc5..b88fd3d1e2 100644
--- a/test/language/expressions/class/fields-direct-eval-err-contains-arguments.js
+++ b/test/language/expressions/class/fields-direct-eval-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `arguments` in StatementList of eval (direct eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/expressions/class/fields-direct-eval-err-contains-newtarget.js b/test/language/expressions/class/fields-direct-eval-err-contains-newtarget.js
index ba117941ed..18e70afd04 100644
--- a/test/language/expressions/class/fields-direct-eval-err-contains-newtarget.js
+++ b/test/language/expressions/class/fields-direct-eval-err-contains-newtarget.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `new.target` in StatementList of eval (direct eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/expressions/class/fields-equality-init-err-contains-arguments.js b/test/language/expressions/class/fields-equality-init-err-contains-arguments.js
index 3ec48af710..4a35247f99 100644
--- a/test/language/expressions/class/fields-equality-init-err-contains-arguments.js
+++ b/test/language/expressions/class/fields-equality-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (equality expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-equality-init-err-contains-super.js b/test/language/expressions/class/fields-equality-init-err-contains-super.js
index 356043abff..6c6ff036a5 100644
--- a/test/language/expressions/class/fields-equality-init-err-contains-super.js
+++ b/test/language/expressions/class/fields-equality-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (equality expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-evaluation-error-computed-name-referenceerror.js b/test/language/expressions/class/fields-evaluation-error-computed-name-referenceerror.js
index 49710f9eb4..55b8903ef2 100644
--- a/test/language/expressions/class/fields-evaluation-error-computed-name-referenceerror.js
+++ b/test/language/expressions/class/fields-evaluation-error-computed-name-referenceerror.js
@@ -4,7 +4,7 @@
 /*---
 description: ReferenceError evaluating a computed property name (field definitions in a class expression)
 esid: sec-runtime-semantics-classdefinitionevaluation
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 info: |
     Runtime Semantics: ClassDefinitionEvaluation
diff --git a/test/language/expressions/class/fields-evaluation-error-computed-name-toprimitive-err.js b/test/language/expressions/class/fields-evaluation-error-computed-name-toprimitive-err.js
index 9722a5e9ad..022302ffe8 100644
--- a/test/language/expressions/class/fields-evaluation-error-computed-name-toprimitive-err.js
+++ b/test/language/expressions/class/fields-evaluation-error-computed-name-toprimitive-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Custom error evaluating a computed property name (field definitions in a class expression)
 esid: sec-runtime-semantics-classdefinitionevaluation
-features: [computed-property-names, Symbol.toPrimitive, class-fields]
+features: [computed-property-names, Symbol.toPrimitive, class, class-fields-public]
 flags: [generated]
 info: |
     Runtime Semantics: ClassDefinitionEvaluation
diff --git a/test/language/expressions/class/fields-evaluation-error-computed-name-tostring-err.js b/test/language/expressions/class/fields-evaluation-error-computed-name-tostring-err.js
index a59c6c19d0..a62a628be0 100644
--- a/test/language/expressions/class/fields-evaluation-error-computed-name-tostring-err.js
+++ b/test/language/expressions/class/fields-evaluation-error-computed-name-tostring-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Custom error evaluating a computed property name (field definitions in a class expression)
 esid: sec-runtime-semantics-classdefinitionevaluation
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 info: |
     Runtime Semantics: ClassDefinitionEvaluation
diff --git a/test/language/expressions/class/fields-evaluation-error-computed-name-valueof-err.js b/test/language/expressions/class/fields-evaluation-error-computed-name-valueof-err.js
index de04dd3954..70cf9c1a42 100644
--- a/test/language/expressions/class/fields-evaluation-error-computed-name-valueof-err.js
+++ b/test/language/expressions/class/fields-evaluation-error-computed-name-valueof-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Custom error evaluating a computed property name (field definitions in a class expression)
 esid: sec-runtime-semantics-classdefinitionevaluation
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 info: |
     Runtime Semantics: ClassDefinitionEvaluation
diff --git a/test/language/expressions/class/fields-indirect-eval-err-contains-arguments.js b/test/language/expressions/class/fields-indirect-eval-err-contains-arguments.js
index 7c3fa400e0..dd3799efb6 100644
--- a/test/language/expressions/class/fields-indirect-eval-err-contains-arguments.js
+++ b/test/language/expressions/class/fields-indirect-eval-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `arguments` in StatementList of eval (indirect eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/expressions/class/fields-indirect-eval-err-contains-newtarget.js b/test/language/expressions/class/fields-indirect-eval-err-contains-newtarget.js
index 8f84637ef7..5334c569ba 100644
--- a/test/language/expressions/class/fields-indirect-eval-err-contains-newtarget.js
+++ b/test/language/expressions/class/fields-indirect-eval-err-contains-newtarget.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `new.target` in StatementList of eval (indirect eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/expressions/class/fields-init-err-evaluation.js b/test/language/expressions/class/fields-init-err-evaluation.js
index 00a8d6d037..dd81e90753 100644
--- a/test/language/expressions/class/fields-init-err-evaluation.js
+++ b/test/language/expressions/class/fields-init-err-evaluation.js
@@ -4,7 +4,7 @@
 /*---
 description: Return abrupt completion evaluating the field initializer (field definitions in a class expression)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     [[Construct]] ( argumentsList, newTarget)
diff --git a/test/language/expressions/class/fields-init-value-defined-after-class.js b/test/language/expressions/class/fields-init-value-defined-after-class.js
index cbf9b0b018..0a2f10d1eb 100644
--- a/test/language/expressions/class/fields-init-value-defined-after-class.js
+++ b/test/language/expressions/class/fields-init-value-defined-after-class.js
@@ -4,7 +4,7 @@
 /*---
 description: The initializer value is defined after the class evaluation (field definitions in a class expression)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-init-value-incremental.js b/test/language/expressions/class/fields-init-value-incremental.js
index 543d125223..f2d9cc5b5d 100644
--- a/test/language/expressions/class/fields-init-value-incremental.js
+++ b/test/language/expressions/class/fields-init-value-incremental.js
@@ -4,7 +4,7 @@
 /*---
 description: The initializer value is defined during the class instatiation (field definitions in a class expression)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-literal-name-init-err-contains-arguments.js b/test/language/expressions/class/fields-literal-name-init-err-contains-arguments.js
index 4689b509ba..aa8f5b44f3 100644
--- a/test/language/expressions/class/fields-literal-name-init-err-contains-arguments.js
+++ b/test/language/expressions/class/fields-literal-name-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (literal ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-literal-name-init-err-contains-super.js b/test/language/expressions/class/fields-literal-name-init-err-contains-super.js
index ea7f5af0ae..d17e086a12 100644
--- a/test/language/expressions/class/fields-literal-name-init-err-contains-super.js
+++ b/test/language/expressions/class/fields-literal-name-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (literal ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-literal-name-propname-constructor.js b/test/language/expressions/class/fields-literal-name-propname-constructor.js
index 55c48cc7b6..61ae16b4dd 100644
--- a/test/language/expressions/class/fields-literal-name-propname-constructor.js
+++ b/test/language/expressions/class/fields-literal-name-propname-constructor.js
@@ -4,7 +4,7 @@
 /*---
 description: class fields forbid PropName 'constructor' (early error -- PropName of IdentifierName is forbidden)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-literal-name-static-propname-constructor.js b/test/language/expressions/class/fields-literal-name-static-propname-constructor.js
index bf6120602c..68f53fa6b9 100644
--- a/test/language/expressions/class/fields-literal-name-static-propname-constructor.js
+++ b/test/language/expressions/class/fields-literal-name-static-propname-constructor.js
@@ -4,7 +4,7 @@
 /*---
 description: static class field forbid PropName 'constructor' (early error -- PropName of IdentifierName is forbidden)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-literal-name-static-propname-prototype.js b/test/language/expressions/class/fields-literal-name-static-propname-prototype.js
index 3f1833cd34..eeae36ff86 100644
--- a/test/language/expressions/class/fields-literal-name-static-propname-prototype.js
+++ b/test/language/expressions/class/fields-literal-name-static-propname-prototype.js
@@ -4,7 +4,7 @@
 /*---
 description: static class fields forbid PropName 'prototype' (early error -- PropName of IdentifierName is forbidden)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-multiple-definitions-computed-names.js b/test/language/expressions/class/fields-multiple-definitions-computed-names.js
index 46870180f0..8ed1b87597 100644
--- a/test/language/expressions/class/fields-multiple-definitions-computed-names.js
+++ b/test/language/expressions/class/fields-multiple-definitions-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-multiple-definitions-computed-symbol-names.js b/test/language/expressions/class/fields-multiple-definitions-computed-symbol-names.js
index b970a7ab08..4de6b2039a 100644
--- a/test/language/expressions/class/fields-multiple-definitions-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-multiple-definitions-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-multiple-definitions-literal-names.js b/test/language/expressions/class/fields-multiple-definitions-literal-names.js
index c939159f08..c6036f8514 100644
--- a/test/language/expressions/class/fields-multiple-definitions-literal-names.js
+++ b/test/language/expressions/class/fields-multiple-definitions-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-multiple-definitions-private-names.js b/test/language/expressions/class/fields-multiple-definitions-private-names.js
index 1c98ebe205..716b43beaf 100644
--- a/test/language/expressions/class/fields-multiple-definitions-private-names.js
+++ b/test/language/expressions/class/fields-multiple-definitions-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-multiple-definitions-static-computed-names.js b/test/language/expressions/class/fields-multiple-definitions-static-computed-names.js
index a5f10f8d53..92ef982b74 100644
--- a/test/language/expressions/class/fields-multiple-definitions-static-computed-names.js
+++ b/test/language/expressions/class/fields-multiple-definitions-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-multiple-definitions-static-computed-symbol-names.js b/test/language/expressions/class/fields-multiple-definitions-static-computed-symbol-names.js
index baafa5f208..65e1141c14 100644
--- a/test/language/expressions/class/fields-multiple-definitions-static-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-multiple-definitions-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-multiple-definitions-static-literal-names.js b/test/language/expressions/class/fields-multiple-definitions-static-literal-names.js
index ce3c25c9a7..84a77a9fa8 100644
--- a/test/language/expressions/class/fields-multiple-definitions-static-literal-names.js
+++ b/test/language/expressions/class/fields-multiple-definitions-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-multiple-definitions-static-private-names.js b/test/language/expressions/class/fields-multiple-definitions-static-private-names.js
index bdfe809be6..569bf4009f 100644
--- a/test/language/expressions/class/fields-multiple-definitions-static-private-names.js
+++ b/test/language/expressions/class/fields-multiple-definitions-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-multiple-definitions-string-literal-names.js b/test/language/expressions/class/fields-multiple-definitions-string-literal-names.js
index 97097bdf34..e2957ad149 100644
--- a/test/language/expressions/class/fields-multiple-definitions-string-literal-names.js
+++ b/test/language/expressions/class/fields-multiple-definitions-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-multiple-stacked-definitions-computed-names.js b/test/language/expressions/class/fields-multiple-stacked-definitions-computed-names.js
index 8e0f07b86f..d9e10fc185 100644
--- a/test/language/expressions/class/fields-multiple-stacked-definitions-computed-names.js
+++ b/test/language/expressions/class/fields-multiple-stacked-definitions-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-multiple-stacked-definitions-computed-symbol-names.js b/test/language/expressions/class/fields-multiple-stacked-definitions-computed-symbol-names.js
index 18a70467e2..d92d329622 100644
--- a/test/language/expressions/class/fields-multiple-stacked-definitions-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-multiple-stacked-definitions-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-multiple-stacked-definitions-literal-names.js b/test/language/expressions/class/fields-multiple-stacked-definitions-literal-names.js
index 96a174bb0e..f0a676b327 100644
--- a/test/language/expressions/class/fields-multiple-stacked-definitions-literal-names.js
+++ b/test/language/expressions/class/fields-multiple-stacked-definitions-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-multiple-stacked-definitions-private-names.js b/test/language/expressions/class/fields-multiple-stacked-definitions-private-names.js
index 4f912e83c5..6dc6095542 100644
--- a/test/language/expressions/class/fields-multiple-stacked-definitions-private-names.js
+++ b/test/language/expressions/class/fields-multiple-stacked-definitions-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-multiple-stacked-definitions-static-computed-names.js b/test/language/expressions/class/fields-multiple-stacked-definitions-static-computed-names.js
index 49a9e29935..9e68617be1 100644
--- a/test/language/expressions/class/fields-multiple-stacked-definitions-static-computed-names.js
+++ b/test/language/expressions/class/fields-multiple-stacked-definitions-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-multiple-stacked-definitions-static-computed-symbol-names.js b/test/language/expressions/class/fields-multiple-stacked-definitions-static-computed-symbol-names.js
index 413274ab4b..c994b78a6f 100644
--- a/test/language/expressions/class/fields-multiple-stacked-definitions-static-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-multiple-stacked-definitions-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-multiple-stacked-definitions-static-literal-names.js b/test/language/expressions/class/fields-multiple-stacked-definitions-static-literal-names.js
index 56425c0cbf..6219861ca6 100644
--- a/test/language/expressions/class/fields-multiple-stacked-definitions-static-literal-names.js
+++ b/test/language/expressions/class/fields-multiple-stacked-definitions-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-multiple-stacked-definitions-static-private-names.js b/test/language/expressions/class/fields-multiple-stacked-definitions-static-private-names.js
index e9601b9d61..21318d79cb 100644
--- a/test/language/expressions/class/fields-multiple-stacked-definitions-static-private-names.js
+++ b/test/language/expressions/class/fields-multiple-stacked-definitions-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-multiple-stacked-definitions-string-literal-names.js b/test/language/expressions/class/fields-multiple-stacked-definitions-string-literal-names.js
index c82598f1d3..90c6b7cd1b 100644
--- a/test/language/expressions/class/fields-multiple-stacked-definitions-string-literal-names.js
+++ b/test/language/expressions/class/fields-multiple-stacked-definitions-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-no-sc-line-method-computed-names.js b/test/language/expressions/class/fields-new-no-sc-line-method-computed-names.js
index c538990e12..e8113932c1 100644
--- a/test/language/expressions/class/fields-new-no-sc-line-method-computed-names.js
+++ b/test/language/expressions/class/fields-new-no-sc-line-method-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-no-sc-line-method-computed-symbol-names.js b/test/language/expressions/class/fields-new-no-sc-line-method-computed-symbol-names.js
index 141365de3e..3139836e1c 100644
--- a/test/language/expressions/class/fields-new-no-sc-line-method-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-new-no-sc-line-method-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-no-sc-line-method-literal-names.js b/test/language/expressions/class/fields-new-no-sc-line-method-literal-names.js
index b17720408b..477b4b21fd 100644
--- a/test/language/expressions/class/fields-new-no-sc-line-method-literal-names.js
+++ b/test/language/expressions/class/fields-new-no-sc-line-method-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-no-sc-line-method-private-names.js b/test/language/expressions/class/fields-new-no-sc-line-method-private-names.js
index 328530ea62..76048e7e03 100644
--- a/test/language/expressions/class/fields-new-no-sc-line-method-private-names.js
+++ b/test/language/expressions/class/fields-new-no-sc-line-method-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-no-sc-line-method-static-computed-names.js b/test/language/expressions/class/fields-new-no-sc-line-method-static-computed-names.js
index cf1bd801ac..464a71538d 100644
--- a/test/language/expressions/class/fields-new-no-sc-line-method-static-computed-names.js
+++ b/test/language/expressions/class/fields-new-no-sc-line-method-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-no-sc-line-method-static-computed-symbol-names.js b/test/language/expressions/class/fields-new-no-sc-line-method-static-computed-symbol-names.js
index bf3b03b990..c1a27011cc 100644
--- a/test/language/expressions/class/fields-new-no-sc-line-method-static-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-new-no-sc-line-method-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-no-sc-line-method-static-literal-names.js b/test/language/expressions/class/fields-new-no-sc-line-method-static-literal-names.js
index 37beaa5098..45e689f095 100644
--- a/test/language/expressions/class/fields-new-no-sc-line-method-static-literal-names.js
+++ b/test/language/expressions/class/fields-new-no-sc-line-method-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-no-sc-line-method-static-private-names.js b/test/language/expressions/class/fields-new-no-sc-line-method-static-private-names.js
index 35d8220560..ab4a9d7acd 100644
--- a/test/language/expressions/class/fields-new-no-sc-line-method-static-private-names.js
+++ b/test/language/expressions/class/fields-new-no-sc-line-method-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-no-sc-line-method-string-literal-names.js b/test/language/expressions/class/fields-new-no-sc-line-method-string-literal-names.js
index 1df04d0d38..3183a04453 100644
--- a/test/language/expressions/class/fields-new-no-sc-line-method-string-literal-names.js
+++ b/test/language/expressions/class/fields-new-no-sc-line-method-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-gen-computed-names.js b/test/language/expressions/class/fields-new-sc-line-gen-computed-names.js
index 921408397b..645cffcce4 100644
--- a/test/language/expressions/class/fields-new-sc-line-gen-computed-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-gen-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, generators]
+features: [computed-property-names, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-gen-computed-symbol-names.js b/test/language/expressions/class/fields-new-sc-line-gen-computed-symbol-names.js
index cced2d331f..2e3e813a50 100644
--- a/test/language/expressions/class/fields-new-sc-line-gen-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-gen-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, generators]
+features: [Symbol, computed-property-names, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-gen-literal-names.js b/test/language/expressions/class/fields-new-sc-line-gen-literal-names.js
index 8893e08341..2551403195 100644
--- a/test/language/expressions/class/fields-new-sc-line-gen-literal-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-gen-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-gen-private-names.js b/test/language/expressions/class/fields-new-sc-line-gen-private-names.js
index b60ce8c201..e72c8e6748 100644
--- a/test/language/expressions/class/fields-new-sc-line-gen-private-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-gen-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class-fields-private, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-gen-static-computed-names.js b/test/language/expressions/class/fields-new-sc-line-gen-static-computed-names.js
index c4bb6d5c8c..d2f0dc95bc 100644
--- a/test/language/expressions/class/fields-new-sc-line-gen-static-computed-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-gen-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, generators]
+features: [computed-property-names, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-gen-static-computed-symbol-names.js b/test/language/expressions/class/fields-new-sc-line-gen-static-computed-symbol-names.js
index 139abf81fe..909736bc13 100644
--- a/test/language/expressions/class/fields-new-sc-line-gen-static-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-gen-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, generators]
+features: [Symbol, computed-property-names, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-gen-static-literal-names.js b/test/language/expressions/class/fields-new-sc-line-gen-static-literal-names.js
index 3db5e090ef..ffaf1c5e19 100644
--- a/test/language/expressions/class/fields-new-sc-line-gen-static-literal-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-gen-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-gen-static-private-names.js b/test/language/expressions/class/fields-new-sc-line-gen-static-private-names.js
index c35d0b6ae5..e5db6f9d5b 100644
--- a/test/language/expressions/class/fields-new-sc-line-gen-static-private-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-gen-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class-fields-private, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-gen-string-literal-names.js b/test/language/expressions/class/fields-new-sc-line-gen-string-literal-names.js
index 49ebe2ed7b..751a5016a5 100644
--- a/test/language/expressions/class/fields-new-sc-line-gen-string-literal-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-gen-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-method-computed-names.js b/test/language/expressions/class/fields-new-sc-line-method-computed-names.js
index a8e93701f1..70f8062e69 100644
--- a/test/language/expressions/class/fields-new-sc-line-method-computed-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-method-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-method-computed-symbol-names.js b/test/language/expressions/class/fields-new-sc-line-method-computed-symbol-names.js
index dfff755ced..fdf9cf0f75 100644
--- a/test/language/expressions/class/fields-new-sc-line-method-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-method-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-method-literal-names.js b/test/language/expressions/class/fields-new-sc-line-method-literal-names.js
index b3cf832ab5..0f771745d3 100644
--- a/test/language/expressions/class/fields-new-sc-line-method-literal-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-method-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-method-private-names.js b/test/language/expressions/class/fields-new-sc-line-method-private-names.js
index 571902a94e..959a5874e4 100644
--- a/test/language/expressions/class/fields-new-sc-line-method-private-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-method-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-method-static-computed-names.js b/test/language/expressions/class/fields-new-sc-line-method-static-computed-names.js
index 204b8bb9ea..a0ffe35ee5 100644
--- a/test/language/expressions/class/fields-new-sc-line-method-static-computed-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-method-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-method-static-computed-symbol-names.js b/test/language/expressions/class/fields-new-sc-line-method-static-computed-symbol-names.js
index 6e8ffedd2d..04c6e69d49 100644
--- a/test/language/expressions/class/fields-new-sc-line-method-static-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-method-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-method-static-literal-names.js b/test/language/expressions/class/fields-new-sc-line-method-static-literal-names.js
index ad46b7dac2..93ca7e9f49 100644
--- a/test/language/expressions/class/fields-new-sc-line-method-static-literal-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-method-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-method-static-private-names.js b/test/language/expressions/class/fields-new-sc-line-method-static-private-names.js
index 2b1c9e0fa2..12b45da237 100644
--- a/test/language/expressions/class/fields-new-sc-line-method-static-private-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-method-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-new-sc-line-method-string-literal-names.js b/test/language/expressions/class/fields-new-sc-line-method-string-literal-names.js
index ee56fb939f..da01227204 100644
--- a/test/language/expressions/class/fields-new-sc-line-method-string-literal-names.js
+++ b/test/language/expressions/class/fields-new-sc-line-method-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-private-arrow-fnc-init-err-contains-arguments.js b/test/language/expressions/class/fields-private-arrow-fnc-init-err-contains-arguments.js
index 25382968ed..adef058843 100644
--- a/test/language/expressions/class/fields-private-arrow-fnc-init-err-contains-arguments.js
+++ b/test/language/expressions/class/fields-private-arrow-fnc-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (private field, arrow function expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields, arrow-function]
+features: [class, class-fields-public, arrow-function, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-private-arrow-fnc-init-err-contains-super.js b/test/language/expressions/class/fields-private-arrow-fnc-init-err-contains-super.js
index 0dc7da904a..ffc1bb073f 100644
--- a/test/language/expressions/class/fields-private-arrow-fnc-init-err-contains-super.js
+++ b/test/language/expressions/class/fields-private-arrow-fnc-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (private field, arrow function expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields, arrow-function]
+features: [class, class-fields-public, arrow-function, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-private-literal-name-init-err-contains-arguments.js b/test/language/expressions/class/fields-private-literal-name-init-err-contains-arguments.js
index 39b7cfbf88..209cf9c045 100644
--- a/test/language/expressions/class/fields-private-literal-name-init-err-contains-arguments.js
+++ b/test/language/expressions/class/fields-private-literal-name-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (ClassElementName PrivateName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-private-literal-name-init-err-contains-super.js b/test/language/expressions/class/fields-private-literal-name-init-err-contains-super.js
index 47d30a74fa..92dc9f86b6 100644
--- a/test/language/expressions/class/fields-private-literal-name-init-err-contains-super.js
+++ b/test/language/expressions/class/fields-private-literal-name-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (ClassElementName PrivateName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-private-ternary-init-err-contains-arguments.js b/test/language/expressions/class/fields-private-ternary-init-err-contains-arguments.js
index 8e32d8ebbd..1be95bff00 100644
--- a/test/language/expressions/class/fields-private-ternary-init-err-contains-arguments.js
+++ b/test/language/expressions/class/fields-private-ternary-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (private field, ternary expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-private-ternary-init-err-contains-super.js b/test/language/expressions/class/fields-private-ternary-init-err-contains-super.js
index cf779b02fd..9623266e3e 100644
--- a/test/language/expressions/class/fields-private-ternary-init-err-contains-super.js
+++ b/test/language/expressions/class/fields-private-ternary-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (private field, ternary expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-private-typeof-init-err-contains-arguments.js b/test/language/expressions/class/fields-private-typeof-init-err-contains-arguments.js
index 20bf095082..fa387c5541 100644
--- a/test/language/expressions/class/fields-private-typeof-init-err-contains-arguments.js
+++ b/test/language/expressions/class/fields-private-typeof-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (private field, typeof expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-private-typeof-init-err-contains-super.js b/test/language/expressions/class/fields-private-typeof-init-err-contains-super.js
index 895f433d0a..e6b98810e2 100644
--- a/test/language/expressions/class/fields-private-typeof-init-err-contains-super.js
+++ b/test/language/expressions/class/fields-private-typeof-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (private field, typeof expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-redeclaration-symbol.js b/test/language/expressions/class/fields-redeclaration-symbol.js
index 67fcf3c687..4e42bf38d6 100644
--- a/test/language/expressions/class/fields-redeclaration-symbol.js
+++ b/test/language/expressions/class/fields-redeclaration-symbol.js
@@ -4,7 +4,7 @@
 /*---
 description: Redeclaration of public fields with the same name (field definitions in a class expression)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js, compareArray.js]
 info: |
diff --git a/test/language/expressions/class/fields-redeclaration.js b/test/language/expressions/class/fields-redeclaration.js
index 400cf22108..24234ce21b 100644
--- a/test/language/expressions/class/fields-redeclaration.js
+++ b/test/language/expressions/class/fields-redeclaration.js
@@ -4,7 +4,7 @@
 /*---
 description: Redeclaration of public fields with the same name (field definitions in a class expression)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js, compareArray.js]
 info: |
diff --git a/test/language/expressions/class/fields-regular-definitions-computed-names.js b/test/language/expressions/class/fields-regular-definitions-computed-names.js
index 45ccb1fd5a..8b59a90cba 100644
--- a/test/language/expressions/class/fields-regular-definitions-computed-names.js
+++ b/test/language/expressions/class/fields-regular-definitions-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-regular-definitions-computed-symbol-names.js b/test/language/expressions/class/fields-regular-definitions-computed-symbol-names.js
index 580d7f3688..3347897180 100644
--- a/test/language/expressions/class/fields-regular-definitions-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-regular-definitions-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-regular-definitions-literal-names.js b/test/language/expressions/class/fields-regular-definitions-literal-names.js
index 8f9f3e0bb9..6bcbfd9de5 100644
--- a/test/language/expressions/class/fields-regular-definitions-literal-names.js
+++ b/test/language/expressions/class/fields-regular-definitions-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-regular-definitions-private-names.js b/test/language/expressions/class/fields-regular-definitions-private-names.js
index 7e4b0bab96..86a26026a4 100644
--- a/test/language/expressions/class/fields-regular-definitions-private-names.js
+++ b/test/language/expressions/class/fields-regular-definitions-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 info: |
     ClassElement:
diff --git a/test/language/expressions/class/fields-regular-definitions-static-computed-names.js b/test/language/expressions/class/fields-regular-definitions-static-computed-names.js
index 93aef932ec..d2ccde7dab 100644
--- a/test/language/expressions/class/fields-regular-definitions-static-computed-names.js
+++ b/test/language/expressions/class/fields-regular-definitions-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-regular-definitions-static-computed-symbol-names.js b/test/language/expressions/class/fields-regular-definitions-static-computed-symbol-names.js
index 4e30b2984d..c6048d94bc 100644
--- a/test/language/expressions/class/fields-regular-definitions-static-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-regular-definitions-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-regular-definitions-static-literal-names.js b/test/language/expressions/class/fields-regular-definitions-static-literal-names.js
index d541b7a177..8881f62da9 100644
--- a/test/language/expressions/class/fields-regular-definitions-static-literal-names.js
+++ b/test/language/expressions/class/fields-regular-definitions-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-regular-definitions-static-private-names.js b/test/language/expressions/class/fields-regular-definitions-static-private-names.js
index 15bf4f706a..ca118a4844 100644
--- a/test/language/expressions/class/fields-regular-definitions-static-private-names.js
+++ b/test/language/expressions/class/fields-regular-definitions-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 info: |
     ClassElement:
diff --git a/test/language/expressions/class/fields-regular-definitions-string-literal-names.js b/test/language/expressions/class/fields-regular-definitions-string-literal-names.js
index 29d9cb57c4..d0afcaa36d 100644
--- a/test/language/expressions/class/fields-regular-definitions-string-literal-names.js
+++ b/test/language/expressions/class/fields-regular-definitions-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-gen-computed-names.js b/test/language/expressions/class/fields-same-line-async-gen-computed-names.js
index f349ea98ad..527601afad 100644
--- a/test/language/expressions/class/fields-same-line-async-gen-computed-names.js
+++ b/test/language/expressions/class/fields-same-line-async-gen-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, async-iteration]
+features: [computed-property-names, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-gen-computed-symbol-names.js b/test/language/expressions/class/fields-same-line-async-gen-computed-symbol-names.js
index bf0837f77f..294259667e 100644
--- a/test/language/expressions/class/fields-same-line-async-gen-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-same-line-async-gen-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, async-iteration]
+features: [Symbol, computed-property-names, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-gen-literal-names.js b/test/language/expressions/class/fields-same-line-async-gen-literal-names.js
index 1c4d82161e..0796a955c9 100644
--- a/test/language/expressions/class/fields-same-line-async-gen-literal-names.js
+++ b/test/language/expressions/class/fields-same-line-async-gen-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-gen-private-names.js b/test/language/expressions/class/fields-same-line-async-gen-private-names.js
index 6dd71a32d3..db0ed84992 100644
--- a/test/language/expressions/class/fields-same-line-async-gen-private-names.js
+++ b/test/language/expressions/class/fields-same-line-async-gen-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class-fields-private, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-gen-static-computed-names.js b/test/language/expressions/class/fields-same-line-async-gen-static-computed-names.js
index 64c8a527a5..854b7f0dd0 100644
--- a/test/language/expressions/class/fields-same-line-async-gen-static-computed-names.js
+++ b/test/language/expressions/class/fields-same-line-async-gen-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, async-iteration]
+features: [computed-property-names, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-gen-static-computed-symbol-names.js b/test/language/expressions/class/fields-same-line-async-gen-static-computed-symbol-names.js
index fa3749b0a7..ea307cbfd1 100644
--- a/test/language/expressions/class/fields-same-line-async-gen-static-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-same-line-async-gen-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, async-iteration]
+features: [Symbol, computed-property-names, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-gen-static-literal-names.js b/test/language/expressions/class/fields-same-line-async-gen-static-literal-names.js
index 6e9a403f49..ec1e03715b 100644
--- a/test/language/expressions/class/fields-same-line-async-gen-static-literal-names.js
+++ b/test/language/expressions/class/fields-same-line-async-gen-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-gen-static-private-names.js b/test/language/expressions/class/fields-same-line-async-gen-static-private-names.js
index f4b53fe2f0..228f0842bc 100644
--- a/test/language/expressions/class/fields-same-line-async-gen-static-private-names.js
+++ b/test/language/expressions/class/fields-same-line-async-gen-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class-fields-private, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-gen-string-literal-names.js b/test/language/expressions/class/fields-same-line-async-gen-string-literal-names.js
index d4e044bd5c..b72f2c2454 100644
--- a/test/language/expressions/class/fields-same-line-async-gen-string-literal-names.js
+++ b/test/language/expressions/class/fields-same-line-async-gen-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-method-computed-names.js b/test/language/expressions/class/fields-same-line-async-method-computed-names.js
index 203bb2e13d..0de78443c7 100644
--- a/test/language/expressions/class/fields-same-line-async-method-computed-names.js
+++ b/test/language/expressions/class/fields-same-line-async-method-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, async-functions]
+features: [computed-property-names, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-method-computed-symbol-names.js b/test/language/expressions/class/fields-same-line-async-method-computed-symbol-names.js
index 5770ba5ebb..1519d8d04f 100644
--- a/test/language/expressions/class/fields-same-line-async-method-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-same-line-async-method-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, async-functions]
+features: [Symbol, computed-property-names, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-method-literal-names.js b/test/language/expressions/class/fields-same-line-async-method-literal-names.js
index 350684424c..11b3ff42a1 100644
--- a/test/language/expressions/class/fields-same-line-async-method-literal-names.js
+++ b/test/language/expressions/class/fields-same-line-async-method-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-method-private-names.js b/test/language/expressions/class/fields-same-line-async-method-private-names.js
index db9f61320f..c357bc6637 100644
--- a/test/language/expressions/class/fields-same-line-async-method-private-names.js
+++ b/test/language/expressions/class/fields-same-line-async-method-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class-fields-private, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-method-static-computed-names.js b/test/language/expressions/class/fields-same-line-async-method-static-computed-names.js
index 504482b200..6ae4cc7ff9 100644
--- a/test/language/expressions/class/fields-same-line-async-method-static-computed-names.js
+++ b/test/language/expressions/class/fields-same-line-async-method-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, async-functions]
+features: [computed-property-names, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-method-static-computed-symbol-names.js b/test/language/expressions/class/fields-same-line-async-method-static-computed-symbol-names.js
index 5b9362231f..1852562e08 100644
--- a/test/language/expressions/class/fields-same-line-async-method-static-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-same-line-async-method-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, async-functions]
+features: [Symbol, computed-property-names, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-method-static-literal-names.js b/test/language/expressions/class/fields-same-line-async-method-static-literal-names.js
index dd9ffc174a..411244ffd3 100644
--- a/test/language/expressions/class/fields-same-line-async-method-static-literal-names.js
+++ b/test/language/expressions/class/fields-same-line-async-method-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-method-static-private-names.js b/test/language/expressions/class/fields-same-line-async-method-static-private-names.js
index 3ee8358cb8..688e0d1ff8 100644
--- a/test/language/expressions/class/fields-same-line-async-method-static-private-names.js
+++ b/test/language/expressions/class/fields-same-line-async-method-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class-fields-private, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-async-method-string-literal-names.js b/test/language/expressions/class/fields-same-line-async-method-string-literal-names.js
index 4cc3a30e4e..9bc2eac679 100644
--- a/test/language/expressions/class/fields-same-line-async-method-string-literal-names.js
+++ b/test/language/expressions/class/fields-same-line-async-method-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-gen-computed-names.js b/test/language/expressions/class/fields-same-line-gen-computed-names.js
index 0ce592e419..3306f8e5c2 100644
--- a/test/language/expressions/class/fields-same-line-gen-computed-names.js
+++ b/test/language/expressions/class/fields-same-line-gen-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, generators]
+features: [computed-property-names, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-gen-computed-symbol-names.js b/test/language/expressions/class/fields-same-line-gen-computed-symbol-names.js
index ddc7ac06bf..8f038bfb12 100644
--- a/test/language/expressions/class/fields-same-line-gen-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-same-line-gen-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, generators]
+features: [Symbol, computed-property-names, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-gen-literal-names.js b/test/language/expressions/class/fields-same-line-gen-literal-names.js
index 9922b866f9..d59e9e2b89 100644
--- a/test/language/expressions/class/fields-same-line-gen-literal-names.js
+++ b/test/language/expressions/class/fields-same-line-gen-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-gen-private-names.js b/test/language/expressions/class/fields-same-line-gen-private-names.js
index 2190ae60f9..dad18ab09c 100644
--- a/test/language/expressions/class/fields-same-line-gen-private-names.js
+++ b/test/language/expressions/class/fields-same-line-gen-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class-fields-private, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-gen-static-computed-names.js b/test/language/expressions/class/fields-same-line-gen-static-computed-names.js
index cba4b5ebbf..c420802c9a 100644
--- a/test/language/expressions/class/fields-same-line-gen-static-computed-names.js
+++ b/test/language/expressions/class/fields-same-line-gen-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, generators]
+features: [computed-property-names, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-gen-static-computed-symbol-names.js b/test/language/expressions/class/fields-same-line-gen-static-computed-symbol-names.js
index fea6a763a5..9f8d294a33 100644
--- a/test/language/expressions/class/fields-same-line-gen-static-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-same-line-gen-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, generators]
+features: [Symbol, computed-property-names, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-gen-static-literal-names.js b/test/language/expressions/class/fields-same-line-gen-static-literal-names.js
index 7fda39fa3a..1d767235b2 100644
--- a/test/language/expressions/class/fields-same-line-gen-static-literal-names.js
+++ b/test/language/expressions/class/fields-same-line-gen-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-gen-static-private-names.js b/test/language/expressions/class/fields-same-line-gen-static-private-names.js
index 22681d821c..6d6b79f910 100644
--- a/test/language/expressions/class/fields-same-line-gen-static-private-names.js
+++ b/test/language/expressions/class/fields-same-line-gen-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class-fields-private, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-gen-string-literal-names.js b/test/language/expressions/class/fields-same-line-gen-string-literal-names.js
index 980e7b08d6..1765683b65 100644
--- a/test/language/expressions/class/fields-same-line-gen-string-literal-names.js
+++ b/test/language/expressions/class/fields-same-line-gen-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-method-computed-names.js b/test/language/expressions/class/fields-same-line-method-computed-names.js
index a4a4991fa4..f598057726 100644
--- a/test/language/expressions/class/fields-same-line-method-computed-names.js
+++ b/test/language/expressions/class/fields-same-line-method-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-method-computed-symbol-names.js b/test/language/expressions/class/fields-same-line-method-computed-symbol-names.js
index ac626fbc52..e063a1ab9b 100644
--- a/test/language/expressions/class/fields-same-line-method-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-same-line-method-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-method-literal-names.js b/test/language/expressions/class/fields-same-line-method-literal-names.js
index 6b54c7cff7..70c7af3f8d 100644
--- a/test/language/expressions/class/fields-same-line-method-literal-names.js
+++ b/test/language/expressions/class/fields-same-line-method-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-method-private-names.js b/test/language/expressions/class/fields-same-line-method-private-names.js
index a61bc9d62f..354f77ec47 100644
--- a/test/language/expressions/class/fields-same-line-method-private-names.js
+++ b/test/language/expressions/class/fields-same-line-method-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-method-static-computed-names.js b/test/language/expressions/class/fields-same-line-method-static-computed-names.js
index e48d3ffcc0..1cdb285ce9 100644
--- a/test/language/expressions/class/fields-same-line-method-static-computed-names.js
+++ b/test/language/expressions/class/fields-same-line-method-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-method-static-computed-symbol-names.js b/test/language/expressions/class/fields-same-line-method-static-computed-symbol-names.js
index 0471d35944..b385bd8cc3 100644
--- a/test/language/expressions/class/fields-same-line-method-static-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-same-line-method-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-method-static-literal-names.js b/test/language/expressions/class/fields-same-line-method-static-literal-names.js
index 865035eb7b..5f89385b7c 100644
--- a/test/language/expressions/class/fields-same-line-method-static-literal-names.js
+++ b/test/language/expressions/class/fields-same-line-method-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-method-static-private-names.js b/test/language/expressions/class/fields-same-line-method-static-private-names.js
index ec145f68ce..1dd63147e5 100644
--- a/test/language/expressions/class/fields-same-line-method-static-private-names.js
+++ b/test/language/expressions/class/fields-same-line-method-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-same-line-method-string-literal-names.js b/test/language/expressions/class/fields-same-line-method-string-literal-names.js
index 7c33c6c85b..e0823a9cd1 100644
--- a/test/language/expressions/class/fields-same-line-method-string-literal-names.js
+++ b/test/language/expressions/class/fields-same-line-method-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-static-comp-name-init-err-contains-arguments.js b/test/language/expressions/class/fields-static-comp-name-init-err-contains-arguments.js
index da3e9b35bc..b844f22e12 100644
--- a/test/language/expressions/class/fields-static-comp-name-init-err-contains-arguments.js
+++ b/test/language/expressions/class/fields-static-comp-name-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (static computed ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-static-comp-name-init-err-contains-super.js b/test/language/expressions/class/fields-static-comp-name-init-err-contains-super.js
index 8869bc253c..d90ee31d66 100644
--- a/test/language/expressions/class/fields-static-comp-name-init-err-contains-super.js
+++ b/test/language/expressions/class/fields-static-comp-name-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (static computed ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-static-computed-name-toprimitive-symbol.js b/test/language/expressions/class/fields-static-computed-name-toprimitive-symbol.js
index 62208b26cb..b868295db8 100644
--- a/test/language/expressions/class/fields-static-computed-name-toprimitive-symbol.js
+++ b/test/language/expressions/class/fields-static-computed-name-toprimitive-symbol.js
@@ -4,7 +4,7 @@
 /*---
 description: ToPrimitive evaluation in the ComputedPropertyName (field definitions in a class expression)
 esid: prod-FieldDefinition
-features: [computed-property-names, Symbol.toPrimitive, Symbol, class-fields]
+features: [computed-property-names, Symbol.toPrimitive, Symbol, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-static-computed-name-toprimitive.js b/test/language/expressions/class/fields-static-computed-name-toprimitive.js
index cfce643555..542791039c 100644
--- a/test/language/expressions/class/fields-static-computed-name-toprimitive.js
+++ b/test/language/expressions/class/fields-static-computed-name-toprimitive.js
@@ -4,7 +4,7 @@
 /*---
 description: ToPrimitive evaluation in the ComputedPropertyName (field definitions in a class expression)
 esid: prod-FieldDefinition
-features: [computed-property-names, Symbol.toPrimitive, class-fields]
+features: [computed-property-names, Symbol.toPrimitive, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-static-literal-init-err-contains-arguments.js b/test/language/expressions/class/fields-static-literal-init-err-contains-arguments.js
index a466e6b330..f299e42c26 100644
--- a/test/language/expressions/class/fields-static-literal-init-err-contains-arguments.js
+++ b/test/language/expressions/class/fields-static-literal-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (static literal ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-static-literal-init-err-contains-super.js b/test/language/expressions/class/fields-static-literal-init-err-contains-super.js
index 3d2bcd3985..97db70a41a 100644
--- a/test/language/expressions/class/fields-static-literal-init-err-contains-super.js
+++ b/test/language/expressions/class/fields-static-literal-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (static literal ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-static-private-init-err-contains-arguments.js b/test/language/expressions/class/fields-static-private-init-err-contains-arguments.js
index 6c91c4cfe2..d98b9b0aaf 100644
--- a/test/language/expressions/class/fields-static-private-init-err-contains-arguments.js
+++ b/test/language/expressions/class/fields-static-private-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (static PrivateName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-static-private-init-err-contains-super.js b/test/language/expressions/class/fields-static-private-init-err-contains-super.js
index a6aa2a00e8..7a3fbfd5e8 100644
--- a/test/language/expressions/class/fields-static-private-init-err-contains-super.js
+++ b/test/language/expressions/class/fields-static-private-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (static PrivateName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-static-redeclaration-symbol.js b/test/language/expressions/class/fields-static-redeclaration-symbol.js
index bc2546e963..c3aaa7bc30 100644
--- a/test/language/expressions/class/fields-static-redeclaration-symbol.js
+++ b/test/language/expressions/class/fields-static-redeclaration-symbol.js
@@ -4,7 +4,7 @@
 /*---
 description: Redeclaration of public static fields with the same name (field definitions in a class expression)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js, compareArray.js]
 info: |
diff --git a/test/language/expressions/class/fields-static-redeclaration.js b/test/language/expressions/class/fields-static-redeclaration.js
index 1c93ba0611..8d81f7f1dc 100644
--- a/test/language/expressions/class/fields-static-redeclaration.js
+++ b/test/language/expressions/class/fields-static-redeclaration.js
@@ -4,7 +4,7 @@
 /*---
 description: Redeclaration of public static fields with the same name (field definitions in a class expression)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js, compareArray.js]
 info: |
diff --git a/test/language/expressions/class/fields-static-string-literal-name-init-err-contains-arguments.js b/test/language/expressions/class/fields-static-string-literal-name-init-err-contains-arguments.js
index 5b27331adf..d4d736ef9b 100644
--- a/test/language/expressions/class/fields-static-string-literal-name-init-err-contains-arguments.js
+++ b/test/language/expressions/class/fields-static-string-literal-name-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (static string literal ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-static-string-literal-name-init-err-contains-super.js b/test/language/expressions/class/fields-static-string-literal-name-init-err-contains-super.js
index 5ec19a80c6..ed46f9eb9d 100644
--- a/test/language/expressions/class/fields-static-string-literal-name-init-err-contains-super.js
+++ b/test/language/expressions/class/fields-static-string-literal-name-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (static string literal ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-string-literal-name-init-err-contains-arguments.js b/test/language/expressions/class/fields-string-literal-name-init-err-contains-arguments.js
index 22caa5a0e0..9cf6504fbd 100644
--- a/test/language/expressions/class/fields-string-literal-name-init-err-contains-arguments.js
+++ b/test/language/expressions/class/fields-string-literal-name-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (string literal ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-string-literal-name-init-err-contains-super.js b/test/language/expressions/class/fields-string-literal-name-init-err-contains-super.js
index 90dbfc87e9..0e87f2126b 100644
--- a/test/language/expressions/class/fields-string-literal-name-init-err-contains-super.js
+++ b/test/language/expressions/class/fields-string-literal-name-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (string literal ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-string-name-propname-constructor.js b/test/language/expressions/class/fields-string-name-propname-constructor.js
index 781555ee65..92674e7f2f 100644
--- a/test/language/expressions/class/fields-string-name-propname-constructor.js
+++ b/test/language/expressions/class/fields-string-name-propname-constructor.js
@@ -4,7 +4,7 @@
 /*---
 description: class fields forbid PropName 'constructor' (early error -- PropName of StringLiteral is forbidden)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-string-name-static-propname-constructor.js b/test/language/expressions/class/fields-string-name-static-propname-constructor.js
index 0cc4db117c..ba3d61da94 100644
--- a/test/language/expressions/class/fields-string-name-static-propname-constructor.js
+++ b/test/language/expressions/class/fields-string-name-static-propname-constructor.js
@@ -4,7 +4,7 @@
 /*---
 description: static class field forbid PropName 'constructor' (early error -- PropName of StringLiteral is forbidden)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-string-name-static-propname-prototype.js b/test/language/expressions/class/fields-string-name-static-propname-prototype.js
index 4fa7a5deff..318366aaec 100644
--- a/test/language/expressions/class/fields-string-name-static-propname-prototype.js
+++ b/test/language/expressions/class/fields-string-name-static-propname-prototype.js
@@ -4,7 +4,7 @@
 /*---
 description: static class fields forbid PropName 'prototype' (early error -- PropName of StringLiteral is forbidden)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-ternary-init-err-contains-arguments.js b/test/language/expressions/class/fields-ternary-init-err-contains-arguments.js
index 83747f5670..70c7e5ee54 100644
--- a/test/language/expressions/class/fields-ternary-init-err-contains-arguments.js
+++ b/test/language/expressions/class/fields-ternary-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (ternary expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-ternary-init-err-contains-super.js b/test/language/expressions/class/fields-ternary-init-err-contains-super.js
index 7ecd82fe25..48061869bd 100644
--- a/test/language/expressions/class/fields-ternary-init-err-contains-super.js
+++ b/test/language/expressions/class/fields-ternary-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (ternary expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-typeof-init-err-contains-arguments.js b/test/language/expressions/class/fields-typeof-init-err-contains-arguments.js
index adcc4542f2..5eac1fa7a2 100644
--- a/test/language/expressions/class/fields-typeof-init-err-contains-arguments.js
+++ b/test/language/expressions/class/fields-typeof-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (typeof expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-typeof-init-err-contains-super.js b/test/language/expressions/class/fields-typeof-init-err-contains-super.js
index 0ad4a74ebb..cd478ddada 100644
--- a/test/language/expressions/class/fields-typeof-init-err-contains-super.js
+++ b/test/language/expressions/class/fields-typeof-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (typeof expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/expressions/class/fields-wrapped-in-sc-computed-names.js b/test/language/expressions/class/fields-wrapped-in-sc-computed-names.js
index 4a43e57de0..657f2afece 100644
--- a/test/language/expressions/class/fields-wrapped-in-sc-computed-names.js
+++ b/test/language/expressions/class/fields-wrapped-in-sc-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-wrapped-in-sc-computed-symbol-names.js b/test/language/expressions/class/fields-wrapped-in-sc-computed-symbol-names.js
index c6b74eff53..ff4fc8ae92 100644
--- a/test/language/expressions/class/fields-wrapped-in-sc-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-wrapped-in-sc-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-wrapped-in-sc-literal-names.js b/test/language/expressions/class/fields-wrapped-in-sc-literal-names.js
index 1c4d78e44c..a12d79c9c4 100644
--- a/test/language/expressions/class/fields-wrapped-in-sc-literal-names.js
+++ b/test/language/expressions/class/fields-wrapped-in-sc-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-wrapped-in-sc-private-names.js b/test/language/expressions/class/fields-wrapped-in-sc-private-names.js
index bb268effc2..cb551e4c88 100644
--- a/test/language/expressions/class/fields-wrapped-in-sc-private-names.js
+++ b/test/language/expressions/class/fields-wrapped-in-sc-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 info: |
     ClassElement:
diff --git a/test/language/expressions/class/fields-wrapped-in-sc-static-computed-names.js b/test/language/expressions/class/fields-wrapped-in-sc-static-computed-names.js
index ee6921530e..36c6fa44a3 100644
--- a/test/language/expressions/class/fields-wrapped-in-sc-static-computed-names.js
+++ b/test/language/expressions/class/fields-wrapped-in-sc-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-wrapped-in-sc-static-computed-symbol-names.js b/test/language/expressions/class/fields-wrapped-in-sc-static-computed-symbol-names.js
index 5961961f99..1f93f5e6de 100644
--- a/test/language/expressions/class/fields-wrapped-in-sc-static-computed-symbol-names.js
+++ b/test/language/expressions/class/fields-wrapped-in-sc-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-wrapped-in-sc-static-literal-names.js b/test/language/expressions/class/fields-wrapped-in-sc-static-literal-names.js
index f5619cdd90..c88ad83d6f 100644
--- a/test/language/expressions/class/fields-wrapped-in-sc-static-literal-names.js
+++ b/test/language/expressions/class/fields-wrapped-in-sc-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/expressions/class/fields-wrapped-in-sc-static-private-names.js b/test/language/expressions/class/fields-wrapped-in-sc-static-private-names.js
index 131ef639fb..95b1541431 100644
--- a/test/language/expressions/class/fields-wrapped-in-sc-static-private-names.js
+++ b/test/language/expressions/class/fields-wrapped-in-sc-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 info: |
     ClassElement:
diff --git a/test/language/expressions/class/fields-wrapped-in-sc-string-literal-names.js b/test/language/expressions/class/fields-wrapped-in-sc-string-literal-names.js
index d5e192a78e..1260883fe3 100644
--- a/test/language/expressions/class/fields-wrapped-in-sc-string-literal-names.js
+++ b/test/language/expressions/class/fields-wrapped-in-sc-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/err-field-delete-call-expression-privatename.js b/test/language/statements/class/err-field-delete-call-expression-privatename.js
index 359c1a7559..bed8c5dcc4 100644
--- a/test/language/statements/class/err-field-delete-call-expression-privatename.js
+++ b/test/language/statements/class/err-field-delete-call-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on call expressions . privatename (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/err-field-delete-covered-call-expression-privatename.js b/test/language/statements/class/err-field-delete-covered-call-expression-privatename.js
index 21afe2958c..1b53022bc8 100644
--- a/test/language/statements/class/err-field-delete-covered-call-expression-privatename.js
+++ b/test/language/statements/class/err-field-delete-covered-call-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on call expressions . privatename (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/err-field-delete-covered-member-expression-privatename.js b/test/language/statements/class/err-field-delete-covered-member-expression-privatename.js
index d1042e1a42..bdd3d44b26 100644
--- a/test/language/statements/class/err-field-delete-covered-member-expression-privatename.js
+++ b/test/language/statements/class/err-field-delete-covered-member-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on member expressions . privatename (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/err-field-delete-member-expression-privatename.js b/test/language/statements/class/err-field-delete-member-expression-privatename.js
index 57dea8b7ab..f9cd9de2a8 100644
--- a/test/language/statements/class/err-field-delete-member-expression-privatename.js
+++ b/test/language/statements/class/err-field-delete-member-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on member expressions . privatename (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/err-field-delete-twice-covered-call-expression-privatename.js b/test/language/statements/class/err-field-delete-twice-covered-call-expression-privatename.js
index f142c19703..f247c186a1 100644
--- a/test/language/statements/class/err-field-delete-twice-covered-call-expression-privatename.js
+++ b/test/language/statements/class/err-field-delete-twice-covered-call-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on call expressions . privatename (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/err-field-delete-twice-covered-member-expression-privatename.js b/test/language/statements/class/err-field-delete-twice-covered-member-expression-privatename.js
index 41fea77b43..ca5e48afe3 100644
--- a/test/language/statements/class/err-field-delete-twice-covered-member-expression-privatename.js
+++ b/test/language/statements/class/err-field-delete-twice-covered-member-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on member expressions . privatename (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/err-method-delete-call-expression-privatename.js b/test/language/statements/class/err-method-delete-call-expression-privatename.js
index f55917d582..2d4937d416 100644
--- a/test/language/statements/class/err-method-delete-call-expression-privatename.js
+++ b/test/language/statements/class/err-method-delete-call-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on call expressions . privatename (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/err-method-delete-covered-call-expression-privatename.js b/test/language/statements/class/err-method-delete-covered-call-expression-privatename.js
index b6e14a0c6b..3e915096d7 100644
--- a/test/language/statements/class/err-method-delete-covered-call-expression-privatename.js
+++ b/test/language/statements/class/err-method-delete-covered-call-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on call expressions . privatename (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/err-method-delete-covered-member-expression-privatename.js b/test/language/statements/class/err-method-delete-covered-member-expression-privatename.js
index 71fc2c51f9..e43f9a3404 100644
--- a/test/language/statements/class/err-method-delete-covered-member-expression-privatename.js
+++ b/test/language/statements/class/err-method-delete-covered-member-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on member expressions . privatename (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class-fields-private, class]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/err-method-delete-member-expression-privatename.js b/test/language/statements/class/err-method-delete-member-expression-privatename.js
index 492410f3cf..70f54418ea 100644
--- a/test/language/statements/class/err-method-delete-member-expression-privatename.js
+++ b/test/language/statements/class/err-method-delete-member-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on member expressions . privatename (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class-fields-private, class]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/err-method-delete-twice-covered-call-expression-privatename.js b/test/language/statements/class/err-method-delete-twice-covered-call-expression-privatename.js
index 9781eb9a59..ea17c37732 100644
--- a/test/language/statements/class/err-method-delete-twice-covered-call-expression-privatename.js
+++ b/test/language/statements/class/err-method-delete-twice-covered-call-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on call expressions . privatename (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/err-method-delete-twice-covered-member-expression-privatename.js b/test/language/statements/class/err-method-delete-twice-covered-member-expression-privatename.js
index fdc6b8c270..087a734c44 100644
--- a/test/language/statements/class/err-method-delete-twice-covered-member-expression-privatename.js
+++ b/test/language/statements/class/err-method-delete-twice-covered-member-expression-privatename.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if you call delete on member expressions . privatename (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class-fields-private, class]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-after-same-line-gen-computed-names.js b/test/language/statements/class/fields-after-same-line-gen-computed-names.js
index 191d33ea7d..15d1dc9679 100644
--- a/test/language/statements/class/fields-after-same-line-gen-computed-names.js
+++ b/test/language/statements/class/fields-after-same-line-gen-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, generators, class-fields]
+features: [computed-property-names, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-gen-computed-symbol-names.js b/test/language/statements/class/fields-after-same-line-gen-computed-symbol-names.js
index df55c55117..03529d08dc 100644
--- a/test/language/statements/class/fields-after-same-line-gen-computed-symbol-names.js
+++ b/test/language/statements/class/fields-after-same-line-gen-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, generators, class-fields]
+features: [Symbol, computed-property-names, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-gen-literal-names.js b/test/language/statements/class/fields-after-same-line-gen-literal-names.js
index c22a4b1cbe..fd8c939e1c 100644
--- a/test/language/statements/class/fields-after-same-line-gen-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-gen-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-gen-private-names.js b/test/language/statements/class/fields-after-same-line-gen-private-names.js
index eb432e7c36..66bcc5a36e 100644
--- a/test/language/statements/class/fields-after-same-line-gen-private-names.js
+++ b/test/language/statements/class/fields-after-same-line-gen-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [class-fields-private, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-gen-static-computed-names.js b/test/language/statements/class/fields-after-same-line-gen-static-computed-names.js
index a37ec07b43..f89aeb9e00 100644
--- a/test/language/statements/class/fields-after-same-line-gen-static-computed-names.js
+++ b/test/language/statements/class/fields-after-same-line-gen-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, generators, class-fields]
+features: [computed-property-names, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-gen-static-computed-symbol-names.js b/test/language/statements/class/fields-after-same-line-gen-static-computed-symbol-names.js
index 20910ae1be..5229e5dd46 100644
--- a/test/language/statements/class/fields-after-same-line-gen-static-computed-symbol-names.js
+++ b/test/language/statements/class/fields-after-same-line-gen-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, generators, class-fields]
+features: [Symbol, computed-property-names, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-gen-static-literal-names.js b/test/language/statements/class/fields-after-same-line-gen-static-literal-names.js
index 631d7f6592..def6e69bb0 100644
--- a/test/language/statements/class/fields-after-same-line-gen-static-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-gen-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-gen-static-private-names.js b/test/language/statements/class/fields-after-same-line-gen-static-private-names.js
index 661627f28b..adce1dd110 100644
--- a/test/language/statements/class/fields-after-same-line-gen-static-private-names.js
+++ b/test/language/statements/class/fields-after-same-line-gen-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [class-fields-private, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-gen-string-literal-names.js b/test/language/statements/class/fields-after-same-line-gen-string-literal-names.js
index 55ce1dfc4b..8e8cc643fc 100644
--- a/test/language/statements/class/fields-after-same-line-gen-string-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-gen-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions after a generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-method-computed-names.js b/test/language/statements/class/fields-after-same-line-method-computed-names.js
index 6c66e7a3f8..fba7b3b901 100644
--- a/test/language/statements/class/fields-after-same-line-method-computed-names.js
+++ b/test/language/statements/class/fields-after-same-line-method-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-method-computed-symbol-names.js b/test/language/statements/class/fields-after-same-line-method-computed-symbol-names.js
index 934a6cc1f2..35f11d9308 100644
--- a/test/language/statements/class/fields-after-same-line-method-computed-symbol-names.js
+++ b/test/language/statements/class/fields-after-same-line-method-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-method-literal-names.js b/test/language/statements/class/fields-after-same-line-method-literal-names.js
index 385826f04e..80ecfe3208 100644
--- a/test/language/statements/class/fields-after-same-line-method-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-method-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-method-private-names.js b/test/language/statements/class/fields-after-same-line-method-private-names.js
index 9bd10b389d..b241501c31 100644
--- a/test/language/statements/class/fields-after-same-line-method-private-names.js
+++ b/test/language/statements/class/fields-after-same-line-method-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-method-static-computed-names.js b/test/language/statements/class/fields-after-same-line-method-static-computed-names.js
index de016d5171..70ee22cf6d 100644
--- a/test/language/statements/class/fields-after-same-line-method-static-computed-names.js
+++ b/test/language/statements/class/fields-after-same-line-method-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-method-static-computed-symbol-names.js b/test/language/statements/class/fields-after-same-line-method-static-computed-symbol-names.js
index d8986e4788..81ddcbb97c 100644
--- a/test/language/statements/class/fields-after-same-line-method-static-computed-symbol-names.js
+++ b/test/language/statements/class/fields-after-same-line-method-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-method-static-literal-names.js b/test/language/statements/class/fields-after-same-line-method-static-literal-names.js
index 315870852e..e332e3db76 100644
--- a/test/language/statements/class/fields-after-same-line-method-static-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-method-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-method-static-private-names.js b/test/language/statements/class/fields-after-same-line-method-static-private-names.js
index 707084cf76..5b2048a262 100644
--- a/test/language/statements/class/fields-after-same-line-method-static-private-names.js
+++ b/test/language/statements/class/fields-after-same-line-method-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-method-string-literal-names.js b/test/language/statements/class/fields-after-same-line-method-string-literal-names.js
index c9d362c864..096ed952ef 100644
--- a/test/language/statements/class/fields-after-same-line-method-string-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-method-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions after a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-gen-computed-names.js b/test/language/statements/class/fields-after-same-line-static-async-gen-computed-names.js
index 55fc3458b2..ddb34df44a 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-gen-computed-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-gen-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, async-iteration]
+features: [computed-property-names, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-gen-computed-symbol-names.js b/test/language/statements/class/fields-after-same-line-static-async-gen-computed-symbol-names.js
index 16a06780ab..6844ad7fe9 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-gen-computed-symbol-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-gen-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, async-iteration]
+features: [Symbol, computed-property-names, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-gen-literal-names.js b/test/language/statements/class/fields-after-same-line-static-async-gen-literal-names.js
index 412088cfa1..a98e2cea44 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-gen-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-gen-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-gen-private-names.js b/test/language/statements/class/fields-after-same-line-static-async-gen-private-names.js
index e949295692..3f40e656f0 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-gen-private-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-gen-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class-fields-private, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-gen-static-computed-names.js b/test/language/statements/class/fields-after-same-line-static-async-gen-static-computed-names.js
index ff03239681..3a138b2cec 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-gen-static-computed-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-gen-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, async-iteration]
+features: [computed-property-names, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-gen-static-computed-symbol-names.js b/test/language/statements/class/fields-after-same-line-static-async-gen-static-computed-symbol-names.js
index 63d45a761f..988264b0e6 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-gen-static-computed-symbol-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-gen-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, async-iteration]
+features: [Symbol, computed-property-names, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-gen-static-literal-names.js b/test/language/statements/class/fields-after-same-line-static-async-gen-static-literal-names.js
index 9f88a2c8be..1a8c253ddc 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-gen-static-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-gen-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-gen-static-private-names.js b/test/language/statements/class/fields-after-same-line-static-async-gen-static-private-names.js
index 34ecf2b277..6e7147238c 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-gen-static-private-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-gen-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class-fields-private, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-gen-string-literal-names.js b/test/language/statements/class/fields-after-same-line-static-async-gen-string-literal-names.js
index 61c35314e9..294388a982 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-gen-string-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-gen-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions after a static async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-method-computed-names.js b/test/language/statements/class/fields-after-same-line-static-async-method-computed-names.js
index 8b4c8828ca..f8a85cd330 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-method-computed-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-method-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, async-functions]
+features: [computed-property-names, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-method-computed-symbol-names.js b/test/language/statements/class/fields-after-same-line-static-async-method-computed-symbol-names.js
index 10d9595fda..e02eb6a006 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-method-computed-symbol-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-method-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, async-functions]
+features: [Symbol, computed-property-names, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-method-literal-names.js b/test/language/statements/class/fields-after-same-line-static-async-method-literal-names.js
index d05e864e54..7652c546a7 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-method-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-method-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-method-private-names.js b/test/language/statements/class/fields-after-same-line-static-async-method-private-names.js
index f0e0106208..bc001aa284 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-method-private-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-method-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class-fields-private, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-method-static-computed-names.js b/test/language/statements/class/fields-after-same-line-static-async-method-static-computed-names.js
index 848dd7e45b..852e2380f4 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-method-static-computed-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-method-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, async-functions]
+features: [computed-property-names, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-method-static-computed-symbol-names.js b/test/language/statements/class/fields-after-same-line-static-async-method-static-computed-symbol-names.js
index 763490993e..0f8bad1a23 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-method-static-computed-symbol-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-method-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, async-functions]
+features: [Symbol, computed-property-names, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-method-static-literal-names.js b/test/language/statements/class/fields-after-same-line-static-async-method-static-literal-names.js
index c7259b19e2..60cfd6a14d 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-method-static-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-method-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-method-static-private-names.js b/test/language/statements/class/fields-after-same-line-static-async-method-static-private-names.js
index afdd3cbc7d..953e9a4569 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-method-static-private-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-method-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class-fields-private, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-async-method-string-literal-names.js b/test/language/statements/class/fields-after-same-line-static-async-method-string-literal-names.js
index 4e4711b41b..dde92722fa 100644
--- a/test/language/statements/class/fields-after-same-line-static-async-method-string-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-async-method-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions after a static async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-gen-computed-names.js b/test/language/statements/class/fields-after-same-line-static-gen-computed-names.js
index 1cdc688a9e..f39b0629a6 100644
--- a/test/language/statements/class/fields-after-same-line-static-gen-computed-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-gen-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, generators, class-fields]
+features: [computed-property-names, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-gen-computed-symbol-names.js b/test/language/statements/class/fields-after-same-line-static-gen-computed-symbol-names.js
index 77eb19764f..df6e52c392 100644
--- a/test/language/statements/class/fields-after-same-line-static-gen-computed-symbol-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-gen-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, generators, class-fields]
+features: [Symbol, computed-property-names, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-gen-literal-names.js b/test/language/statements/class/fields-after-same-line-static-gen-literal-names.js
index 7d39936750..7ac5896575 100644
--- a/test/language/statements/class/fields-after-same-line-static-gen-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-gen-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-gen-private-names.js b/test/language/statements/class/fields-after-same-line-static-gen-private-names.js
index 6fd8487403..c6799db962 100644
--- a/test/language/statements/class/fields-after-same-line-static-gen-private-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-gen-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [class-fields-private, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-gen-static-computed-names.js b/test/language/statements/class/fields-after-same-line-static-gen-static-computed-names.js
index a93a128384..2378057dcc 100644
--- a/test/language/statements/class/fields-after-same-line-static-gen-static-computed-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-gen-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, generators, class-fields]
+features: [computed-property-names, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-gen-static-computed-symbol-names.js b/test/language/statements/class/fields-after-same-line-static-gen-static-computed-symbol-names.js
index d6c9bec0dd..b61d7eb57a 100644
--- a/test/language/statements/class/fields-after-same-line-static-gen-static-computed-symbol-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-gen-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, generators, class-fields]
+features: [Symbol, computed-property-names, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-gen-static-literal-names.js b/test/language/statements/class/fields-after-same-line-static-gen-static-literal-names.js
index 66cf683d2b..0d05975b1f 100644
--- a/test/language/statements/class/fields-after-same-line-static-gen-static-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-gen-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-gen-static-private-names.js b/test/language/statements/class/fields-after-same-line-static-gen-static-private-names.js
index 627e5a862d..3e1f77fae1 100644
--- a/test/language/statements/class/fields-after-same-line-static-gen-static-private-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-gen-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [class-fields-private, generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-gen-string-literal-names.js b/test/language/statements/class/fields-after-same-line-static-gen-string-literal-names.js
index fbe016345d..2c602452be 100644
--- a/test/language/statements/class/fields-after-same-line-static-gen-string-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-gen-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions after a static generator in the same line)
 esid: prod-FieldDefinition
-features: [generators, class-fields]
+features: [generators, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-method-computed-names.js b/test/language/statements/class/fields-after-same-line-static-method-computed-names.js
index d886022dab..bb655ff2e9 100644
--- a/test/language/statements/class/fields-after-same-line-static-method-computed-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-method-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-method-computed-symbol-names.js b/test/language/statements/class/fields-after-same-line-static-method-computed-symbol-names.js
index dcccd17c67..d66c3d26af 100644
--- a/test/language/statements/class/fields-after-same-line-static-method-computed-symbol-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-method-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-method-literal-names.js b/test/language/statements/class/fields-after-same-line-static-method-literal-names.js
index 5a20003744..6f9ec4a4c7 100644
--- a/test/language/statements/class/fields-after-same-line-static-method-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-method-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-method-private-names.js b/test/language/statements/class/fields-after-same-line-static-method-private-names.js
index 9d673aec19..e270cbe507 100644
--- a/test/language/statements/class/fields-after-same-line-static-method-private-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-method-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-method-static-computed-names.js b/test/language/statements/class/fields-after-same-line-static-method-static-computed-names.js
index 440e83c188..c08e3c3b0e 100644
--- a/test/language/statements/class/fields-after-same-line-static-method-static-computed-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-method-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-method-static-computed-symbol-names.js b/test/language/statements/class/fields-after-same-line-static-method-static-computed-symbol-names.js
index 74a88b2fb8..532958a415 100644
--- a/test/language/statements/class/fields-after-same-line-static-method-static-computed-symbol-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-method-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-method-static-literal-names.js b/test/language/statements/class/fields-after-same-line-static-method-static-literal-names.js
index b14e3ec076..b2c7c6a7af 100644
--- a/test/language/statements/class/fields-after-same-line-static-method-static-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-method-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-method-static-private-names.js b/test/language/statements/class/fields-after-same-line-static-method-static-private-names.js
index 1e9f37a9f9..419ec93c8e 100644
--- a/test/language/statements/class/fields-after-same-line-static-method-static-private-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-method-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-after-same-line-static-method-string-literal-names.js b/test/language/statements/class/fields-after-same-line-static-method-string-literal-names.js
index bed239d467..8c0c9b2a5b 100644
--- a/test/language/statements/class/fields-after-same-line-static-method-string-literal-names.js
+++ b/test/language/statements/class/fields-after-same-line-static-method-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions after a static method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-arrow-fnc-init-err-contains-arguments.js b/test/language/statements/class/fields-arrow-fnc-init-err-contains-arguments.js
index 9fbf9ce7c3..14560d3d9c 100644
--- a/test/language/statements/class/fields-arrow-fnc-init-err-contains-arguments.js
+++ b/test/language/statements/class/fields-arrow-fnc-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (arrow function expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields, arrow-function]
+features: [class, class-fields-public, arrow-function]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-arrow-fnc-init-err-contains-super.js b/test/language/statements/class/fields-arrow-fnc-init-err-contains-super.js
index e1f0941e03..8aa7b1ca65 100644
--- a/test/language/statements/class/fields-arrow-fnc-init-err-contains-super.js
+++ b/test/language/statements/class/fields-arrow-fnc-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (arrow function expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields, arrow-function]
+features: [class, class-fields-public, arrow-function]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-comp-name-init-err-contains-arguments.js b/test/language/statements/class/fields-comp-name-init-err-contains-arguments.js
index ad4c766bab..5f931c9506 100644
--- a/test/language/statements/class/fields-comp-name-init-err-contains-arguments.js
+++ b/test/language/statements/class/fields-comp-name-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (computed ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-comp-name-init-err-contains-super.js b/test/language/statements/class/fields-comp-name-init-err-contains-super.js
index 7622021508..00f28d5fcc 100644
--- a/test/language/statements/class/fields-comp-name-init-err-contains-super.js
+++ b/test/language/statements/class/fields-comp-name-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (computed ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-computed-name-propname-constructor.js b/test/language/statements/class/fields-computed-name-propname-constructor.js
index cf1f1514d5..f528e03bd2 100644
--- a/test/language/statements/class/fields-computed-name-propname-constructor.js
+++ b/test/language/statements/class/fields-computed-name-propname-constructor.js
@@ -4,7 +4,7 @@
 /*---
 description: class fields forbid PropName 'constructor' (no early error -- PropName of ComputedPropertyName not forbidden value)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Static Semantics: PropName
diff --git a/test/language/statements/class/fields-computed-name-toprimitive-symbol.js b/test/language/statements/class/fields-computed-name-toprimitive-symbol.js
index 30a143d732..a38db9e665 100644
--- a/test/language/statements/class/fields-computed-name-toprimitive-symbol.js
+++ b/test/language/statements/class/fields-computed-name-toprimitive-symbol.js
@@ -4,7 +4,7 @@
 /*---
 description: ToPrimitive evaluation in the ComputedPropertyName (field definitions in a class declaration)
 esid: prod-FieldDefinition
-features: [computed-property-names, Symbol.toPrimitive, Symbol, class-fields]
+features: [computed-property-names, Symbol.toPrimitive, Symbol, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-computed-name-toprimitive.js b/test/language/statements/class/fields-computed-name-toprimitive.js
index 1694994854..67af44ede2 100644
--- a/test/language/statements/class/fields-computed-name-toprimitive.js
+++ b/test/language/statements/class/fields-computed-name-toprimitive.js
@@ -4,7 +4,7 @@
 /*---
 description: ToPrimitive evaluation in the ComputedPropertyName (field definitions in a class declaration)
 esid: prod-FieldDefinition
-features: [computed-property-names, Symbol.toPrimitive, class-fields]
+features: [computed-property-names, Symbol.toPrimitive, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-computed-variable-name-propname-constructor.js b/test/language/statements/class/fields-computed-variable-name-propname-constructor.js
index 161554838d..2b7aa5a78e 100644
--- a/test/language/statements/class/fields-computed-variable-name-propname-constructor.js
+++ b/test/language/statements/class/fields-computed-variable-name-propname-constructor.js
@@ -4,7 +4,7 @@
 /*---
 description: class fields forbid PropName 'constructor' (no early error -- PropName of ComputedPropertyName not forbidden value)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Static Semantics: PropName
diff --git a/test/language/statements/class/fields-computed-variable-name-static-propname-constructor.js b/test/language/statements/class/fields-computed-variable-name-static-propname-constructor.js
index f0060dacbb..fc5515e52a 100644
--- a/test/language/statements/class/fields-computed-variable-name-static-propname-constructor.js
+++ b/test/language/statements/class/fields-computed-variable-name-static-propname-constructor.js
@@ -4,7 +4,7 @@
 /*---
 description: static class field forbid PropName 'constructor' (no early error -- PropName of ComputedPropertyName not forbidden value)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Static Semantics: PropName
diff --git a/test/language/statements/class/fields-computed-variable-name-static-propname-prototype.js b/test/language/statements/class/fields-computed-variable-name-static-propname-prototype.js
index 4b2e7a6d15..400efb97ad 100644
--- a/test/language/statements/class/fields-computed-variable-name-static-propname-prototype.js
+++ b/test/language/statements/class/fields-computed-variable-name-static-propname-prototype.js
@@ -4,7 +4,7 @@
 /*---
 description: static class fields forbid PropName 'prototype' (no early error -- PropName of ComputedPropertyName not forbidden value)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Static Semantics: PropName
diff --git a/test/language/statements/class/fields-ctor-called-after-fields-init.js b/test/language/statements/class/fields-ctor-called-after-fields-init.js
index 08ca1bf801..e9c44bb1bb 100644
--- a/test/language/statements/class/fields-ctor-called-after-fields-init.js
+++ b/test/language/statements/class/fields-ctor-called-after-fields-init.js
@@ -4,7 +4,7 @@
 /*---
 description: The constructor method is called after the fields are initalized (field definitions in a class declaration)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     [[Construct]] ( argumentsList, newTarget)
diff --git a/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-supercall-1.js b/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-supercall-1.js
index e357b30cfc..ec3eae5459 100644
--- a/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-supercall-1.js
+++ b/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-supercall-1.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super()['x']` in StatementList of eval (direct eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-supercall-2.js b/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-supercall-2.js
index 5ada210582..bd7c9757e3 100644
--- a/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-supercall-2.js
+++ b/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-supercall-2.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super().x` in StatementList of eval (direct eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-supercall.js b/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-supercall.js
index f194242c6b..3e988d94fe 100644
--- a/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-supercall.js
+++ b/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-supercall.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super()` in StatementList of eval (direct eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-superproperty-1.js b/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-superproperty-1.js
index 0e766f52fa..7f3963b1f4 100644
--- a/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-superproperty-1.js
+++ b/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-superproperty-1.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super.x` in StatementList of eval (direct eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-superproperty-2.js b/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-superproperty-2.js
index 00b98d4877..b6df495eb2 100644
--- a/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-superproperty-2.js
+++ b/test/language/statements/class/fields-derived-cls-direct-eval-err-contains-superproperty-2.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super['x']` in StatementList of eval (direct eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-supercall-1.js b/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-supercall-1.js
index 41b1953739..16b468837b 100644
--- a/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-supercall-1.js
+++ b/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-supercall-1.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super()['x']` in StatementList of eval (indirect eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-supercall-2.js b/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-supercall-2.js
index 7773dd40ed..b7492996cd 100644
--- a/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-supercall-2.js
+++ b/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-supercall-2.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super().x` in StatementList of eval (indirect eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-supercall.js b/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-supercall.js
index 16c819c58d..d3554fe954 100644
--- a/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-supercall.js
+++ b/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-supercall.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super()` in StatementList of eval (indirect eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-superproperty-1.js b/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-superproperty-1.js
index d22196ea6d..e71f434467 100644
--- a/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-superproperty-1.js
+++ b/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-superproperty-1.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super.x` in StatementList of eval (indirect eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-superproperty-2.js b/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-superproperty-2.js
index f006795f1e..ee79439a68 100644
--- a/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-superproperty-2.js
+++ b/test/language/statements/class/fields-derived-cls-indirect-eval-err-contains-superproperty-2.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `super['x']` in StatementList of eval (indirect eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/statements/class/fields-direct-eval-err-contains-arguments.js b/test/language/statements/class/fields-direct-eval-err-contains-arguments.js
index 173fcae061..092dee5b20 100644
--- a/test/language/statements/class/fields-direct-eval-err-contains-arguments.js
+++ b/test/language/statements/class/fields-direct-eval-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `arguments` in StatementList of eval (direct eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/statements/class/fields-direct-eval-err-contains-newtarget.js b/test/language/statements/class/fields-direct-eval-err-contains-newtarget.js
index 4a3babfaaa..f78cdd0268 100644
--- a/test/language/statements/class/fields-direct-eval-err-contains-newtarget.js
+++ b/test/language/statements/class/fields-direct-eval-err-contains-newtarget.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `new.target` in StatementList of eval (direct eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/statements/class/fields-equality-init-err-contains-arguments.js b/test/language/statements/class/fields-equality-init-err-contains-arguments.js
index 0889c42b99..19734f72f0 100644
--- a/test/language/statements/class/fields-equality-init-err-contains-arguments.js
+++ b/test/language/statements/class/fields-equality-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (equality expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-equality-init-err-contains-super.js b/test/language/statements/class/fields-equality-init-err-contains-super.js
index 32a55253c3..c655a75821 100644
--- a/test/language/statements/class/fields-equality-init-err-contains-super.js
+++ b/test/language/statements/class/fields-equality-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (equality expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-evaluation-error-computed-name-referenceerror.js b/test/language/statements/class/fields-evaluation-error-computed-name-referenceerror.js
index 9ff6042149..43c01a9af2 100644
--- a/test/language/statements/class/fields-evaluation-error-computed-name-referenceerror.js
+++ b/test/language/statements/class/fields-evaluation-error-computed-name-referenceerror.js
@@ -4,7 +4,7 @@
 /*---
 description: ReferenceError evaluating a computed property name (field definitions in a class declaration)
 esid: sec-runtime-semantics-classdefinitionevaluation
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 info: |
     Runtime Semantics: ClassDefinitionEvaluation
diff --git a/test/language/statements/class/fields-evaluation-error-computed-name-toprimitive-err.js b/test/language/statements/class/fields-evaluation-error-computed-name-toprimitive-err.js
index 14a6522df5..c839551e89 100644
--- a/test/language/statements/class/fields-evaluation-error-computed-name-toprimitive-err.js
+++ b/test/language/statements/class/fields-evaluation-error-computed-name-toprimitive-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Custom error evaluating a computed property name (field definitions in a class declaration)
 esid: sec-runtime-semantics-classdefinitionevaluation
-features: [computed-property-names, Symbol.toPrimitive, class-fields]
+features: [computed-property-names, Symbol.toPrimitive, class, class-fields-public]
 flags: [generated]
 info: |
     Runtime Semantics: ClassDefinitionEvaluation
diff --git a/test/language/statements/class/fields-evaluation-error-computed-name-tostring-err.js b/test/language/statements/class/fields-evaluation-error-computed-name-tostring-err.js
index ca38dd5b08..6abf0cbbc2 100644
--- a/test/language/statements/class/fields-evaluation-error-computed-name-tostring-err.js
+++ b/test/language/statements/class/fields-evaluation-error-computed-name-tostring-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Custom error evaluating a computed property name (field definitions in a class declaration)
 esid: sec-runtime-semantics-classdefinitionevaluation
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 info: |
     Runtime Semantics: ClassDefinitionEvaluation
diff --git a/test/language/statements/class/fields-evaluation-error-computed-name-valueof-err.js b/test/language/statements/class/fields-evaluation-error-computed-name-valueof-err.js
index 757d9d536a..663cf91cc5 100644
--- a/test/language/statements/class/fields-evaluation-error-computed-name-valueof-err.js
+++ b/test/language/statements/class/fields-evaluation-error-computed-name-valueof-err.js
@@ -4,7 +4,7 @@
 /*---
 description: Custom error evaluating a computed property name (field definitions in a class declaration)
 esid: sec-runtime-semantics-classdefinitionevaluation
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 info: |
     Runtime Semantics: ClassDefinitionEvaluation
diff --git a/test/language/statements/class/fields-indirect-eval-err-contains-arguments.js b/test/language/statements/class/fields-indirect-eval-err-contains-arguments.js
index 32c2100c9e..376c014750 100644
--- a/test/language/statements/class/fields-indirect-eval-err-contains-arguments.js
+++ b/test/language/statements/class/fields-indirect-eval-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `arguments` in StatementList of eval (indirect eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/statements/class/fields-indirect-eval-err-contains-newtarget.js b/test/language/statements/class/fields-indirect-eval-err-contains-newtarget.js
index c1d69b70b2..84de701471 100644
--- a/test/language/statements/class/fields-indirect-eval-err-contains-newtarget.js
+++ b/test/language/statements/class/fields-indirect-eval-err-contains-newtarget.js
@@ -4,7 +4,7 @@
 /*---
 description: error if `new.target` in StatementList of eval (indirect eval)
 esid: sec-performeval-rules-in-initializer
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     Additional Early Error Rules for Eval Inside Initializer
diff --git a/test/language/statements/class/fields-init-err-evaluation.js b/test/language/statements/class/fields-init-err-evaluation.js
index 016fd1d52a..67c9b0200b 100644
--- a/test/language/statements/class/fields-init-err-evaluation.js
+++ b/test/language/statements/class/fields-init-err-evaluation.js
@@ -4,7 +4,7 @@
 /*---
 description: Return abrupt completion evaluating the field initializer (field definitions in a class declaration)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 info: |
     [[Construct]] ( argumentsList, newTarget)
diff --git a/test/language/statements/class/fields-init-value-defined-after-class.js b/test/language/statements/class/fields-init-value-defined-after-class.js
index 02c6c1b1a8..8c8eac3a26 100644
--- a/test/language/statements/class/fields-init-value-defined-after-class.js
+++ b/test/language/statements/class/fields-init-value-defined-after-class.js
@@ -4,7 +4,7 @@
 /*---
 description: The initializer value is defined after the class evaluation (field definitions in a class declaration)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-init-value-incremental.js b/test/language/statements/class/fields-init-value-incremental.js
index 69b3aa6173..0195d25151 100644
--- a/test/language/statements/class/fields-init-value-incremental.js
+++ b/test/language/statements/class/fields-init-value-incremental.js
@@ -4,7 +4,7 @@
 /*---
 description: The initializer value is defined during the class instatiation (field definitions in a class declaration)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-literal-name-init-err-contains-arguments.js b/test/language/statements/class/fields-literal-name-init-err-contains-arguments.js
index ab39930b27..1405c4993f 100644
--- a/test/language/statements/class/fields-literal-name-init-err-contains-arguments.js
+++ b/test/language/statements/class/fields-literal-name-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (literal ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-literal-name-init-err-contains-super.js b/test/language/statements/class/fields-literal-name-init-err-contains-super.js
index e1da665e4f..be8c0f8938 100644
--- a/test/language/statements/class/fields-literal-name-init-err-contains-super.js
+++ b/test/language/statements/class/fields-literal-name-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (literal ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-literal-name-propname-constructor.js b/test/language/statements/class/fields-literal-name-propname-constructor.js
index 24d8347b30..4a41c5bc92 100644
--- a/test/language/statements/class/fields-literal-name-propname-constructor.js
+++ b/test/language/statements/class/fields-literal-name-propname-constructor.js
@@ -4,7 +4,7 @@
 /*---
 description: class fields forbid PropName 'constructor' (early error -- PropName of IdentifierName is forbidden value)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-literal-name-static-propname-constructor.js b/test/language/statements/class/fields-literal-name-static-propname-constructor.js
index 0a457f87c8..2612862987 100644
--- a/test/language/statements/class/fields-literal-name-static-propname-constructor.js
+++ b/test/language/statements/class/fields-literal-name-static-propname-constructor.js
@@ -4,7 +4,7 @@
 /*---
 description: static class field forbid PropName 'constructor' (early error -- PropName of IdentifierName is forbidden value)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-literal-name-static-propname-prototype.js b/test/language/statements/class/fields-literal-name-static-propname-prototype.js
index 221c7d00a8..877609beae 100644
--- a/test/language/statements/class/fields-literal-name-static-propname-prototype.js
+++ b/test/language/statements/class/fields-literal-name-static-propname-prototype.js
@@ -4,7 +4,7 @@
 /*---
 description: static class fields forbid PropName 'prototype' (early error -- PropName of IdentifierName is forbidden value)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-multiple-definitions-computed-names.js b/test/language/statements/class/fields-multiple-definitions-computed-names.js
index 3785187066..6d7b1c4989 100644
--- a/test/language/statements/class/fields-multiple-definitions-computed-names.js
+++ b/test/language/statements/class/fields-multiple-definitions-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-multiple-definitions-computed-symbol-names.js b/test/language/statements/class/fields-multiple-definitions-computed-symbol-names.js
index be6f4eafcc..813aac64b2 100644
--- a/test/language/statements/class/fields-multiple-definitions-computed-symbol-names.js
+++ b/test/language/statements/class/fields-multiple-definitions-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-multiple-definitions-literal-names.js b/test/language/statements/class/fields-multiple-definitions-literal-names.js
index 9a6c095ca4..63d8ad694c 100644
--- a/test/language/statements/class/fields-multiple-definitions-literal-names.js
+++ b/test/language/statements/class/fields-multiple-definitions-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-multiple-definitions-private-names.js b/test/language/statements/class/fields-multiple-definitions-private-names.js
index 49137a5220..6ea8e96278 100644
--- a/test/language/statements/class/fields-multiple-definitions-private-names.js
+++ b/test/language/statements/class/fields-multiple-definitions-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-multiple-definitions-static-computed-names.js b/test/language/statements/class/fields-multiple-definitions-static-computed-names.js
index fd284a1505..593e42cf51 100644
--- a/test/language/statements/class/fields-multiple-definitions-static-computed-names.js
+++ b/test/language/statements/class/fields-multiple-definitions-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-multiple-definitions-static-computed-symbol-names.js b/test/language/statements/class/fields-multiple-definitions-static-computed-symbol-names.js
index fa3249a63d..d797f2e071 100644
--- a/test/language/statements/class/fields-multiple-definitions-static-computed-symbol-names.js
+++ b/test/language/statements/class/fields-multiple-definitions-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-multiple-definitions-static-literal-names.js b/test/language/statements/class/fields-multiple-definitions-static-literal-names.js
index fcce13524b..04c83de2c2 100644
--- a/test/language/statements/class/fields-multiple-definitions-static-literal-names.js
+++ b/test/language/statements/class/fields-multiple-definitions-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-multiple-definitions-static-private-names.js b/test/language/statements/class/fields-multiple-definitions-static-private-names.js
index 269eb2da9a..f30c49aad7 100644
--- a/test/language/statements/class/fields-multiple-definitions-static-private-names.js
+++ b/test/language/statements/class/fields-multiple-definitions-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-multiple-definitions-string-literal-names.js b/test/language/statements/class/fields-multiple-definitions-string-literal-names.js
index 89e6745482..8ce2d2fd05 100644
--- a/test/language/statements/class/fields-multiple-definitions-string-literal-names.js
+++ b/test/language/statements/class/fields-multiple-definitions-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (multiple fields definitions)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-multiple-stacked-definitions-computed-names.js b/test/language/statements/class/fields-multiple-stacked-definitions-computed-names.js
index 8f30b92b60..69b0916c96 100644
--- a/test/language/statements/class/fields-multiple-stacked-definitions-computed-names.js
+++ b/test/language/statements/class/fields-multiple-stacked-definitions-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-multiple-stacked-definitions-computed-symbol-names.js b/test/language/statements/class/fields-multiple-stacked-definitions-computed-symbol-names.js
index 6d29a5804f..9bfeb243fc 100644
--- a/test/language/statements/class/fields-multiple-stacked-definitions-computed-symbol-names.js
+++ b/test/language/statements/class/fields-multiple-stacked-definitions-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-multiple-stacked-definitions-literal-names.js b/test/language/statements/class/fields-multiple-stacked-definitions-literal-names.js
index 7f804dbc50..db7c211752 100644
--- a/test/language/statements/class/fields-multiple-stacked-definitions-literal-names.js
+++ b/test/language/statements/class/fields-multiple-stacked-definitions-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-multiple-stacked-definitions-private-names.js b/test/language/statements/class/fields-multiple-stacked-definitions-private-names.js
index 0aa16299ba..e88d530aca 100644
--- a/test/language/statements/class/fields-multiple-stacked-definitions-private-names.js
+++ b/test/language/statements/class/fields-multiple-stacked-definitions-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-multiple-stacked-definitions-static-computed-names.js b/test/language/statements/class/fields-multiple-stacked-definitions-static-computed-names.js
index a5cba73565..a3e0748c5e 100644
--- a/test/language/statements/class/fields-multiple-stacked-definitions-static-computed-names.js
+++ b/test/language/statements/class/fields-multiple-stacked-definitions-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-multiple-stacked-definitions-static-computed-symbol-names.js b/test/language/statements/class/fields-multiple-stacked-definitions-static-computed-symbol-names.js
index c00c63eae4..0ebbb9b091 100644
--- a/test/language/statements/class/fields-multiple-stacked-definitions-static-computed-symbol-names.js
+++ b/test/language/statements/class/fields-multiple-stacked-definitions-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-multiple-stacked-definitions-static-literal-names.js b/test/language/statements/class/fields-multiple-stacked-definitions-static-literal-names.js
index c022d9da95..9040bb149f 100644
--- a/test/language/statements/class/fields-multiple-stacked-definitions-static-literal-names.js
+++ b/test/language/statements/class/fields-multiple-stacked-definitions-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-multiple-stacked-definitions-static-private-names.js b/test/language/statements/class/fields-multiple-stacked-definitions-static-private-names.js
index e62a240363..3857f74bb9 100644
--- a/test/language/statements/class/fields-multiple-stacked-definitions-static-private-names.js
+++ b/test/language/statements/class/fields-multiple-stacked-definitions-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-multiple-stacked-definitions-string-literal-names.js b/test/language/statements/class/fields-multiple-stacked-definitions-string-literal-names.js
index 935d0c8b3a..fffb53f4f1 100644
--- a/test/language/statements/class/fields-multiple-stacked-definitions-string-literal-names.js
+++ b/test/language/statements/class/fields-multiple-stacked-definitions-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (multiple stacked fields definitions through ASI)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-no-sc-line-method-computed-names.js b/test/language/statements/class/fields-new-no-sc-line-method-computed-names.js
index f3aec9048c..5d4f003d66 100644
--- a/test/language/statements/class/fields-new-no-sc-line-method-computed-names.js
+++ b/test/language/statements/class/fields-new-no-sc-line-method-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-no-sc-line-method-computed-symbol-names.js b/test/language/statements/class/fields-new-no-sc-line-method-computed-symbol-names.js
index 4e026e0441..803d75477e 100644
--- a/test/language/statements/class/fields-new-no-sc-line-method-computed-symbol-names.js
+++ b/test/language/statements/class/fields-new-no-sc-line-method-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-no-sc-line-method-literal-names.js b/test/language/statements/class/fields-new-no-sc-line-method-literal-names.js
index 491124ad51..ae718c8241 100644
--- a/test/language/statements/class/fields-new-no-sc-line-method-literal-names.js
+++ b/test/language/statements/class/fields-new-no-sc-line-method-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-no-sc-line-method-private-names.js b/test/language/statements/class/fields-new-no-sc-line-method-private-names.js
index de82858d81..f57b9ac5bb 100644
--- a/test/language/statements/class/fields-new-no-sc-line-method-private-names.js
+++ b/test/language/statements/class/fields-new-no-sc-line-method-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-no-sc-line-method-static-computed-names.js b/test/language/statements/class/fields-new-no-sc-line-method-static-computed-names.js
index 6aa47e5f67..02514b3deb 100644
--- a/test/language/statements/class/fields-new-no-sc-line-method-static-computed-names.js
+++ b/test/language/statements/class/fields-new-no-sc-line-method-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-no-sc-line-method-static-computed-symbol-names.js b/test/language/statements/class/fields-new-no-sc-line-method-static-computed-symbol-names.js
index a7470fff19..dd8a575a56 100644
--- a/test/language/statements/class/fields-new-no-sc-line-method-static-computed-symbol-names.js
+++ b/test/language/statements/class/fields-new-no-sc-line-method-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-no-sc-line-method-static-literal-names.js b/test/language/statements/class/fields-new-no-sc-line-method-static-literal-names.js
index ed5332d92e..6ac9918faa 100644
--- a/test/language/statements/class/fields-new-no-sc-line-method-static-literal-names.js
+++ b/test/language/statements/class/fields-new-no-sc-line-method-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-no-sc-line-method-static-private-names.js b/test/language/statements/class/fields-new-no-sc-line-method-static-private-names.js
index 225f47f155..c8b3485650 100644
--- a/test/language/statements/class/fields-new-no-sc-line-method-static-private-names.js
+++ b/test/language/statements/class/fields-new-no-sc-line-method-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-no-sc-line-method-string-literal-names.js b/test/language/statements/class/fields-new-no-sc-line-method-string-literal-names.js
index dd2fe2ba56..e376980dfc 100644
--- a/test/language/statements/class/fields-new-no-sc-line-method-string-literal-names.js
+++ b/test/language/statements/class/fields-new-no-sc-line-method-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions followed by a method in a new line without a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-gen-computed-names.js b/test/language/statements/class/fields-new-sc-line-gen-computed-names.js
index 946a3baece..4a4acdb9c8 100644
--- a/test/language/statements/class/fields-new-sc-line-gen-computed-names.js
+++ b/test/language/statements/class/fields-new-sc-line-gen-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, generators]
+features: [computed-property-names, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-gen-computed-symbol-names.js b/test/language/statements/class/fields-new-sc-line-gen-computed-symbol-names.js
index 7e1fe2e9f4..3c8a55c93b 100644
--- a/test/language/statements/class/fields-new-sc-line-gen-computed-symbol-names.js
+++ b/test/language/statements/class/fields-new-sc-line-gen-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, generators]
+features: [Symbol, computed-property-names, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-gen-literal-names.js b/test/language/statements/class/fields-new-sc-line-gen-literal-names.js
index b85f07f025..65966a09cb 100644
--- a/test/language/statements/class/fields-new-sc-line-gen-literal-names.js
+++ b/test/language/statements/class/fields-new-sc-line-gen-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-gen-private-names.js b/test/language/statements/class/fields-new-sc-line-gen-private-names.js
index 1e413c36b8..540ad191c9 100644
--- a/test/language/statements/class/fields-new-sc-line-gen-private-names.js
+++ b/test/language/statements/class/fields-new-sc-line-gen-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class-fields-private, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-gen-static-computed-names.js b/test/language/statements/class/fields-new-sc-line-gen-static-computed-names.js
index 7c4e532d44..2fd70234b0 100644
--- a/test/language/statements/class/fields-new-sc-line-gen-static-computed-names.js
+++ b/test/language/statements/class/fields-new-sc-line-gen-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, generators]
+features: [computed-property-names, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-gen-static-computed-symbol-names.js b/test/language/statements/class/fields-new-sc-line-gen-static-computed-symbol-names.js
index afbf5546b1..8b9ad5ae4a 100644
--- a/test/language/statements/class/fields-new-sc-line-gen-static-computed-symbol-names.js
+++ b/test/language/statements/class/fields-new-sc-line-gen-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, generators]
+features: [Symbol, computed-property-names, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-gen-static-literal-names.js b/test/language/statements/class/fields-new-sc-line-gen-static-literal-names.js
index b2e90d5807..07dd8dd5f3 100644
--- a/test/language/statements/class/fields-new-sc-line-gen-static-literal-names.js
+++ b/test/language/statements/class/fields-new-sc-line-gen-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-gen-static-private-names.js b/test/language/statements/class/fields-new-sc-line-gen-static-private-names.js
index c277f658f6..45f9d18409 100644
--- a/test/language/statements/class/fields-new-sc-line-gen-static-private-names.js
+++ b/test/language/statements/class/fields-new-sc-line-gen-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class-fields-private, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-gen-string-literal-names.js b/test/language/statements/class/fields-new-sc-line-gen-string-literal-names.js
index 3c208f393f..2409d6ae0b 100644
--- a/test/language/statements/class/fields-new-sc-line-gen-string-literal-names.js
+++ b/test/language/statements/class/fields-new-sc-line-gen-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-method-computed-names.js b/test/language/statements/class/fields-new-sc-line-method-computed-names.js
index 48f29f0e44..7c2520cb9c 100644
--- a/test/language/statements/class/fields-new-sc-line-method-computed-names.js
+++ b/test/language/statements/class/fields-new-sc-line-method-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-method-computed-symbol-names.js b/test/language/statements/class/fields-new-sc-line-method-computed-symbol-names.js
index 44fee8284b..1e305c017d 100644
--- a/test/language/statements/class/fields-new-sc-line-method-computed-symbol-names.js
+++ b/test/language/statements/class/fields-new-sc-line-method-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-method-literal-names.js b/test/language/statements/class/fields-new-sc-line-method-literal-names.js
index f39940f926..96b9f225a3 100644
--- a/test/language/statements/class/fields-new-sc-line-method-literal-names.js
+++ b/test/language/statements/class/fields-new-sc-line-method-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-method-private-names.js b/test/language/statements/class/fields-new-sc-line-method-private-names.js
index 021ccb3bda..9b095ec504 100644
--- a/test/language/statements/class/fields-new-sc-line-method-private-names.js
+++ b/test/language/statements/class/fields-new-sc-line-method-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-method-static-computed-names.js b/test/language/statements/class/fields-new-sc-line-method-static-computed-names.js
index 24058524aa..ffedc6cfe8 100644
--- a/test/language/statements/class/fields-new-sc-line-method-static-computed-names.js
+++ b/test/language/statements/class/fields-new-sc-line-method-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-method-static-computed-symbol-names.js b/test/language/statements/class/fields-new-sc-line-method-static-computed-symbol-names.js
index d21b53adf8..3e917bde62 100644
--- a/test/language/statements/class/fields-new-sc-line-method-static-computed-symbol-names.js
+++ b/test/language/statements/class/fields-new-sc-line-method-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-method-static-literal-names.js b/test/language/statements/class/fields-new-sc-line-method-static-literal-names.js
index b40af24dbe..ac54f0d91d 100644
--- a/test/language/statements/class/fields-new-sc-line-method-static-literal-names.js
+++ b/test/language/statements/class/fields-new-sc-line-method-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-method-static-private-names.js b/test/language/statements/class/fields-new-sc-line-method-static-private-names.js
index c8fb0633f6..46079d45cc 100644
--- a/test/language/statements/class/fields-new-sc-line-method-static-private-names.js
+++ b/test/language/statements/class/fields-new-sc-line-method-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-new-sc-line-method-string-literal-names.js b/test/language/statements/class/fields-new-sc-line-method-string-literal-names.js
index 0628ca0f6c..9377cf7593 100644
--- a/test/language/statements/class/fields-new-sc-line-method-string-literal-names.js
+++ b/test/language/statements/class/fields-new-sc-line-method-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions followed by a method in a new line with a semicolon)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-private-arrow-fnc-init-err-contains-arguments.js b/test/language/statements/class/fields-private-arrow-fnc-init-err-contains-arguments.js
index eea9bf4d27..e6eb77640d 100644
--- a/test/language/statements/class/fields-private-arrow-fnc-init-err-contains-arguments.js
+++ b/test/language/statements/class/fields-private-arrow-fnc-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (private field, arrow function expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields, arrow-function]
+features: [class, class-fields-public, arrow-function, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-private-arrow-fnc-init-err-contains-super.js b/test/language/statements/class/fields-private-arrow-fnc-init-err-contains-super.js
index 50cfe3ec09..85d2b6a185 100644
--- a/test/language/statements/class/fields-private-arrow-fnc-init-err-contains-super.js
+++ b/test/language/statements/class/fields-private-arrow-fnc-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (private field, arrow function expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields, arrow-function]
+features: [class, class-fields-public, arrow-function, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-private-literal-name-init-err-contains-arguments.js b/test/language/statements/class/fields-private-literal-name-init-err-contains-arguments.js
index 11adaeec7a..2fd32c3641 100644
--- a/test/language/statements/class/fields-private-literal-name-init-err-contains-arguments.js
+++ b/test/language/statements/class/fields-private-literal-name-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (ClassElementName PrivateName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-private-literal-name-init-err-contains-super.js b/test/language/statements/class/fields-private-literal-name-init-err-contains-super.js
index c234a22943..4545a88d1b 100644
--- a/test/language/statements/class/fields-private-literal-name-init-err-contains-super.js
+++ b/test/language/statements/class/fields-private-literal-name-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (ClassElementName PrivateName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-private-ternary-init-err-contains-arguments.js b/test/language/statements/class/fields-private-ternary-init-err-contains-arguments.js
index 873c64d810..1bca215dab 100644
--- a/test/language/statements/class/fields-private-ternary-init-err-contains-arguments.js
+++ b/test/language/statements/class/fields-private-ternary-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (private field, ternary expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-private-ternary-init-err-contains-super.js b/test/language/statements/class/fields-private-ternary-init-err-contains-super.js
index 785117d8e5..9060a7f1eb 100644
--- a/test/language/statements/class/fields-private-ternary-init-err-contains-super.js
+++ b/test/language/statements/class/fields-private-ternary-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (private field, ternary expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-private-typeof-init-err-contains-arguments.js b/test/language/statements/class/fields-private-typeof-init-err-contains-arguments.js
index ef7d5af286..eda306595a 100644
--- a/test/language/statements/class/fields-private-typeof-init-err-contains-arguments.js
+++ b/test/language/statements/class/fields-private-typeof-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (private field, typeof expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-private-typeof-init-err-contains-super.js b/test/language/statements/class/fields-private-typeof-init-err-contains-super.js
index 7a623353a3..1fdd0b1f21 100644
--- a/test/language/statements/class/fields-private-typeof-init-err-contains-super.js
+++ b/test/language/statements/class/fields-private-typeof-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (private field, typeof expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-redeclaration-symbol.js b/test/language/statements/class/fields-redeclaration-symbol.js
index 8f623b6082..5d3337f356 100644
--- a/test/language/statements/class/fields-redeclaration-symbol.js
+++ b/test/language/statements/class/fields-redeclaration-symbol.js
@@ -4,7 +4,7 @@
 /*---
 description: Redeclaration of public fields with the same name (field definitions in a class declaration)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js, compareArray.js]
 info: |
diff --git a/test/language/statements/class/fields-redeclaration.js b/test/language/statements/class/fields-redeclaration.js
index 1b16dc01ee..3cc850ada8 100644
--- a/test/language/statements/class/fields-redeclaration.js
+++ b/test/language/statements/class/fields-redeclaration.js
@@ -4,7 +4,7 @@
 /*---
 description: Redeclaration of public fields with the same name (field definitions in a class declaration)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js, compareArray.js]
 info: |
diff --git a/test/language/statements/class/fields-regular-definitions-computed-names.js b/test/language/statements/class/fields-regular-definitions-computed-names.js
index cb357d7882..fcd8f2be2e 100644
--- a/test/language/statements/class/fields-regular-definitions-computed-names.js
+++ b/test/language/statements/class/fields-regular-definitions-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-regular-definitions-computed-symbol-names.js b/test/language/statements/class/fields-regular-definitions-computed-symbol-names.js
index aecb50ff95..88c2d21f64 100644
--- a/test/language/statements/class/fields-regular-definitions-computed-symbol-names.js
+++ b/test/language/statements/class/fields-regular-definitions-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-regular-definitions-literal-names.js b/test/language/statements/class/fields-regular-definitions-literal-names.js
index d219f31273..170ab303d6 100644
--- a/test/language/statements/class/fields-regular-definitions-literal-names.js
+++ b/test/language/statements/class/fields-regular-definitions-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-regular-definitions-private-names.js b/test/language/statements/class/fields-regular-definitions-private-names.js
index 2f93a8e03d..2c482495a0 100644
--- a/test/language/statements/class/fields-regular-definitions-private-names.js
+++ b/test/language/statements/class/fields-regular-definitions-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 info: |
     ClassElement:
diff --git a/test/language/statements/class/fields-regular-definitions-static-computed-names.js b/test/language/statements/class/fields-regular-definitions-static-computed-names.js
index 62fd0e9d39..87a80650e2 100644
--- a/test/language/statements/class/fields-regular-definitions-static-computed-names.js
+++ b/test/language/statements/class/fields-regular-definitions-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-regular-definitions-static-computed-symbol-names.js b/test/language/statements/class/fields-regular-definitions-static-computed-symbol-names.js
index 69a3fe4e73..c9ab458874 100644
--- a/test/language/statements/class/fields-regular-definitions-static-computed-symbol-names.js
+++ b/test/language/statements/class/fields-regular-definitions-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-regular-definitions-static-literal-names.js b/test/language/statements/class/fields-regular-definitions-static-literal-names.js
index 71ff94cd1c..74bea2f29c 100644
--- a/test/language/statements/class/fields-regular-definitions-static-literal-names.js
+++ b/test/language/statements/class/fields-regular-definitions-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-regular-definitions-static-private-names.js b/test/language/statements/class/fields-regular-definitions-static-private-names.js
index 2c66173b31..fca552f0ba 100644
--- a/test/language/statements/class/fields-regular-definitions-static-private-names.js
+++ b/test/language/statements/class/fields-regular-definitions-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 info: |
     ClassElement:
diff --git a/test/language/statements/class/fields-regular-definitions-string-literal-names.js b/test/language/statements/class/fields-regular-definitions-string-literal-names.js
index 87424e4ef9..cc8ea7ce7d 100644
--- a/test/language/statements/class/fields-regular-definitions-string-literal-names.js
+++ b/test/language/statements/class/fields-regular-definitions-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (regular fields defintion)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-gen-computed-names.js b/test/language/statements/class/fields-same-line-async-gen-computed-names.js
index 7e57463aea..0d032a776c 100644
--- a/test/language/statements/class/fields-same-line-async-gen-computed-names.js
+++ b/test/language/statements/class/fields-same-line-async-gen-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, async-iteration]
+features: [computed-property-names, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-gen-computed-symbol-names.js b/test/language/statements/class/fields-same-line-async-gen-computed-symbol-names.js
index 564fcccddf..061aa74474 100644
--- a/test/language/statements/class/fields-same-line-async-gen-computed-symbol-names.js
+++ b/test/language/statements/class/fields-same-line-async-gen-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, async-iteration]
+features: [Symbol, computed-property-names, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-gen-literal-names.js b/test/language/statements/class/fields-same-line-async-gen-literal-names.js
index 09ec4aa285..14e3dc66cd 100644
--- a/test/language/statements/class/fields-same-line-async-gen-literal-names.js
+++ b/test/language/statements/class/fields-same-line-async-gen-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-gen-private-names.js b/test/language/statements/class/fields-same-line-async-gen-private-names.js
index dc9fa95ba6..a1c4b00def 100644
--- a/test/language/statements/class/fields-same-line-async-gen-private-names.js
+++ b/test/language/statements/class/fields-same-line-async-gen-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class-fields-private, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-gen-static-computed-names.js b/test/language/statements/class/fields-same-line-async-gen-static-computed-names.js
index 1fef76a028..6f18630d2f 100644
--- a/test/language/statements/class/fields-same-line-async-gen-static-computed-names.js
+++ b/test/language/statements/class/fields-same-line-async-gen-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, async-iteration]
+features: [computed-property-names, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-gen-static-computed-symbol-names.js b/test/language/statements/class/fields-same-line-async-gen-static-computed-symbol-names.js
index 888a4254aa..54061a7f87 100644
--- a/test/language/statements/class/fields-same-line-async-gen-static-computed-symbol-names.js
+++ b/test/language/statements/class/fields-same-line-async-gen-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, async-iteration]
+features: [Symbol, computed-property-names, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-gen-static-literal-names.js b/test/language/statements/class/fields-same-line-async-gen-static-literal-names.js
index d6edc9adc3..2040027f11 100644
--- a/test/language/statements/class/fields-same-line-async-gen-static-literal-names.js
+++ b/test/language/statements/class/fields-same-line-async-gen-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-gen-static-private-names.js b/test/language/statements/class/fields-same-line-async-gen-static-private-names.js
index 137c63411c..a29c3e6ed7 100644
--- a/test/language/statements/class/fields-same-line-async-gen-static-private-names.js
+++ b/test/language/statements/class/fields-same-line-async-gen-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class-fields-private, class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-gen-string-literal-names.js b/test/language/statements/class/fields-same-line-async-gen-string-literal-names.js
index dbd1e54349..01a18bebd9 100644
--- a/test/language/statements/class/fields-same-line-async-gen-string-literal-names.js
+++ b/test/language/statements/class/fields-same-line-async-gen-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions after an async generator in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-iteration]
+features: [class, class-fields-public, async-iteration]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-method-computed-names.js b/test/language/statements/class/fields-same-line-async-method-computed-names.js
index 7019911d65..5f51ec0c59 100644
--- a/test/language/statements/class/fields-same-line-async-method-computed-names.js
+++ b/test/language/statements/class/fields-same-line-async-method-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, async-functions]
+features: [computed-property-names, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-method-computed-symbol-names.js b/test/language/statements/class/fields-same-line-async-method-computed-symbol-names.js
index 356272939c..4c0e85f0bc 100644
--- a/test/language/statements/class/fields-same-line-async-method-computed-symbol-names.js
+++ b/test/language/statements/class/fields-same-line-async-method-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, async-functions]
+features: [Symbol, computed-property-names, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-method-literal-names.js b/test/language/statements/class/fields-same-line-async-method-literal-names.js
index 38171cd761..056461df19 100644
--- a/test/language/statements/class/fields-same-line-async-method-literal-names.js
+++ b/test/language/statements/class/fields-same-line-async-method-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-method-private-names.js b/test/language/statements/class/fields-same-line-async-method-private-names.js
index be1f0562fe..5735b08153 100644
--- a/test/language/statements/class/fields-same-line-async-method-private-names.js
+++ b/test/language/statements/class/fields-same-line-async-method-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class-fields-private, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-method-static-computed-names.js b/test/language/statements/class/fields-same-line-async-method-static-computed-names.js
index d4d24c246e..f4e8186062 100644
--- a/test/language/statements/class/fields-same-line-async-method-static-computed-names.js
+++ b/test/language/statements/class/fields-same-line-async-method-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, async-functions]
+features: [computed-property-names, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-method-static-computed-symbol-names.js b/test/language/statements/class/fields-same-line-async-method-static-computed-symbol-names.js
index 48c781f4eb..82aeb6e710 100644
--- a/test/language/statements/class/fields-same-line-async-method-static-computed-symbol-names.js
+++ b/test/language/statements/class/fields-same-line-async-method-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, async-functions]
+features: [Symbol, computed-property-names, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-method-static-literal-names.js b/test/language/statements/class/fields-same-line-async-method-static-literal-names.js
index 0443ffe0cb..2208c8cfca 100644
--- a/test/language/statements/class/fields-same-line-async-method-static-literal-names.js
+++ b/test/language/statements/class/fields-same-line-async-method-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-method-static-private-names.js b/test/language/statements/class/fields-same-line-async-method-static-private-names.js
index dbbc0f0303..4361e51266 100644
--- a/test/language/statements/class/fields-same-line-async-method-static-private-names.js
+++ b/test/language/statements/class/fields-same-line-async-method-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class-fields-private, class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-async-method-string-literal-names.js b/test/language/statements/class/fields-same-line-async-method-string-literal-names.js
index cad2ee6605..18986604f0 100644
--- a/test/language/statements/class/fields-same-line-async-method-string-literal-names.js
+++ b/test/language/statements/class/fields-same-line-async-method-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions after an async method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, async-functions]
+features: [class, class-fields-public, async-functions]
 flags: [generated, async]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-gen-computed-names.js b/test/language/statements/class/fields-same-line-gen-computed-names.js
index a8e1d6f071..d46fc2aa29 100644
--- a/test/language/statements/class/fields-same-line-gen-computed-names.js
+++ b/test/language/statements/class/fields-same-line-gen-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, generators]
+features: [computed-property-names, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-gen-computed-symbol-names.js b/test/language/statements/class/fields-same-line-gen-computed-symbol-names.js
index fa7d3163c7..82b5440f04 100644
--- a/test/language/statements/class/fields-same-line-gen-computed-symbol-names.js
+++ b/test/language/statements/class/fields-same-line-gen-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, generators]
+features: [Symbol, computed-property-names, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-gen-literal-names.js b/test/language/statements/class/fields-same-line-gen-literal-names.js
index f11e80436f..a473fda3f4 100644
--- a/test/language/statements/class/fields-same-line-gen-literal-names.js
+++ b/test/language/statements/class/fields-same-line-gen-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-gen-private-names.js b/test/language/statements/class/fields-same-line-gen-private-names.js
index 28322bf60a..435c2c8fd9 100644
--- a/test/language/statements/class/fields-same-line-gen-private-names.js
+++ b/test/language/statements/class/fields-same-line-gen-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class-fields-private, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-gen-static-computed-names.js b/test/language/statements/class/fields-same-line-gen-static-computed-names.js
index 1676f0f340..1e4b9d9841 100644
--- a/test/language/statements/class/fields-same-line-gen-static-computed-names.js
+++ b/test/language/statements/class/fields-same-line-gen-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields, generators]
+features: [computed-property-names, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-gen-static-computed-symbol-names.js b/test/language/statements/class/fields-same-line-gen-static-computed-symbol-names.js
index 6b4f64e8b7..8c2d1b4e2c 100644
--- a/test/language/statements/class/fields-same-line-gen-static-computed-symbol-names.js
+++ b/test/language/statements/class/fields-same-line-gen-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields, generators]
+features: [Symbol, computed-property-names, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-gen-static-literal-names.js b/test/language/statements/class/fields-same-line-gen-static-literal-names.js
index 2cbe1a6a24..fc52157886 100644
--- a/test/language/statements/class/fields-same-line-gen-static-literal-names.js
+++ b/test/language/statements/class/fields-same-line-gen-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-gen-static-private-names.js b/test/language/statements/class/fields-same-line-gen-static-private-names.js
index 6b8d2331ea..9ae9e69763 100644
--- a/test/language/statements/class/fields-same-line-gen-static-private-names.js
+++ b/test/language/statements/class/fields-same-line-gen-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class-fields-private, class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-gen-string-literal-names.js b/test/language/statements/class/fields-same-line-gen-string-literal-names.js
index 11c736680a..2b86174641 100644
--- a/test/language/statements/class/fields-same-line-gen-string-literal-names.js
+++ b/test/language/statements/class/fields-same-line-gen-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions followed by a generator method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields, generators]
+features: [class, class-fields-public, generators]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-method-computed-names.js b/test/language/statements/class/fields-same-line-method-computed-names.js
index e77aaa6a3f..7157e46e18 100644
--- a/test/language/statements/class/fields-same-line-method-computed-names.js
+++ b/test/language/statements/class/fields-same-line-method-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-method-computed-symbol-names.js b/test/language/statements/class/fields-same-line-method-computed-symbol-names.js
index b9193c81c7..ee373b465d 100644
--- a/test/language/statements/class/fields-same-line-method-computed-symbol-names.js
+++ b/test/language/statements/class/fields-same-line-method-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-method-literal-names.js b/test/language/statements/class/fields-same-line-method-literal-names.js
index 5bcd714b44..e3caff61aa 100644
--- a/test/language/statements/class/fields-same-line-method-literal-names.js
+++ b/test/language/statements/class/fields-same-line-method-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-method-private-names.js b/test/language/statements/class/fields-same-line-method-private-names.js
index 92016818b7..070db9093b 100644
--- a/test/language/statements/class/fields-same-line-method-private-names.js
+++ b/test/language/statements/class/fields-same-line-method-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-method-static-computed-names.js b/test/language/statements/class/fields-same-line-method-static-computed-names.js
index 8f4e88dd93..df4668a4f0 100644
--- a/test/language/statements/class/fields-same-line-method-static-computed-names.js
+++ b/test/language/statements/class/fields-same-line-method-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-method-static-computed-symbol-names.js b/test/language/statements/class/fields-same-line-method-static-computed-symbol-names.js
index ecb50a7622..0c06e52cd5 100644
--- a/test/language/statements/class/fields-same-line-method-static-computed-symbol-names.js
+++ b/test/language/statements/class/fields-same-line-method-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-method-static-literal-names.js b/test/language/statements/class/fields-same-line-method-static-literal-names.js
index 6880744140..63f6a707aa 100644
--- a/test/language/statements/class/fields-same-line-method-static-literal-names.js
+++ b/test/language/statements/class/fields-same-line-method-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-method-static-private-names.js b/test/language/statements/class/fields-same-line-method-static-private-names.js
index 0a862faf1c..5e8af08e08 100644
--- a/test/language/statements/class/fields-same-line-method-static-private-names.js
+++ b/test/language/statements/class/fields-same-line-method-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-same-line-method-string-literal-names.js b/test/language/statements/class/fields-same-line-method-string-literal-names.js
index 2f4b901a53..50ffafe2f9 100644
--- a/test/language/statements/class/fields-same-line-method-string-literal-names.js
+++ b/test/language/statements/class/fields-same-line-method-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (field definitions followed by a method in the same line)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-static-comp-name-init-err-contains-arguments.js b/test/language/statements/class/fields-static-comp-name-init-err-contains-arguments.js
index d900a93f32..888651a8ca 100644
--- a/test/language/statements/class/fields-static-comp-name-init-err-contains-arguments.js
+++ b/test/language/statements/class/fields-static-comp-name-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (static computed ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-static-comp-name-init-err-contains-super.js b/test/language/statements/class/fields-static-comp-name-init-err-contains-super.js
index 99b7820ddf..f2cbcf1b40 100644
--- a/test/language/statements/class/fields-static-comp-name-init-err-contains-super.js
+++ b/test/language/statements/class/fields-static-comp-name-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (static computed ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-static-computed-name-toprimitive-symbol.js b/test/language/statements/class/fields-static-computed-name-toprimitive-symbol.js
index a4517c5982..4dc05f631e 100644
--- a/test/language/statements/class/fields-static-computed-name-toprimitive-symbol.js
+++ b/test/language/statements/class/fields-static-computed-name-toprimitive-symbol.js
@@ -4,7 +4,7 @@
 /*---
 description: ToPrimitive evaluation in the ComputedPropertyName (field definitions in a class declaration)
 esid: prod-FieldDefinition
-features: [computed-property-names, Symbol.toPrimitive, Symbol, class-fields]
+features: [computed-property-names, Symbol.toPrimitive, Symbol, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-static-computed-name-toprimitive.js b/test/language/statements/class/fields-static-computed-name-toprimitive.js
index e965668903..9a98f4cf39 100644
--- a/test/language/statements/class/fields-static-computed-name-toprimitive.js
+++ b/test/language/statements/class/fields-static-computed-name-toprimitive.js
@@ -4,7 +4,7 @@
 /*---
 description: ToPrimitive evaluation in the ComputedPropertyName (field definitions in a class declaration)
 esid: prod-FieldDefinition
-features: [computed-property-names, Symbol.toPrimitive, class-fields]
+features: [computed-property-names, Symbol.toPrimitive, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-static-literal-init-err-contains-arguments.js b/test/language/statements/class/fields-static-literal-init-err-contains-arguments.js
index d617e1f064..2ab39b2d26 100644
--- a/test/language/statements/class/fields-static-literal-init-err-contains-arguments.js
+++ b/test/language/statements/class/fields-static-literal-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (static literal ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-static-literal-init-err-contains-super.js b/test/language/statements/class/fields-static-literal-init-err-contains-super.js
index daf539141e..5cc75cff59 100644
--- a/test/language/statements/class/fields-static-literal-init-err-contains-super.js
+++ b/test/language/statements/class/fields-static-literal-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (static literal ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-static-private-init-err-contains-arguments.js b/test/language/statements/class/fields-static-private-init-err-contains-arguments.js
index ff0698b4db..ce8be545b4 100644
--- a/test/language/statements/class/fields-static-private-init-err-contains-arguments.js
+++ b/test/language/statements/class/fields-static-private-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (static PrivateName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-static-private-init-err-contains-super.js b/test/language/statements/class/fields-static-private-init-err-contains-super.js
index 7e72af1e41..d2f70f451a 100644
--- a/test/language/statements/class/fields-static-private-init-err-contains-super.js
+++ b/test/language/statements/class/fields-static-private-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (static PrivateName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public, class-fields-private]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-static-redeclaration-symbol.js b/test/language/statements/class/fields-static-redeclaration-symbol.js
index 9c80524928..0b0b7eefe7 100644
--- a/test/language/statements/class/fields-static-redeclaration-symbol.js
+++ b/test/language/statements/class/fields-static-redeclaration-symbol.js
@@ -4,7 +4,7 @@
 /*---
 description: Redeclaration of public static fields with the same name (field definitions in a class declaration)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js, compareArray.js]
 info: |
diff --git a/test/language/statements/class/fields-static-redeclaration.js b/test/language/statements/class/fields-static-redeclaration.js
index f3271daecb..26d592b667 100644
--- a/test/language/statements/class/fields-static-redeclaration.js
+++ b/test/language/statements/class/fields-static-redeclaration.js
@@ -4,7 +4,7 @@
 /*---
 description: Redeclaration of public static fields with the same name (field definitions in a class declaration)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js, compareArray.js]
 info: |
diff --git a/test/language/statements/class/fields-static-string-literal-name-init-err-contains-arguments.js b/test/language/statements/class/fields-static-string-literal-name-init-err-contains-arguments.js
index cdb9da011d..2c3608db16 100644
--- a/test/language/statements/class/fields-static-string-literal-name-init-err-contains-arguments.js
+++ b/test/language/statements/class/fields-static-string-literal-name-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (static string literal ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-static-string-literal-name-init-err-contains-super.js b/test/language/statements/class/fields-static-string-literal-name-init-err-contains-super.js
index 4a1f84c10b..66b7e57e2c 100644
--- a/test/language/statements/class/fields-static-string-literal-name-init-err-contains-super.js
+++ b/test/language/statements/class/fields-static-string-literal-name-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (static string literal ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-string-literal-name-init-err-contains-arguments.js b/test/language/statements/class/fields-string-literal-name-init-err-contains-arguments.js
index ddeae856b2..1fdf75b474 100644
--- a/test/language/statements/class/fields-string-literal-name-init-err-contains-arguments.js
+++ b/test/language/statements/class/fields-string-literal-name-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (string literal ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-string-literal-name-init-err-contains-super.js b/test/language/statements/class/fields-string-literal-name-init-err-contains-super.js
index b92f9e8dab..3b99f1fcf1 100644
--- a/test/language/statements/class/fields-string-literal-name-init-err-contains-super.js
+++ b/test/language/statements/class/fields-string-literal-name-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (string literal ClassElementName)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-string-name-propname-constructor.js b/test/language/statements/class/fields-string-name-propname-constructor.js
index 01c65d56b9..222f762275 100644
--- a/test/language/statements/class/fields-string-name-propname-constructor.js
+++ b/test/language/statements/class/fields-string-name-propname-constructor.js
@@ -4,7 +4,7 @@
 /*---
 description: class fields forbid PropName 'constructor' (early error -- PropName of StringLiteral is forbidden value)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-string-name-static-propname-constructor.js b/test/language/statements/class/fields-string-name-static-propname-constructor.js
index af55e061bf..3ce29b2087 100644
--- a/test/language/statements/class/fields-string-name-static-propname-constructor.js
+++ b/test/language/statements/class/fields-string-name-static-propname-constructor.js
@@ -4,7 +4,7 @@
 /*---
 description: static class field forbid PropName 'constructor' (early error -- PropName of StringLiteral is forbidden value)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-string-name-static-propname-prototype.js b/test/language/statements/class/fields-string-name-static-propname-prototype.js
index a8b584ddf7..69ea7375e3 100644
--- a/test/language/statements/class/fields-string-name-static-propname-prototype.js
+++ b/test/language/statements/class/fields-string-name-static-propname-prototype.js
@@ -4,7 +4,7 @@
 /*---
 description: static class fields forbid PropName 'prototype' (early error -- PropName of StringLiteral is forbidden value)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-ternary-init-err-contains-arguments.js b/test/language/statements/class/fields-ternary-init-err-contains-arguments.js
index af78de6bfb..7b9b9ac0a3 100644
--- a/test/language/statements/class/fields-ternary-init-err-contains-arguments.js
+++ b/test/language/statements/class/fields-ternary-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (ternary expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-ternary-init-err-contains-super.js b/test/language/statements/class/fields-ternary-init-err-contains-super.js
index 2fd60ab02a..f6cd257f6e 100644
--- a/test/language/statements/class/fields-ternary-init-err-contains-super.js
+++ b/test/language/statements/class/fields-ternary-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (ternary expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-typeof-init-err-contains-arguments.js b/test/language/statements/class/fields-typeof-init-err-contains-arguments.js
index 118db90ab3..e1c929fc80 100644
--- a/test/language/statements/class/fields-typeof-init-err-contains-arguments.js
+++ b/test/language/statements/class/fields-typeof-init-err-contains-arguments.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `arguments` used in class field (typeof expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-typeof-init-err-contains-super.js b/test/language/statements/class/fields-typeof-init-err-contains-super.js
index 71896312c1..b55231cd65 100644
--- a/test/language/statements/class/fields-typeof-init-err-contains-super.js
+++ b/test/language/statements/class/fields-typeof-init-err-contains-super.js
@@ -4,7 +4,7 @@
 /*---
 description: Syntax error if `super()` used in class field (typeof expression)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 negative:
   phase: early
diff --git a/test/language/statements/class/fields-wrapped-in-sc-computed-names.js b/test/language/statements/class/fields-wrapped-in-sc-computed-names.js
index b9976d643b..5569e5e4fb 100644
--- a/test/language/statements/class/fields-wrapped-in-sc-computed-names.js
+++ b/test/language/statements/class/fields-wrapped-in-sc-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-wrapped-in-sc-computed-symbol-names.js b/test/language/statements/class/fields-wrapped-in-sc-computed-symbol-names.js
index e7991f3cf6..cef596bb74 100644
--- a/test/language/statements/class/fields-wrapped-in-sc-computed-symbol-names.js
+++ b/test/language/statements/class/fields-wrapped-in-sc-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Computed property symbol names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-wrapped-in-sc-literal-names.js b/test/language/statements/class/fields-wrapped-in-sc-literal-names.js
index cf6e06cd4c..caf9edbe98 100644
--- a/test/language/statements/class/fields-wrapped-in-sc-literal-names.js
+++ b/test/language/statements/class/fields-wrapped-in-sc-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Literal property names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-wrapped-in-sc-private-names.js b/test/language/statements/class/fields-wrapped-in-sc-private-names.js
index 7732901b67..440650c832 100644
--- a/test/language/statements/class/fields-wrapped-in-sc-private-names.js
+++ b/test/language/statements/class/fields-wrapped-in-sc-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: static literal private names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 info: |
     ClassElement:
diff --git a/test/language/statements/class/fields-wrapped-in-sc-static-computed-names.js b/test/language/statements/class/fields-wrapped-in-sc-static-computed-names.js
index aca693dc47..e0b48ea721 100644
--- a/test/language/statements/class/fields-wrapped-in-sc-static-computed-names.js
+++ b/test/language/statements/class/fields-wrapped-in-sc-static-computed-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static Computed property names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [computed-property-names, class-fields]
+features: [computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-wrapped-in-sc-static-computed-symbol-names.js b/test/language/statements/class/fields-wrapped-in-sc-static-computed-symbol-names.js
index 3ba23c0da6..6ad4e21619 100644
--- a/test/language/statements/class/fields-wrapped-in-sc-static-computed-symbol-names.js
+++ b/test/language/statements/class/fields-wrapped-in-sc-static-computed-symbol-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static computed property symbol names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [Symbol, computed-property-names, class-fields]
+features: [Symbol, computed-property-names, class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-wrapped-in-sc-static-literal-names.js b/test/language/statements/class/fields-wrapped-in-sc-static-literal-names.js
index 1213491703..4ceef4485c 100644
--- a/test/language/statements/class/fields-wrapped-in-sc-static-literal-names.js
+++ b/test/language/statements/class/fields-wrapped-in-sc-static-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: Static literal property names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
diff --git a/test/language/statements/class/fields-wrapped-in-sc-static-private-names.js b/test/language/statements/class/fields-wrapped-in-sc-static-private-names.js
index cba691dc1c..2238a0c10c 100644
--- a/test/language/statements/class/fields-wrapped-in-sc-static-private-names.js
+++ b/test/language/statements/class/fields-wrapped-in-sc-static-private-names.js
@@ -4,7 +4,7 @@
 /*---
 description: literal private names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class-fields-private, class, class-fields-public]
 flags: [generated]
 info: |
     ClassElement:
diff --git a/test/language/statements/class/fields-wrapped-in-sc-string-literal-names.js b/test/language/statements/class/fields-wrapped-in-sc-string-literal-names.js
index fb29419490..e1ba62e970 100644
--- a/test/language/statements/class/fields-wrapped-in-sc-string-literal-names.js
+++ b/test/language/statements/class/fields-wrapped-in-sc-string-literal-names.js
@@ -4,7 +4,7 @@
 /*---
 description: String literal names (fields definition wrapped in semicolons)
 esid: prod-FieldDefinition
-features: [class-fields]
+features: [class, class-fields-public]
 flags: [generated]
 includes: [propertyHelper.js]
 info: |
-- 
GitLab