diff --git a/src/class-fields/eval-err-contains-newcall.case b/src/class-fields/eval-err-contains-newcall.case
new file mode 100644
index 0000000000000000000000000000000000000000..530988a5bd16cb9f400055da9e1ebed1570a28c8
--- /dev/null
+++ b/src/class-fields/eval-err-contains-newcall.case
@@ -0,0 +1,28 @@
+// Copyright (C) 2017 Valerie Young. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: error if `new.call` in StatementList of eval
+info: |
+  Additional Early Error Rules for Eval Inside Initializer
+  These static semantics are applied by PerformEval when a direct eval call occurs inside a class field initializer.
+  ScriptBody : StatementList
+
+    ...
+    The remaining eval rules apply as outside a constructor, inside a method, and inside a function.
+
+  Additional Early Error Rules for Eval Outside Functions
+  These static semantics are applied by PerformEval when a direct eval call occurs outside of any function.
+  ScriptBody:StatementList
+
+    It is a Syntax Error if StatementList Contains NewTarget.
+features: [class, class-fields-public]
+template: initializer-eval
+---*/
+
+//- initializer
+new.call
+//- earlyerror
+SyntaxError
+//- executionerror
+SyntaxError
diff --git a/src/class-fields/eval-err-contains-supercall-1.case b/src/class-fields/eval-err-contains-supercall-1.case
index 27469abd5e77120bcdc8cd4d4298f688bd8e44a6..5700ca64ee627dbf9b1f05e54a3a737fcba659f1 100644
--- a/src/class-fields/eval-err-contains-supercall-1.case
+++ b/src/class-fields/eval-err-contains-supercall-1.case
@@ -22,3 +22,8 @@ template: initializer-eval-super-call
 
 //- initializer
 super()['x']
+
+//- earlyerror
+SyntaxError
+//- executionerror
+SyntaxError
diff --git a/src/class-fields/eval-err-contains-supercall-2.case b/src/class-fields/eval-err-contains-supercall-2.case
index cdddc779173845b1f5e91541b2d31f576638dbea..1c6a7b00b79dcec96d175b039cb7fb1e7868ca1d 100644
--- a/src/class-fields/eval-err-contains-supercall-2.case
+++ b/src/class-fields/eval-err-contains-supercall-2.case
@@ -4,21 +4,19 @@
 /*---
 desc: error if `super().x` in StatementList of eval
 info: |
-  Additional Early Error Rules for Eval Inside Initializer
-  These static semantics are applied by PerformEval when a direct eval call occurs inside a class field initializer.
-  ScriptBody : StatementList
-
-    ...
-    The remaining eval rules apply as outside a constructor, inside a method, and inside a function.
-
   Additional Early Error Rules for Eval Outside Constructor Methods
   These static semantics are applied by PerformEval when a direct eval call occurs outside of the constructor method of a ClassDeclaration or ClassExpression.
   ScriptBody:StatementList
 
     It is a Syntax Error if StatementList Contains SuperCall.
+
 features: [class, class-fields-public]
 template: initializer-eval-super-call
 ---*/
 
 //- initializer
 super().x
+//- earlyerror
+SyntaxError
+//- executionerror
+SyntaxError
diff --git a/src/class-fields/eval-err-contains-supercall.case b/src/class-fields/eval-err-contains-supercall.case
index 55e7f213f27e8c6d15b2029b9a6bb2f1640be7cb..9681120f08b60eca6acc6a0ff9773a5919756abd 100644
--- a/src/class-fields/eval-err-contains-supercall.case
+++ b/src/class-fields/eval-err-contains-supercall.case
@@ -22,3 +22,7 @@ template: initializer-eval-super-call
 
 //- initializer
 super()
+//- earlyerror
+SyntaxError
+//- executionerror
+SyntaxError
diff --git a/src/class-fields/eval-err-contains-superproperty-1.case b/src/class-fields/eval-err-contains-superproperty-1.case
index 9241e3a1c4e4e0928b87006e9869b234ca6adc52..14706db8deac7c3cf2ca61810552760420002554 100644
--- a/src/class-fields/eval-err-contains-superproperty-1.case
+++ b/src/class-fields/eval-err-contains-superproperty-1.case
@@ -22,3 +22,7 @@ template: initializer-eval-super-property
 
 //- initializer
 super.x
+//- earlyerror
+SyntaxError
+//- executionerror
+SyntaxError
diff --git a/src/class-fields/eval-err-contains-superproperty-2.case b/src/class-fields/eval-err-contains-superproperty-2.case
index f770e42cdb89a41e850f5271e1daa876287334db..33fa810bdef7f0bfa1477153a7bcb1486a53ffe0 100644
--- a/src/class-fields/eval-err-contains-superproperty-2.case
+++ b/src/class-fields/eval-err-contains-superproperty-2.case
@@ -4,11 +4,6 @@
 /*---
 desc: error if `super['x']` in StatementList of eval
 info: |
-  Additional Early Error Rules for Eval Inside Initializer
-  These static semantics are applied by PerformEval when a direct eval call occurs inside a class field initializer.
-  ScriptBody : StatementList
-
-    ...
     The remaining eval rules apply as outside a constructor, inside a method, and inside a function.
 
   Additional Early Error Rules for Eval Outside Methods
@@ -16,9 +11,14 @@ info: |
   ScriptBody:StatementList
 
     It is a Syntax Error if StatementList Contains SuperProperty.
+
 features: [class, class-fields-public]
 template: initializer-eval-super-property
 ---*/
 
 //- initializer
 super['x']
+//- earlyerror
+SyntaxError
+//- executionerror
+SyntaxError
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
new file mode 100644
index 0000000000000000000000000000000000000000..101cf30b3849b1351ef0f0bc7a7a68264fabbe21
--- /dev/null
+++ b/src/class-fields/initializer-eval-super/cls-decl-fields-eval.template
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 Valerie Young. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-performeval-rules-in-initializer
+path: language/statements/class/fields-derived-cls-direct-
+name: direct eval
+---*/
+
+class A = {}
+
+var executed = false;
+class C extends A = {
+  x = eval('executed = true; /*{ initializer }*/;';
+}
+
+assert.throws(/*{ earlyerror }*/, function() {
+  new C();
+});
+
+assert.sameValue(executed, false);
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
new file mode 100644
index 0000000000000000000000000000000000000000..9d77186bf2be562b9df21a7e227321be4c168228
--- /dev/null
+++ b/src/class-fields/initializer-eval-super/cls-decl-fields-indirect-eval.template
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 Valerie Young. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-performeval-rules-in-initializer
+path: language/statements/class/fields-derived-cls-indirect-
+name: indirect eval
+---*/
+
+class A = {}
+
+var executed = false;
+class C extends A = {
+  x = (0, eval)('executed = true; /*{ initializer }*/;';
+}
+
+assert.throws(/*{ executionerror }*/, function() {
+  new C();
+});
+
+assert.sameValue(executed, true);
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
new file mode 100644
index 0000000000000000000000000000000000000000..39597e8807faec82718408a6f01494e9f58ed20c
--- /dev/null
+++ b/src/class-fields/initializer-eval-super/cls-expr-fields-eval.template
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 Valerie Young. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-performeval-rules-in-initializer
+path: language/expressions/class/fields-derived-cls-direct-
+name: direct eval
+---*/
+
+A = class {}
+
+var executed = false;
+C = class extends A {
+  x = eval('executed = true; /*{ initializer }*/;';
+}
+
+assert.throws(/*{ earlyerror }*/, function() {
+  new C();
+});
+
+assert.sameValue(executed, false);
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
new file mode 100644
index 0000000000000000000000000000000000000000..86db54edbc1f702f534273b46e242516e2208bdb
--- /dev/null
+++ b/src/class-fields/initializer-eval-super/cls-expr-fields-indirect-eval.template
@@ -0,0 +1,21 @@
+// Copyright (C) 2017 Valerie Young. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-performeval-rules-in-initializer
+path: language/expressions/class/fields-derived-cls-indirect-
+name: indirect eval
+---*/
+
+A = class {}
+
+var executed = false;
+C = class extends A {
+  x = (0, eval)('executed = true; /*{ initializer }*/;';
+}
+
+assert.throws(/*{ executionerror }*/, function() {
+  new C();
+});
+
+assert.sameValue(executed, true);
diff --git a/src/class-fields/initializer-eval/cls-decl-fields-eval.template b/src/class-fields/initializer-eval/cls-decl-fields-eval.template
new file mode 100644
index 0000000000000000000000000000000000000000..ed721afebe278beda7576830dbd1c43cbf52f657
--- /dev/null
+++ b/src/class-fields/initializer-eval/cls-decl-fields-eval.template
@@ -0,0 +1,19 @@
+// Copyright (C) 2017 Valerie Young. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-performeval-rules-in-initializer
+path: language/statements/class/fields-direct-
+name: direct eval
+---*/
+
+var executed = false;
+class C = {
+  x = eval('executed = true; /*{ initializer }*/;');
+}
+
+assert.throws(/*{ earlyerror }*/, function() {
+  new C();
+});
+
+assert.sameValue(executed, false);
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
new file mode 100644
index 0000000000000000000000000000000000000000..11aa34d0dab12638dbd3f29dabd23318845e609f
--- /dev/null
+++ b/src/class-fields/initializer-eval/cls-decl-fields-indirect-eval.template
@@ -0,0 +1,19 @@
+// Copyright (C) 2017 Valerie Young. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-performeval-rules-in-initializer
+path: language/statements/class/fields-indirect-
+name: indirect eval
+---*/
+
+var executed = false;
+class C = {
+  x = (0, eval)('executed = true; /*{ initializer }*/;');
+}
+
+assert.throws(/*{ executionerror }*/, function() {
+  new C();
+});
+
+assert.sameValue(executed, true);
diff --git a/src/class-fields/initializer-eval/cls-expr-fields-eval.template b/src/class-fields/initializer-eval/cls-expr-fields-eval.template
new file mode 100644
index 0000000000000000000000000000000000000000..9915d0d098d6429d750b86551333c1ac5d634cec
--- /dev/null
+++ b/src/class-fields/initializer-eval/cls-expr-fields-eval.template
@@ -0,0 +1,19 @@
+// Copyright (C) 2017 Valerie Young. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-performeval-rules-in-initializer
+path: language/expressions/class/fields-direct-
+name: direct eval
+---*/
+
+var executed = false;
+C = class {
+  x = eval('executed = true; /*{ initializer }*/;');
+}
+
+assert.throws(/*{ earlyerror }*/, function() {
+  new C();
+});
+
+assert.sameValue(executed, false);
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
new file mode 100644
index 0000000000000000000000000000000000000000..d04a83dfb912085887f5fc176f9588773b7a6bc7
--- /dev/null
+++ b/src/class-fields/initializer-eval/cls-expr-fields-indirect-eval.template
@@ -0,0 +1,19 @@
+// Copyright (C) 2017 Valerie Young. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-performeval-rules-in-initializer
+path: language/expressions/class/fields-indirect-
+name: indirect eval
+---*/
+
+var executed = false;
+C = class {
+  x = (0, eval)('executed = true; /*{ initializer }*/;');
+}
+
+assert.throws(/*{ executionerror }*/, function() {
+  new C();
+});
+
+assert.sameValue(executed, true);