diff --git a/src/class-fields/propname-error-static/cls-decl-static-field-initializer.template b/src/class-fields/propname-error-static/cls-decl-static-field-initializer.template
new file mode 100644
index 0000000000000000000000000000000000000000..f51bd6b3fa6786bd9756cdb644c37cf249db75cc
--- /dev/null
+++ b/src/class-fields/propname-error-static/cls-decl-static-field-initializer.template
@@ -0,0 +1,16 @@
+// Copyright (C) 2017 Valerie Young. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/statements/class/fields-initializer-
+name: early error -- static ClassElementName Initializer
+negative:
+  type: SyntaxError
+  phase: early
+---*/
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  static /*{ propname }*/ = 0;
+}
diff --git a/src/class-fields/propname-error-static/cls-decl-static-literal-name.template b/src/class-fields/propname-error-static/cls-decl-static-literal-name.template
new file mode 100644
index 0000000000000000000000000000000000000000..bba9b7d151748cf6c0392cc8e72221449f032575
--- /dev/null
+++ b/src/class-fields/propname-error-static/cls-decl-static-literal-name.template
@@ -0,0 +1,16 @@
+// Copyright (C) 2017 Valerie Young. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/statements/class/fields-prop-name-
+name: early error -- static ClassElementName
+negative:
+  type: SyntaxError
+  phase: early
+---*/
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  static /*{ propname }*/;
+}
diff --git a/src/class-fields/propname-error-static/cls-expr-static-field-initializer.template b/src/class-fields/propname-error-static/cls-expr-static-field-initializer.template
new file mode 100644
index 0000000000000000000000000000000000000000..c59ae1a643a8faada0ed93a9c5f5efb6ecaf4331
--- /dev/null
+++ b/src/class-fields/propname-error-static/cls-expr-static-field-initializer.template
@@ -0,0 +1,16 @@
+// Copyright (C) 2017 Valerie Young. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/expressions/class/fields-initializer-
+name: early error -- static ClassElementName Initializer
+negative:
+  type: SyntaxError
+  phase: early
+---*/
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  static /*{ propname }*/ = 0;
+};
diff --git a/src/class-fields/propname-error-static/cls-expr-static-literal-name.template b/src/class-fields/propname-error-static/cls-expr-static-literal-name.template
new file mode 100644
index 0000000000000000000000000000000000000000..e83ef26a3974e24c3f6b9f284219c974f004cd37
--- /dev/null
+++ b/src/class-fields/propname-error-static/cls-expr-static-literal-name.template
@@ -0,0 +1,16 @@
+// Copyright (C) 2017 Valerie Young. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+path: language/expressions/class/fields-prop-name-
+name: early error -- static ClassElementName
+negative:
+  type: SyntaxError
+  phase: early
+---*/
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  static /*{ propname }*/;
+};
diff --git a/src/class-fields/static-private-fields-forbidden.case b/src/class-fields/static-private-fields-forbidden.case
new file mode 100644
index 0000000000000000000000000000000000000000..5130caf9a6212538842541efc984c44676a6a373
--- /dev/null
+++ b/src/class-fields/static-private-fields-forbidden.case
@@ -0,0 +1,11 @@
+// Copyright (C) 2017 Valerie Young. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: static private class fields forbidden
+features: [class, class-fields-private]
+template: propname-error-static
+---*/
+
+//- propname
+#field
diff --git a/src/class-fields/static-public-fields-forbidden.case b/src/class-fields/static-public-fields-forbidden.case
new file mode 100644
index 0000000000000000000000000000000000000000..f5390bf748de7253ed02d59334a27dc585c5cd19
--- /dev/null
+++ b/src/class-fields/static-public-fields-forbidden.case
@@ -0,0 +1,11 @@
+// Copyright (C) 2017 Valerie Young. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: static public class fields forbidden
+features: [class, class-fields-public]
+template: propname-error-static
+---*/
+
+//- propname
+field
diff --git a/test/language/expressions/class/fields-initializer-static-private-fields-forbidden.js b/test/language/expressions/class/fields-initializer-static-private-fields-forbidden.js
new file mode 100644
index 0000000000000000000000000000000000000000..f281edb46831f194c87b0ff0a8fdf3d86cde921f
--- /dev/null
+++ b/test/language/expressions/class/fields-initializer-static-private-fields-forbidden.js
@@ -0,0 +1,18 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/static-private-fields-forbidden.case
+// - src/class-fields/propname-error-static/cls-expr-static-field-initializer.template
+/*---
+description: static private class fields forbidden (early error -- static ClassElementName Initializer)
+features: [class, class-fields-private]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  static #field = 0;
+};
diff --git a/test/language/expressions/class/fields-initializer-static-public-fields-forbidden.js b/test/language/expressions/class/fields-initializer-static-public-fields-forbidden.js
new file mode 100644
index 0000000000000000000000000000000000000000..e43ac4dae91c8f1863df8b27d47e539d8df7aa4a
--- /dev/null
+++ b/test/language/expressions/class/fields-initializer-static-public-fields-forbidden.js
@@ -0,0 +1,18 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/static-public-fields-forbidden.case
+// - src/class-fields/propname-error-static/cls-expr-static-field-initializer.template
+/*---
+description: static public class fields forbidden (early error -- static ClassElementName Initializer)
+features: [class, class-fields-public]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  static field = 0;
+};
diff --git a/test/language/expressions/class/fields-prop-name-static-private-fields-forbidden.js b/test/language/expressions/class/fields-prop-name-static-private-fields-forbidden.js
new file mode 100644
index 0000000000000000000000000000000000000000..164f489f9fe2db5d6e5eab0347cddde23144b971
--- /dev/null
+++ b/test/language/expressions/class/fields-prop-name-static-private-fields-forbidden.js
@@ -0,0 +1,18 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/static-private-fields-forbidden.case
+// - src/class-fields/propname-error-static/cls-expr-static-literal-name.template
+/*---
+description: static private class fields forbidden (early error -- static ClassElementName)
+features: [class, class-fields-private]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  static #field;
+};
diff --git a/test/language/expressions/class/fields-prop-name-static-public-fields-forbidden.js b/test/language/expressions/class/fields-prop-name-static-public-fields-forbidden.js
new file mode 100644
index 0000000000000000000000000000000000000000..83cd633c55fd112deec46b0ce35514beea6df4b0
--- /dev/null
+++ b/test/language/expressions/class/fields-prop-name-static-public-fields-forbidden.js
@@ -0,0 +1,18 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/static-public-fields-forbidden.case
+// - src/class-fields/propname-error-static/cls-expr-static-literal-name.template
+/*---
+description: static public class fields forbidden (early error -- static ClassElementName)
+features: [class, class-fields-public]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  static field;
+};
diff --git a/test/language/statements/class/fields-initializer-static-private-fields-forbidden.js b/test/language/statements/class/fields-initializer-static-private-fields-forbidden.js
new file mode 100644
index 0000000000000000000000000000000000000000..a4f1bea6e500bf59b2287581dbe1200980c45705
--- /dev/null
+++ b/test/language/statements/class/fields-initializer-static-private-fields-forbidden.js
@@ -0,0 +1,18 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/static-private-fields-forbidden.case
+// - src/class-fields/propname-error-static/cls-decl-static-field-initializer.template
+/*---
+description: static private class fields forbidden (early error -- static ClassElementName Initializer)
+features: [class, class-fields-private]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  static #field = 0;
+}
diff --git a/test/language/statements/class/fields-initializer-static-public-fields-forbidden.js b/test/language/statements/class/fields-initializer-static-public-fields-forbidden.js
new file mode 100644
index 0000000000000000000000000000000000000000..1271f0caa156374a9a70200b092448e18f32d438
--- /dev/null
+++ b/test/language/statements/class/fields-initializer-static-public-fields-forbidden.js
@@ -0,0 +1,18 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/static-public-fields-forbidden.case
+// - src/class-fields/propname-error-static/cls-decl-static-field-initializer.template
+/*---
+description: static public class fields forbidden (early error -- static ClassElementName Initializer)
+features: [class, class-fields-public]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  static field = 0;
+}
diff --git a/test/language/statements/class/fields-prop-name-static-private-fields-forbidden.js b/test/language/statements/class/fields-prop-name-static-private-fields-forbidden.js
new file mode 100644
index 0000000000000000000000000000000000000000..2f3a55741e32df17832407c5e17bed6e5c18b37e
--- /dev/null
+++ b/test/language/statements/class/fields-prop-name-static-private-fields-forbidden.js
@@ -0,0 +1,18 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/static-private-fields-forbidden.case
+// - src/class-fields/propname-error-static/cls-decl-static-literal-name.template
+/*---
+description: static private class fields forbidden (early error -- static ClassElementName)
+features: [class, class-fields-private]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  static #field;
+}
diff --git a/test/language/statements/class/fields-prop-name-static-public-fields-forbidden.js b/test/language/statements/class/fields-prop-name-static-public-fields-forbidden.js
new file mode 100644
index 0000000000000000000000000000000000000000..056dd443b0d9fcf0dadb375650e4d37e0d323367
--- /dev/null
+++ b/test/language/statements/class/fields-prop-name-static-public-fields-forbidden.js
@@ -0,0 +1,18 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/static-public-fields-forbidden.case
+// - src/class-fields/propname-error-static/cls-decl-static-literal-name.template
+/*---
+description: static public class fields forbidden (early error -- static ClassElementName)
+features: [class, class-fields-public]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  static field;
+}