From 192c8fd4f60f5a755466c73f9156518feda7014d Mon Sep 17 00:00:00 2001
From: Rick Waldron <waldron.rick@gmail.com>
Date: Tue, 31 Jul 2018 14:23:58 -0400
Subject: [PATCH] Class Fields: features corrections

---
 .../delete-error/cls-expr-field-delete-covered.template   | 2 +-
 .../initializer-error/cls-decl-fields-arrow-fnc.template  | 2 +-
 .../initializer-error/cls-decl-fields-comp-name.template  | 3 ++-
 .../initializer-error/cls-decl-fields-equality.template   | 1 +
 .../cls-decl-fields-literal-name.template                 | 1 +
 .../cls-decl-fields-static-comp-name.template             | 1 +
 .../cls-decl-fields-static-literal-name.template          | 1 +
 .../cls-decl-fields-static-private-name.template          | 1 +
 .../cls-decl-fields-static-string-literal-name.template   | 1 +
 .../cls-decl-fields-string-literal-name.template          | 1 +
 .../initializer-error/cls-decl-fields-ternary.template    | 1 +
 .../initializer-error/cls-decl-fields-typeof.template     | 1 +
 .../initializer-error/cls-expr-fields-arrow-fnc.template  | 2 +-
 .../initializer-error/cls-expr-fields-comp-name.template  | 1 +
 .../initializer-error/cls-expr-fields-equality.template   | 1 +
 .../cls-expr-fields-literal-name.template                 | 1 +
 .../cls-expr-fields-static-comp-name.template             | 1 +
 .../cls-expr-fields-static-literal-name.template          | 1 +
 .../cls-expr-fields-static-private-name.template          | 1 +
 .../cls-expr-fields-static-string-literal-name.template   | 1 +
 .../cls-expr-fields-string-literal-name.template          | 1 +
 .../initializer-error/cls-expr-fields-ternary.template    | 1 +
 .../initializer-error/cls-expr-fields-typeof.template     | 1 +
 .../cls-decl-fields-eval.template                         | 1 +
 .../cls-decl-fields-indirect-eval.template                | 1 +
 .../cls-expr-fields-eval.template                         | 1 +
 .../cls-expr-fields-indirect-eval.template                | 1 +
 .../cls-decl-fields-eval.template                         | 1 +
 .../cls-decl-fields-indirect-eval.template                | 1 +
 .../cls-expr-fields-eval.template                         | 1 +
 .../cls-expr-fields-indirect-eval.template                | 1 +
 .../cls-decl-fields-eval.template                         | 3 +--
 .../cls-decl-fields-indirect-eval.template                | 3 +--
 .../cls-expr-fields-eval.template                         | 3 +--
 .../cls-expr-fields-indirect-eval.template                | 3 +--
 .../cls-decl-fields-eval.template                         | 3 +--
 .../cls-decl-fields-indirect-eval.template                | 3 +--
 .../cls-expr-fields-eval.template                         | 5 ++---
 .../cls-expr-fields-indirect-eval.template                | 5 ++---
 .../initializer-eval-super/cls-decl-fields-eval.template  | 6 +++---
 .../cls-decl-fields-indirect-eval.template                | 3 ++-
 .../initializer-eval-super/cls-expr-fields-eval.template  | 8 ++++----
 .../cls-expr-fields-indirect-eval.template                | 8 ++++----
 .../initializer-eval/cls-decl-fields-eval.template        | 3 ++-
 .../cls-decl-fields-indirect-eval.template                | 3 ++-
 .../initializer-eval/cls-expr-fields-eval.template        | 3 ++-
 .../cls-expr-fields-indirect-eval.template                | 5 +++--
 47 files changed, 64 insertions(+), 39 deletions(-)

diff --git a/src/class-fields/delete-error/cls-expr-field-delete-covered.template b/src/class-fields/delete-error/cls-expr-field-delete-covered.template
index 776e068cb7..9e78934009 100644
--- a/src/class-fields/delete-error/cls-expr-field-delete-covered.template
+++ b/src/class-fields/delete-error/cls-expr-field-delete-covered.template
@@ -13,7 +13,7 @@ info: |
     It is a Syntax Error if the UnaryExpression is contained in strict mode code and the derived UnaryExpression is PrimaryExpression : IdentifierReference , MemberExpression : MemberExpression.PrivateName , or CallExpression : CallExpression.PrivateName .
 
     It is a Syntax Error if the derived UnaryExpression is PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and CoverParenthesizedExpressionAndArrowParameterList ultimately derives a phrase that, if used in place of UnaryExpression, would produce a Syntax Error according to these rules. This rule is recursively applied.
-features: [class, class-fields-private]
+features: [class, class-fields-private, class-fields-public]
 negative:
   type: SyntaxError
   phase: parse
diff --git a/src/class-fields/initializer-error/cls-decl-fields-arrow-fnc.template b/src/class-fields/initializer-error/cls-decl-fields-arrow-fnc.template
index 308297a34a..023d337475 100644
--- a/src/class-fields/initializer-error/cls-decl-fields-arrow-fnc.template
+++ b/src/class-fields/initializer-error/cls-decl-fields-arrow-fnc.template
@@ -5,7 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/statements/class/fields-arrow-fnc-
 name: arrow function expression
-features: [arrow-function]
+features: [arrow-function, class-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-decl-fields-comp-name.template b/src/class-fields/initializer-error/cls-decl-fields-comp-name.template
index a922c25b80..0bdf663715 100644
--- a/src/class-fields/initializer-error/cls-decl-fields-comp-name.template
+++ b/src/class-fields/initializer-error/cls-decl-fields-comp-name.template
@@ -5,11 +5,12 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/statements/class/fields-comp-name-
 name: computed ClassElementName
+features: [class, class-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
 
 var x = "string";
 class C {
-  static [x] = /*{ initializer }*/;
+  [x] = /*{ initializer }*/;
 }
diff --git a/src/class-fields/initializer-error/cls-decl-fields-equality.template b/src/class-fields/initializer-error/cls-decl-fields-equality.template
index 0e5b643e11..7db487e9c2 100644
--- a/src/class-fields/initializer-error/cls-decl-fields-equality.template
+++ b/src/class-fields/initializer-error/cls-decl-fields-equality.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/statements/class/fields-equality-
 name: equality expression
+features: [class, class-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-decl-fields-literal-name.template b/src/class-fields/initializer-error/cls-decl-fields-literal-name.template
index 62060229fa..81cfb27add 100644
--- a/src/class-fields/initializer-error/cls-decl-fields-literal-name.template
+++ b/src/class-fields/initializer-error/cls-decl-fields-literal-name.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/statements/class/fields-literal-name-
 name: literal ClassElementName
+features: [class, class-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-decl-fields-static-comp-name.template b/src/class-fields/initializer-error/cls-decl-fields-static-comp-name.template
index b4eb238479..fe3e30a682 100644
--- a/src/class-fields/initializer-error/cls-decl-fields-static-comp-name.template
+++ b/src/class-fields/initializer-error/cls-decl-fields-static-comp-name.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/statements/class/fields-static-comp-name-
 name: static computed ClassElementName
+features: [class, class-static-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-decl-fields-static-literal-name.template b/src/class-fields/initializer-error/cls-decl-fields-static-literal-name.template
index 335d76793f..87b8ad64cf 100644
--- a/src/class-fields/initializer-error/cls-decl-fields-static-literal-name.template
+++ b/src/class-fields/initializer-error/cls-decl-fields-static-literal-name.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/statements/class/fields-static-literal-
 name: static literal ClassElementName
+features: [class, class-static-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-decl-fields-static-private-name.template b/src/class-fields/initializer-error/cls-decl-fields-static-private-name.template
index c50194b6a5..101b1213f1 100644
--- a/src/class-fields/initializer-error/cls-decl-fields-static-private-name.template
+++ b/src/class-fields/initializer-error/cls-decl-fields-static-private-name.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/statements/class/fields-static-private-
 name: static PrivateName
+features: [class, class-static-fields-private]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-decl-fields-static-string-literal-name.template b/src/class-fields/initializer-error/cls-decl-fields-static-string-literal-name.template
index 5fd801e187..041e2add89 100644
--- a/src/class-fields/initializer-error/cls-decl-fields-static-string-literal-name.template
+++ b/src/class-fields/initializer-error/cls-decl-fields-static-string-literal-name.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/statements/class/fields-static-string-literal-name-
 name: static string literal ClassElementName
+features: [class, class-static-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-decl-fields-string-literal-name.template b/src/class-fields/initializer-error/cls-decl-fields-string-literal-name.template
index b76e487109..61fa803204 100644
--- a/src/class-fields/initializer-error/cls-decl-fields-string-literal-name.template
+++ b/src/class-fields/initializer-error/cls-decl-fields-string-literal-name.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/statements/class/fields-string-literal-name-
 name: string literal ClassElementName
+features: [class, class-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-decl-fields-ternary.template b/src/class-fields/initializer-error/cls-decl-fields-ternary.template
index db729e59c8..400753f2d0 100644
--- a/src/class-fields/initializer-error/cls-decl-fields-ternary.template
+++ b/src/class-fields/initializer-error/cls-decl-fields-ternary.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/statements/class/fields-ternary-
 name: ternary expression
+features: [class, class-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-decl-fields-typeof.template b/src/class-fields/initializer-error/cls-decl-fields-typeof.template
index 86f5598b3b..a634372c0c 100644
--- a/src/class-fields/initializer-error/cls-decl-fields-typeof.template
+++ b/src/class-fields/initializer-error/cls-decl-fields-typeof.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/statements/class/fields-typeof-
 name: typeof expression
+features: [class, class-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-expr-fields-arrow-fnc.template b/src/class-fields/initializer-error/cls-expr-fields-arrow-fnc.template
index 0f20b4d9f8..1a2ad62b29 100644
--- a/src/class-fields/initializer-error/cls-expr-fields-arrow-fnc.template
+++ b/src/class-fields/initializer-error/cls-expr-fields-arrow-fnc.template
@@ -5,7 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/expressions/class/fields-arrow-fnc-
 name: arrow function expression
-features: [arrow-function]
+features: [arrow-function, class, class-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-expr-fields-comp-name.template b/src/class-fields/initializer-error/cls-expr-fields-comp-name.template
index fea438412f..a9e1c2bfc4 100644
--- a/src/class-fields/initializer-error/cls-expr-fields-comp-name.template
+++ b/src/class-fields/initializer-error/cls-expr-fields-comp-name.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/expressions/class/fields-comp-name-
 name: computed ClassElementName
+features: [class, class-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-expr-fields-equality.template b/src/class-fields/initializer-error/cls-expr-fields-equality.template
index 2946f8004d..6f393cc360 100644
--- a/src/class-fields/initializer-error/cls-expr-fields-equality.template
+++ b/src/class-fields/initializer-error/cls-expr-fields-equality.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/expressions/class/fields-equality-
 name: equality expression
+features: [class, class-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-expr-fields-literal-name.template b/src/class-fields/initializer-error/cls-expr-fields-literal-name.template
index 891e285274..98250305d8 100644
--- a/src/class-fields/initializer-error/cls-expr-fields-literal-name.template
+++ b/src/class-fields/initializer-error/cls-expr-fields-literal-name.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/expressions/class/fields-literal-name-
 name: literal ClassElementName
+features: [class, class-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-expr-fields-static-comp-name.template b/src/class-fields/initializer-error/cls-expr-fields-static-comp-name.template
index cb44207f4e..2ad6b7b348 100644
--- a/src/class-fields/initializer-error/cls-expr-fields-static-comp-name.template
+++ b/src/class-fields/initializer-error/cls-expr-fields-static-comp-name.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/expressions/class/fields-static-comp-name-
 name: static computed ClassElementName
+features: [class, class-static-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-expr-fields-static-literal-name.template b/src/class-fields/initializer-error/cls-expr-fields-static-literal-name.template
index 0a840e01ef..57d2960335 100644
--- a/src/class-fields/initializer-error/cls-expr-fields-static-literal-name.template
+++ b/src/class-fields/initializer-error/cls-expr-fields-static-literal-name.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/expressions/class/fields-static-literal-
 name: static literal ClassElementName
+features: [class, class-static-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-expr-fields-static-private-name.template b/src/class-fields/initializer-error/cls-expr-fields-static-private-name.template
index 0d3c770f9b..794d6bf6e9 100644
--- a/src/class-fields/initializer-error/cls-expr-fields-static-private-name.template
+++ b/src/class-fields/initializer-error/cls-expr-fields-static-private-name.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/expressions/class/fields-static-private-
 name: static PrivateName
+features: [class, class-static-fields-private]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-expr-fields-static-string-literal-name.template b/src/class-fields/initializer-error/cls-expr-fields-static-string-literal-name.template
index deed9b15e3..0604760524 100644
--- a/src/class-fields/initializer-error/cls-expr-fields-static-string-literal-name.template
+++ b/src/class-fields/initializer-error/cls-expr-fields-static-string-literal-name.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/expressions/class/fields-static-string-literal-name-
 name: static string literal ClassElementName
+features: [class, class-static-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-expr-fields-string-literal-name.template b/src/class-fields/initializer-error/cls-expr-fields-string-literal-name.template
index 1325036c0c..ebe9845376 100644
--- a/src/class-fields/initializer-error/cls-expr-fields-string-literal-name.template
+++ b/src/class-fields/initializer-error/cls-expr-fields-string-literal-name.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/expressions/class/fields-string-literal-name-
 name: string literal ClassElementName
+features: [class, class-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-expr-fields-ternary.template b/src/class-fields/initializer-error/cls-expr-fields-ternary.template
index 8dd67bed29..0abd1e4747 100644
--- a/src/class-fields/initializer-error/cls-expr-fields-ternary.template
+++ b/src/class-fields/initializer-error/cls-expr-fields-ternary.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/expressions/class/fields-ternary-
 name: ternary expression
+features: [class, class-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-expr-fields-typeof.template b/src/class-fields/initializer-error/cls-expr-fields-typeof.template
index ec75561623..51f54036a8 100644
--- a/src/class-fields/initializer-error/cls-expr-fields-typeof.template
+++ b/src/class-fields/initializer-error/cls-expr-fields-typeof.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/expressions/class/fields-typeof-
 name: typeof expression
+features: [class, class-fields-public]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-eval-arguments/cls-decl-fields-eval.template b/src/class-fields/initializer-eval-arguments/cls-decl-fields-eval.template
index f75aa39e08..90859a8a9a 100644
--- a/src/class-fields/initializer-eval-arguments/cls-decl-fields-eval.template
+++ b/src/class-fields/initializer-eval-arguments/cls-decl-fields-eval.template
@@ -5,6 +5,7 @@
 esid: sec-performeval-rules-in-initializer
 path: language/statements/class/fields-direct-
 name: direct eval
+features: [class, class-fields-public]
 ---*/
 
 var executed = false;
diff --git a/src/class-fields/initializer-eval-arguments/cls-decl-fields-indirect-eval.template b/src/class-fields/initializer-eval-arguments/cls-decl-fields-indirect-eval.template
index 0b795b6e7f..b08b5ee379 100644
--- a/src/class-fields/initializer-eval-arguments/cls-decl-fields-indirect-eval.template
+++ b/src/class-fields/initializer-eval-arguments/cls-decl-fields-indirect-eval.template
@@ -5,6 +5,7 @@
 esid: sec-performeval-rules-in-initializer
 path: language/statements/class/fields-indirect-
 name: indirect eval
+features: [class, class-fields-public]
 ---*/
 
 var executed = false;
diff --git a/src/class-fields/initializer-eval-arguments/cls-expr-fields-eval.template b/src/class-fields/initializer-eval-arguments/cls-expr-fields-eval.template
index a8acc6317b..6afff75bc9 100644
--- a/src/class-fields/initializer-eval-arguments/cls-expr-fields-eval.template
+++ b/src/class-fields/initializer-eval-arguments/cls-expr-fields-eval.template
@@ -5,6 +5,7 @@
 esid: sec-performeval-rules-in-initializer
 path: language/expressions/class/fields-direct-
 name: direct eval
+features: [class, class-fields-public]
 ---*/
 
 var executed = false;
diff --git a/src/class-fields/initializer-eval-arguments/cls-expr-fields-indirect-eval.template b/src/class-fields/initializer-eval-arguments/cls-expr-fields-indirect-eval.template
index 8a37149a33..d6064ff6cb 100644
--- a/src/class-fields/initializer-eval-arguments/cls-expr-fields-indirect-eval.template
+++ b/src/class-fields/initializer-eval-arguments/cls-expr-fields-indirect-eval.template
@@ -5,6 +5,7 @@
 esid: sec-performeval-rules-in-initializer
 path: language/expressions/class/fields-indirect-
 name: indirect eval
+features: [class, class-fields-public]
 ---*/
 
 var executed = false;
diff --git a/src/class-fields/initializer-eval-newtarget/cls-decl-fields-eval.template b/src/class-fields/initializer-eval-newtarget/cls-decl-fields-eval.template
index 8ef1ea4d36..fce4c331aa 100644
--- a/src/class-fields/initializer-eval-newtarget/cls-decl-fields-eval.template
+++ b/src/class-fields/initializer-eval-newtarget/cls-decl-fields-eval.template
@@ -5,6 +5,7 @@
 esid: sec-performeval-rules-in-initializer
 path: language/statements/class/fields-direct-
 name: direct eval
+features: [class, class-fields-public]
 ---*/
 
 var executed = false;
diff --git a/src/class-fields/initializer-eval-newtarget/cls-decl-fields-indirect-eval.template b/src/class-fields/initializer-eval-newtarget/cls-decl-fields-indirect-eval.template
index ee4630ca19..57db803472 100644
--- a/src/class-fields/initializer-eval-newtarget/cls-decl-fields-indirect-eval.template
+++ b/src/class-fields/initializer-eval-newtarget/cls-decl-fields-indirect-eval.template
@@ -5,6 +5,7 @@
 esid: sec-performeval-rules-in-initializer
 path: language/statements/class/fields-indirect-
 name: indirect eval
+features: [class, class-fields-public]
 ---*/
 
 var executed = false;
diff --git a/src/class-fields/initializer-eval-newtarget/cls-expr-fields-eval.template b/src/class-fields/initializer-eval-newtarget/cls-expr-fields-eval.template
index 1c6b4b438b..bdadf99c0b 100644
--- a/src/class-fields/initializer-eval-newtarget/cls-expr-fields-eval.template
+++ b/src/class-fields/initializer-eval-newtarget/cls-expr-fields-eval.template
@@ -5,6 +5,7 @@
 esid: sec-performeval-rules-in-initializer
 path: language/expressions/class/fields-direct-
 name: direct eval
+features: [class, class-fields-public]
 ---*/
 
 var executed = false;
diff --git a/src/class-fields/initializer-eval-newtarget/cls-expr-fields-indirect-eval.template b/src/class-fields/initializer-eval-newtarget/cls-expr-fields-indirect-eval.template
index 1c8bbf5979..0acfccf7df 100644
--- a/src/class-fields/initializer-eval-newtarget/cls-expr-fields-indirect-eval.template
+++ b/src/class-fields/initializer-eval-newtarget/cls-expr-fields-indirect-eval.template
@@ -5,6 +5,7 @@
 esid: sec-performeval-rules-in-initializer
 path: language/expressions/class/fields-indirect-
 name: indirect eval
+features: [class, class-fields-public]
 ---*/
 
 var executed = false;
diff --git a/src/class-fields/initializer-eval-super-call/cls-decl-fields-eval.template b/src/class-fields/initializer-eval-super-call/cls-decl-fields-eval.template
index 8ec98eac91..53579b49d3 100644
--- a/src/class-fields/initializer-eval-super-call/cls-decl-fields-eval.template
+++ b/src/class-fields/initializer-eval-super-call/cls-decl-fields-eval.template
@@ -7,9 +7,8 @@ path: language/statements/class/fields-derived-cls-direct-
 name: direct eval
 ---*/
 
-class A {}
-
 var executed = false;
+class A {}
 class C extends A {
   x = eval('executed = true; /*{ initializer }*/;');
 }
diff --git a/src/class-fields/initializer-eval-super-call/cls-decl-fields-indirect-eval.template b/src/class-fields/initializer-eval-super-call/cls-decl-fields-indirect-eval.template
index 0f9a97c6eb..ad0bf241de 100644
--- a/src/class-fields/initializer-eval-super-call/cls-decl-fields-indirect-eval.template
+++ b/src/class-fields/initializer-eval-super-call/cls-decl-fields-indirect-eval.template
@@ -7,9 +7,8 @@ path: language/statements/class/fields-derived-cls-indirect-
 name: indirect eval
 ---*/
 
-class A {}
-
 var executed = false;
+class A {}
 class C extends A {
   x = (0, eval)('executed = true; /*{ initializer }*/;');
 }
diff --git a/src/class-fields/initializer-eval-super-call/cls-expr-fields-eval.template b/src/class-fields/initializer-eval-super-call/cls-expr-fields-eval.template
index 65ab9d8dbd..1c9716a7a9 100644
--- a/src/class-fields/initializer-eval-super-call/cls-expr-fields-eval.template
+++ b/src/class-fields/initializer-eval-super-call/cls-expr-fields-eval.template
@@ -7,9 +7,8 @@ path: language/expressions/class/fields-derived-cls-direct-
 name: direct eval
 ---*/
 
-var A = class {}
-
 var executed = false;
+var A = class {}
 var C = class extends A {
   x = eval('executed = true; /*{ initializer }*/;');
 }
diff --git a/src/class-fields/initializer-eval-super-call/cls-expr-fields-indirect-eval.template b/src/class-fields/initializer-eval-super-call/cls-expr-fields-indirect-eval.template
index 83415b3df4..28f8bfe58b 100644
--- a/src/class-fields/initializer-eval-super-call/cls-expr-fields-indirect-eval.template
+++ b/src/class-fields/initializer-eval-super-call/cls-expr-fields-indirect-eval.template
@@ -7,9 +7,8 @@ path: language/expressions/class/fields-derived-cls-indirect-
 name: indirect eval
 ---*/
 
-var A = class {}
-
 var executed = false;
+var A = class {}
 var C = class extends A {
   x = (0, eval)('executed = true; /*{ initializer }*/;');
 }
diff --git a/src/class-fields/initializer-eval-super-property/cls-decl-fields-eval.template b/src/class-fields/initializer-eval-super-property/cls-decl-fields-eval.template
index a994b1e45c..52b0180ab8 100644
--- a/src/class-fields/initializer-eval-super-property/cls-decl-fields-eval.template
+++ b/src/class-fields/initializer-eval-super-property/cls-decl-fields-eval.template
@@ -7,9 +7,8 @@ path: language/statements/class/fields-derived-cls-direct-
 name: direct eval
 ---*/
 
-class A {}
-
 var executed = false;
+class A {}
 class C extends A {
   x = eval('executed = true; /*{ initializer }*/;');
 }
diff --git a/src/class-fields/initializer-eval-super-property/cls-decl-fields-indirect-eval.template b/src/class-fields/initializer-eval-super-property/cls-decl-fields-indirect-eval.template
index 0f9a97c6eb..ad0bf241de 100644
--- a/src/class-fields/initializer-eval-super-property/cls-decl-fields-indirect-eval.template
+++ b/src/class-fields/initializer-eval-super-property/cls-decl-fields-indirect-eval.template
@@ -7,9 +7,8 @@ path: language/statements/class/fields-derived-cls-indirect-
 name: indirect eval
 ---*/
 
-class A {}
-
 var executed = false;
+class A {}
 class C extends A {
   x = (0, eval)('executed = true; /*{ initializer }*/;');
 }
diff --git a/src/class-fields/initializer-eval-super-property/cls-expr-fields-eval.template b/src/class-fields/initializer-eval-super-property/cls-expr-fields-eval.template
index b7ca546beb..61bb0eeb75 100644
--- a/src/class-fields/initializer-eval-super-property/cls-expr-fields-eval.template
+++ b/src/class-fields/initializer-eval-super-property/cls-expr-fields-eval.template
@@ -7,12 +7,11 @@ path: language/expressions/class/fields-derived-cls-direct-
 name: direct eval
 ---*/
 
-var A = class {}
-
 var executed = false;
+var A = class {}
 var C = class extends A {
   x = eval('executed = true; /*{ initializer }*/;');
-}
+};
 
 new C();
 
diff --git a/src/class-fields/initializer-eval-super-property/cls-expr-fields-indirect-eval.template b/src/class-fields/initializer-eval-super-property/cls-expr-fields-indirect-eval.template
index 83415b3df4..02db8f40f1 100644
--- a/src/class-fields/initializer-eval-super-property/cls-expr-fields-indirect-eval.template
+++ b/src/class-fields/initializer-eval-super-property/cls-expr-fields-indirect-eval.template
@@ -7,12 +7,11 @@ path: language/expressions/class/fields-derived-cls-indirect-
 name: indirect eval
 ---*/
 
-var A = class {}
-
 var executed = false;
+var A = class {}
 var C = class extends A {
   x = (0, eval)('executed = true; /*{ initializer }*/;');
-}
+};
 
 assert.throws(SyntaxError, function() {
   new C();
diff --git a/src/class-fields/initializer-eval-super/cls-decl-fields-eval.template b/src/class-fields/initializer-eval-super/cls-decl-fields-eval.template
index 101cf30b38..9c94c4f969 100644
--- a/src/class-fields/initializer-eval-super/cls-decl-fields-eval.template
+++ b/src/class-fields/initializer-eval-super/cls-decl-fields-eval.template
@@ -5,12 +5,12 @@
 esid: sec-performeval-rules-in-initializer
 path: language/statements/class/fields-derived-cls-direct-
 name: direct eval
+features: [class, class-fields-public]
 ---*/
 
-class A = {}
-
 var executed = false;
-class C extends A = {
+class A = {}
+class C extends A {
   x = eval('executed = true; /*{ initializer }*/;';
 }
 
diff --git a/src/class-fields/initializer-eval-super/cls-decl-fields-indirect-eval.template b/src/class-fields/initializer-eval-super/cls-decl-fields-indirect-eval.template
index 9d77186bf2..98200556b6 100644
--- a/src/class-fields/initializer-eval-super/cls-decl-fields-indirect-eval.template
+++ b/src/class-fields/initializer-eval-super/cls-decl-fields-indirect-eval.template
@@ -5,12 +5,13 @@
 esid: sec-performeval-rules-in-initializer
 path: language/statements/class/fields-derived-cls-indirect-
 name: indirect eval
+features: [class, class-fields-public]
 ---*/
 
 class A = {}
 
 var executed = false;
-class C extends A = {
+class C extends A {
   x = (0, eval)('executed = true; /*{ initializer }*/;';
 }
 
diff --git a/src/class-fields/initializer-eval-super/cls-expr-fields-eval.template b/src/class-fields/initializer-eval-super/cls-expr-fields-eval.template
index 39597e8807..83a2632f7b 100644
--- a/src/class-fields/initializer-eval-super/cls-expr-fields-eval.template
+++ b/src/class-fields/initializer-eval-super/cls-expr-fields-eval.template
@@ -5,14 +5,14 @@
 esid: sec-performeval-rules-in-initializer
 path: language/expressions/class/fields-derived-cls-direct-
 name: direct eval
+features: [class, class-fields-public]
 ---*/
 
-A = class {}
-
 var executed = false;
-C = class extends A {
+var A = class {}
+var C = class extends A {
   x = eval('executed = true; /*{ initializer }*/;';
-}
+};
 
 assert.throws(/*{ earlyerror }*/, function() {
   new C();
diff --git a/src/class-fields/initializer-eval-super/cls-expr-fields-indirect-eval.template b/src/class-fields/initializer-eval-super/cls-expr-fields-indirect-eval.template
index 86db54edbc..2af99eb271 100644
--- a/src/class-fields/initializer-eval-super/cls-expr-fields-indirect-eval.template
+++ b/src/class-fields/initializer-eval-super/cls-expr-fields-indirect-eval.template
@@ -5,14 +5,14 @@
 esid: sec-performeval-rules-in-initializer
 path: language/expressions/class/fields-derived-cls-indirect-
 name: indirect eval
+features: [class, class-fields-public]
 ---*/
 
-A = class {}
-
 var executed = false;
-C = class extends A {
+var A = class {}
+var C = class extends A {
   x = (0, eval)('executed = true; /*{ initializer }*/;';
-}
+};
 
 assert.throws(/*{ executionerror }*/, function() {
   new C();
diff --git a/src/class-fields/initializer-eval/cls-decl-fields-eval.template b/src/class-fields/initializer-eval/cls-decl-fields-eval.template
index ed721afebe..90859a8a9a 100644
--- a/src/class-fields/initializer-eval/cls-decl-fields-eval.template
+++ b/src/class-fields/initializer-eval/cls-decl-fields-eval.template
@@ -5,10 +5,11 @@
 esid: sec-performeval-rules-in-initializer
 path: language/statements/class/fields-direct-
 name: direct eval
+features: [class, class-fields-public]
 ---*/
 
 var executed = false;
-class C = {
+class C {
   x = eval('executed = true; /*{ initializer }*/;');
 }
 
diff --git a/src/class-fields/initializer-eval/cls-decl-fields-indirect-eval.template b/src/class-fields/initializer-eval/cls-decl-fields-indirect-eval.template
index 11aa34d0da..b08b5ee379 100644
--- a/src/class-fields/initializer-eval/cls-decl-fields-indirect-eval.template
+++ b/src/class-fields/initializer-eval/cls-decl-fields-indirect-eval.template
@@ -5,10 +5,11 @@
 esid: sec-performeval-rules-in-initializer
 path: language/statements/class/fields-indirect-
 name: indirect eval
+features: [class, class-fields-public]
 ---*/
 
 var executed = false;
-class C = {
+class C {
   x = (0, eval)('executed = true; /*{ initializer }*/;');
 }
 
diff --git a/src/class-fields/initializer-eval/cls-expr-fields-eval.template b/src/class-fields/initializer-eval/cls-expr-fields-eval.template
index 9915d0d098..6afff75bc9 100644
--- a/src/class-fields/initializer-eval/cls-expr-fields-eval.template
+++ b/src/class-fields/initializer-eval/cls-expr-fields-eval.template
@@ -5,10 +5,11 @@
 esid: sec-performeval-rules-in-initializer
 path: language/expressions/class/fields-direct-
 name: direct eval
+features: [class, class-fields-public]
 ---*/
 
 var executed = false;
-C = class {
+var C = class {
   x = eval('executed = true; /*{ initializer }*/;');
 }
 
diff --git a/src/class-fields/initializer-eval/cls-expr-fields-indirect-eval.template b/src/class-fields/initializer-eval/cls-expr-fields-indirect-eval.template
index d04a83dfb9..2716c4ace7 100644
--- a/src/class-fields/initializer-eval/cls-expr-fields-indirect-eval.template
+++ b/src/class-fields/initializer-eval/cls-expr-fields-indirect-eval.template
@@ -5,12 +5,13 @@
 esid: sec-performeval-rules-in-initializer
 path: language/expressions/class/fields-indirect-
 name: indirect eval
+features: [class, class-fields-public]
 ---*/
 
 var executed = false;
-C = class {
+var C = class {
   x = (0, eval)('executed = true; /*{ initializer }*/;');
-}
+};
 
 assert.throws(/*{ executionerror }*/, function() {
   new C();
-- 
GitLab