diff --git a/src/class-elements/grammar-privatename-whitespace-error-accessor-get-meth.case b/src/class-elements/grammar-privatename-whitespace-error-accessor-get-meth.case
new file mode 100644
index 0000000000000000000000000000000000000000..23473a93bf1e706dea1fa870c8f58e962d352ff6
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-accessor-get-meth.case
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 Bloomberg LP. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName ()
+info: |
+  Updated Productions
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [class-methods-private]
+---*/
+
+//- elements
+get # m() {}
diff --git a/src/class-elements/grammar-privatename-whitespace-error-accessor-set-meth.case b/src/class-elements/grammar-privatename-whitespace-error-accessor-set-meth.case
new file mode 100644
index 0000000000000000000000000000000000000000..c27d6e4d3824216342473fed72b4a3210c0d16a0
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-accessor-set-meth.case
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 Bloomberg LP. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName (Accessor set Method)
+info: |
+  Updated Productions
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [class-methods-private]
+---*/
+
+//- elements
+set # m(_) {}
diff --git a/src/class-elements/grammar-privatename-whitespace-error-async-gen-meth.case b/src/class-elements/grammar-privatename-whitespace-error-async-gen-meth.case
new file mode 100644
index 0000000000000000000000000000000000000000..7d380ff86195f60004f84c90173a9b452260ccae
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-async-gen-meth.case
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 Bloomberg LP. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName (Async Generator Method)
+info: |
+  Updated Productions
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [async-iteration, class-methods-private]
+---*/
+
+//- elements
+async * # m() {}
diff --git a/src/class-elements/grammar-privatename-whitespace-error-async-meth.case b/src/class-elements/grammar-privatename-whitespace-error-async-meth.case
new file mode 100644
index 0000000000000000000000000000000000000000..949ad6fef278a1cab6771713bdcdc786152f9ba7
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-async-meth.case
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 Bloomberg LP. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName (Async Method)
+info: |
+  Updated Productions
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [async-functions, class-methods-private]
+---*/
+
+//- elements
+async # m() {}
diff --git a/src/class-elements/grammar-privatename-whitespace-error-call-expr.case b/src/class-elements/grammar-privatename-whitespace-error-call-expr.case
new file mode 100644
index 0000000000000000000000000000000000000000..72d8dc7fd7c1f80487344f882f543dc06e694575
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-call-expr.case
@@ -0,0 +1,30 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName (CallExpression)
+info: |
+  Updated Productions
+
+  MemberExpression :
+    MemberExpression . PrivateName
+
+  CallExpression :
+    CallExpression . PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [class-fields-private]
+---*/
+
+//- elements
+#x;
+
+f() {
+  return this;
+}
+
+m() {
+  this.f().# x;
+}
diff --git a/src/class-elements/grammar-privatename-whitespace-error-field-init.case b/src/class-elements/grammar-privatename-whitespace-error-field-init.case
new file mode 100644
index 0000000000000000000000000000000000000000..bd3023afe51c1b28a23a2187b4a08ef90f18e2b4
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-field-init.case
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName (Field with Initializer)
+info: |
+  Updated Productions
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [class-fields-private]
+---*/
+
+//- elements
+# x = 1;
diff --git a/src/class-elements/grammar-privatename-whitespace-error-field.case b/src/class-elements/grammar-privatename-whitespace-error-field.case
new file mode 100644
index 0000000000000000000000000000000000000000..60fa47bc6bd66557e8ed6059fb3004364131f4dd
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-field.case
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName (Field)
+info: |
+  Updated Productions
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [class-fields-private]
+---*/
+
+//- elements
+# x;
diff --git a/src/class-elements/grammar-privatename-whitespace-error-gen-meth.case b/src/class-elements/grammar-privatename-whitespace-error-gen-meth.case
new file mode 100644
index 0000000000000000000000000000000000000000..e918163a5ab28879998b2911725e7abe195f9c42
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-gen-meth.case
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 Bloomberg LP. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName (Generator Method)
+info: |
+  Updated Productions
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [generators, class-methods-private]
+---*/
+
+//- elements
+* # m() {}
diff --git a/src/class-elements/grammar-privatename-whitespace-error-member-expr.case b/src/class-elements/grammar-privatename-whitespace-error-member-expr.case
new file mode 100644
index 0000000000000000000000000000000000000000..1688ff75dbde1189ef1a4eafc62e5de573b2368b
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-member-expr.case
@@ -0,0 +1,25 @@
+// Copyright (C) 2018 Bloomberg LP. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName (MemberExpression)
+info: |
+  Updated Productions
+
+  MemberExpression :
+    MemberExpression . PrivateName
+
+  CallExpression :
+    CallExpression . PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [class-fields-private]
+---*/
+
+//- elements
+#x;
+m() {
+  this.# x;
+}
diff --git a/src/class-elements/grammar-privatename-whitespace-error-meth.case.case b/src/class-elements/grammar-privatename-whitespace-error-meth.case.case
new file mode 100644
index 0000000000000000000000000000000000000000..83d1cb6979bfea250564aa4ea74964317eebf426
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-meth.case.case
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 Bloomberg LP. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName (Method)
+info: |
+  Updated Productions
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [class-methods-private]
+---*/
+
+//- elements
+# m() {}
diff --git a/src/class-elements/grammar-privatename-whitespace-error-static-accessor-get-meth.case b/src/class-elements/grammar-privatename-whitespace-error-static-accessor-get-meth.case
new file mode 100644
index 0000000000000000000000000000000000000000..1a681a7fea0d43f443bd8b040d6859c052e3b3c7
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-static-accessor-get-meth.case
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 Bloomberg LP. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName (Static Accessor get Method)
+info: |
+  Updated Productions
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [class-static-methods-private]
+---*/
+
+//- elements
+static get # m() {}
diff --git a/src/class-elements/grammar-privatename-whitespace-error-static-accessor-set-meth.case b/src/class-elements/grammar-privatename-whitespace-error-static-accessor-set-meth.case
new file mode 100644
index 0000000000000000000000000000000000000000..69f4fee00b77e5d05b00c0ced6022708c1ad0929
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-static-accessor-set-meth.case
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 Bloomberg LP. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName (Static Accessor set Method)
+info: |
+  Updated Productions
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [class-static-methods-private]
+---*/
+
+//- elements
+static set # m(_) {}
diff --git a/src/class-elements/grammar-privatename-whitespace-error-static-async-gen-meth.case b/src/class-elements/grammar-privatename-whitespace-error-static-async-gen-meth.case
new file mode 100644
index 0000000000000000000000000000000000000000..22dcf3cf53592fbfceeebe29f045ed293c18b048
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-static-async-gen-meth.case
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 Bloomberg LP. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName (Static Async Generator Method)
+info: |
+  Updated Productions
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [async-iteration, class-static-methods-private]
+---*/
+
+//- elements
+static async * # m() {}
diff --git a/src/class-elements/grammar-privatename-whitespace-error-static-async-meth.case b/src/class-elements/grammar-privatename-whitespace-error-static-async-meth.case
new file mode 100644
index 0000000000000000000000000000000000000000..fb0631565c0f7926f722b1ba14abc12f73fd9210
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-static-async-meth.case
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 Bloomberg LP. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName (Async Method)
+info: |
+  Updated Productions
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [class-static-methods-private]
+---*/
+
+//- elements
+static async # m() {}
diff --git a/src/class-elements/grammar-privatename-whitespace-error-static-field-init.case b/src/class-elements/grammar-privatename-whitespace-error-static-field-init.case
new file mode 100644
index 0000000000000000000000000000000000000000..61b592afac6a4fb49b0265841ef2351d6e38fcef
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-static-field-init.case
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName (Static Field with Initializer)
+info: |
+  Updated Productions
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [class-static-fields-private]
+---*/
+
+//- elements
+static # x = 1;
diff --git a/src/class-elements/grammar-privatename-whitespace-error-static-field.case b/src/class-elements/grammar-privatename-whitespace-error-static-field.case
new file mode 100644
index 0000000000000000000000000000000000000000..268439e46fe083035c3be0c6962ec9e64b9b7017
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-static-field.case
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName (Static Field)
+info: |
+  Updated Productions
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [class-static-fields-private]
+---*/
+
+//- elements
+static # x;
diff --git a/src/class-elements/grammar-privatename-whitespace-error-static-gen-meth.case b/src/class-elements/grammar-privatename-whitespace-error-static-gen-meth.case
new file mode 100644
index 0000000000000000000000000000000000000000..c69b9affd480aea831854764728a6e6059afd4b0
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-static-gen-meth.case
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 Bloomberg LP. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName (Static Generator Method)
+info: |
+  Updated Productions
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [generators, class-static-methods-private]
+---*/
+
+//- elements
+static * # m() {}
diff --git a/src/class-elements/grammar-privatename-whitespace-error-static-meth.case b/src/class-elements/grammar-privatename-whitespace-error-static-meth.case
new file mode 100644
index 0000000000000000000000000000000000000000..e51d5a44d89c43def2c29bf5e2105ed122263d21
--- /dev/null
+++ b/src/class-elements/grammar-privatename-whitespace-error-static-meth.case
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 Bloomberg LP. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: No space allowed between sigil and IdentifierName (Static Method)
+info: |
+  Updated Productions
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+template: syntax/invalid
+features: [class-static-methods-private]
+---*/
+
+//- elements
+static # m() {}
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-accessor-get-meth.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-accessor-get-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..210e9273b78faafc019b32a16c00bb932b53f11a
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-accessor-get-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-accessor-get-meth.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName () (class expression)
+esid: prod-ClassElement
+features: [class-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  get # m() {}
+};
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-accessor-set-meth.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-accessor-set-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..7009f14b3261c1553b975e61a5d1c8d1b1bd0c2a
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-accessor-set-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-accessor-set-meth.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Accessor set Method) (class expression)
+esid: prod-ClassElement
+features: [class-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  set # m(_) {}
+};
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-async-gen-meth.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-async-gen-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..4f4c4299bc841ea66c31c3fd4f1b5adc4854fea7
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-async-gen-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-async-gen-meth.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Async Generator Method) (class expression)
+esid: prod-ClassElement
+features: [async-iteration, class-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  async * # m() {}
+};
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-async-meth.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-async-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..abb36632e647169f06c59b0bf3676fc62e8e0baa
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-async-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-async-meth.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Async Method) (class expression)
+esid: prod-ClassElement
+features: [async-functions, class-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  async # m() {}
+};
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-call-expr.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-call-expr.js
new file mode 100644
index 0000000000000000000000000000000000000000..c55c228e687198c65297c27bf40fef5d6ce339f3
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-call-expr.js
@@ -0,0 +1,39 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-call-expr.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (CallExpression) (class expression)
+esid: prod-ClassElement
+features: [class-fields-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    MemberExpression :
+      MemberExpression . PrivateName
+
+    CallExpression :
+      CallExpression . PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  #x;
+
+  f() {
+    return this;
+  }
+
+  m() {
+    this.f().# x;
+  }
+};
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-field-init.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-field-init.js
new file mode 100644
index 0000000000000000000000000000000000000000..9b4cfac85b14c47faef1c64bc19bbea12504e1bd
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-field-init.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-field-init.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Field with Initializer) (class expression)
+esid: prod-ClassElement
+features: [class-fields-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  # x = 1;
+};
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-field.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-field.js
new file mode 100644
index 0000000000000000000000000000000000000000..9b8fdc559df5d38abf62e1316d066768e0b7a3c6
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-field.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-field.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Field) (class expression)
+esid: prod-ClassElement
+features: [class-fields-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  # x;
+};
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-gen-meth.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-gen-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..5c439fa7335d746d4bfeec78b606dbfd54eb5186
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-gen-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-gen-meth.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Generator Method) (class expression)
+esid: prod-ClassElement
+features: [generators, class-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  * # m() {}
+};
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-member-expr.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-member-expr.js
new file mode 100644
index 0000000000000000000000000000000000000000..0f8aed61d770bf125da9db69b9e8b32a35512123
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-member-expr.js
@@ -0,0 +1,34 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-member-expr.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (MemberExpression) (class expression)
+esid: prod-ClassElement
+features: [class-fields-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    MemberExpression :
+      MemberExpression . PrivateName
+
+    CallExpression :
+      CallExpression . PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  #x;
+  m() {
+    this.# x;
+  }
+};
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-meth.case.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-meth.case.js
new file mode 100644
index 0000000000000000000000000000000000000000..21aaa39e932537fad1e91dbb5d2b1a12cb38f5fc
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-meth.case.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-meth.case.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Method) (class expression)
+esid: prod-ClassElement
+features: [class-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  # m() {}
+};
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-accessor-get-meth.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-accessor-get-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..e084c266433d79a0a77897cb928183ecb3e29a36
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-accessor-get-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-static-accessor-get-meth.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Static Accessor get Method) (class expression)
+esid: prod-ClassElement
+features: [class-static-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  static get # m() {}
+};
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-accessor-set-meth.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-accessor-set-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..9f395efa7b1d98a829daca07053fa47dd043e3bb
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-accessor-set-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-static-accessor-set-meth.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Static Accessor set Method) (class expression)
+esid: prod-ClassElement
+features: [class-static-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  static set # m(_) {}
+};
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-async-gen-meth.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-async-gen-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..df4ffee9dca8c6b1130a8acf1eb60f91520d073e
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-async-gen-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-static-async-gen-meth.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Static Async Generator Method) (class expression)
+esid: prod-ClassElement
+features: [async-iteration, class-static-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  static async * # m() {}
+};
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-async-meth.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-async-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..496b2b367fe3b30231b2da28ef6aee34cb795563
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-async-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-static-async-meth.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Async Method) (class expression)
+esid: prod-ClassElement
+features: [class-static-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  static async # m() {}
+};
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-field-init.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-field-init.js
new file mode 100644
index 0000000000000000000000000000000000000000..485953fbc1db7f9863247a453fbfb643b0b00a32
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-field-init.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-static-field-init.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Static Field with Initializer) (class expression)
+esid: prod-ClassElement
+features: [class-static-fields-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  static # x = 1;
+};
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-field.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-field.js
new file mode 100644
index 0000000000000000000000000000000000000000..7ff5cc5b8f36cd167f0f7a055d0edfd15c16aa01
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-field.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-static-field.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Static Field) (class expression)
+esid: prod-ClassElement
+features: [class-static-fields-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  static # x;
+};
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-gen-meth.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-gen-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..e04f055e8c98e98d073cd588db07e24beddfb526
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-gen-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-static-gen-meth.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Static Generator Method) (class expression)
+esid: prod-ClassElement
+features: [generators, class-static-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  static * # m() {}
+};
diff --git a/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-meth.js b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..acdb9c4987bd1e4d151ebc4e59d33e2d5b257875
--- /dev/null
+++ b/test/language/expressions/class/syntax/early-errors/grammar-privatename-whitespace-error-static-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-static-meth.case
+// - src/class-elements/syntax/invalid/cls-expr-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Static Method) (class expression)
+esid: prod-ClassElement
+features: [class-static-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  static # m() {}
+};
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-accessor-get-meth.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-accessor-get-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..a382483164d63668fcfae1bc890d4b2685d1b29b
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-accessor-get-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-accessor-get-meth.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName () (class declaration)
+esid: prod-ClassElement
+features: [class-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  get # m() {}
+}
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-accessor-set-meth.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-accessor-set-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..7622026546f1d87f795d8143d1de3f4c9b80acc9
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-accessor-set-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-accessor-set-meth.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Accessor set Method) (class declaration)
+esid: prod-ClassElement
+features: [class-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  set # m(_) {}
+}
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-async-gen-meth.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-async-gen-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..3a2482d23de63658ad581bc7f701af844a06da8b
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-async-gen-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-async-gen-meth.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Async Generator Method) (class declaration)
+esid: prod-ClassElement
+features: [async-iteration, class-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  async * # m() {}
+}
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-async-meth.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-async-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..cb164f91bc2b98441d4cf648d1a65a133eb06933
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-async-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-async-meth.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Async Method) (class declaration)
+esid: prod-ClassElement
+features: [async-functions, class-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  async # m() {}
+}
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-call-expr.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-call-expr.js
new file mode 100644
index 0000000000000000000000000000000000000000..72ca4a44bdd1d554b5c81bf2f82b9b74ffb0abf6
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-call-expr.js
@@ -0,0 +1,39 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-call-expr.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (CallExpression) (class declaration)
+esid: prod-ClassElement
+features: [class-fields-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    MemberExpression :
+      MemberExpression . PrivateName
+
+    CallExpression :
+      CallExpression . PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  #x;
+
+  f() {
+    return this;
+  }
+
+  m() {
+    this.f().# x;
+  }
+}
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-field-init.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-field-init.js
new file mode 100644
index 0000000000000000000000000000000000000000..8ccdf37c0730d397949aadc8b8896d22d67b460f
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-field-init.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-field-init.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Field with Initializer) (class declaration)
+esid: prod-ClassElement
+features: [class-fields-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  # x = 1;
+}
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-field.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-field.js
new file mode 100644
index 0000000000000000000000000000000000000000..f0f3b55a6459311780beb3cdc356e19303490045
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-field.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-field.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Field) (class declaration)
+esid: prod-ClassElement
+features: [class-fields-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  # x;
+}
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-gen-meth.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-gen-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..45931eaff39d66c387683469ab2ef67690b0a496
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-gen-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-gen-meth.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Generator Method) (class declaration)
+esid: prod-ClassElement
+features: [generators, class-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  * # m() {}
+}
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-member-expr.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-member-expr.js
new file mode 100644
index 0000000000000000000000000000000000000000..042d0a3dcf6c8896e4e89c2086baf079b78c10b9
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-member-expr.js
@@ -0,0 +1,34 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-member-expr.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (MemberExpression) (class declaration)
+esid: prod-ClassElement
+features: [class-fields-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    MemberExpression :
+      MemberExpression . PrivateName
+
+    CallExpression :
+      CallExpression . PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  #x;
+  m() {
+    this.# x;
+  }
+}
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-meth.case.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-meth.case.js
new file mode 100644
index 0000000000000000000000000000000000000000..7144a87b5bd1145fd4300d2f98d3ef76af2f8693
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-meth.case.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-meth.case.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Method) (class declaration)
+esid: prod-ClassElement
+features: [class-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  # m() {}
+}
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-accessor-get-meth.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-accessor-get-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..1c269ef34d0078bd6b7a9431b640846fa4828e69
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-accessor-get-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-static-accessor-get-meth.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Static Accessor get Method) (class declaration)
+esid: prod-ClassElement
+features: [class-static-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  static get # m() {}
+}
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-accessor-set-meth.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-accessor-set-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..93420492b85f387f9c3d1dfefa6fb5dbbb451ba9
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-accessor-set-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-static-accessor-set-meth.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Static Accessor set Method) (class declaration)
+esid: prod-ClassElement
+features: [class-static-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  static set # m(_) {}
+}
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-async-gen-meth.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-async-gen-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..085f6d294bd6f60cf437265f0819734774c7dcec
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-async-gen-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-static-async-gen-meth.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Static Async Generator Method) (class declaration)
+esid: prod-ClassElement
+features: [async-iteration, class-static-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  static async * # m() {}
+}
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-async-meth.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-async-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..b6944764bc8e9a3d5e746bbc68b4a9fd462dbb99
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-async-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-static-async-meth.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Async Method) (class declaration)
+esid: prod-ClassElement
+features: [class-static-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  static async # m() {}
+}
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-field-init.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-field-init.js
new file mode 100644
index 0000000000000000000000000000000000000000..906706e4ffaf8b06ac55c7c0cb6edf255ba318e5
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-field-init.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-static-field-init.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Static Field with Initializer) (class declaration)
+esid: prod-ClassElement
+features: [class-static-fields-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  static # x = 1;
+}
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-field.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-field.js
new file mode 100644
index 0000000000000000000000000000000000000000..c2105bc3f84e54179ec2698a9b8de990a6232bec
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-field.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-static-field.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Static Field) (class declaration)
+esid: prod-ClassElement
+features: [class-static-fields-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  static # x;
+}
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-gen-meth.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-gen-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..b37e016cf07e9d1de67681fd27478343d6581f79
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-gen-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-static-gen-meth.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Static Generator Method) (class declaration)
+esid: prod-ClassElement
+features: [generators, class-static-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  static * # m() {}
+}
diff --git a/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-meth.js b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-meth.js
new file mode 100644
index 0000000000000000000000000000000000000000..9fb520ddf2475b91d4cff3b3f5d99ed1d1da3df9
--- /dev/null
+++ b/test/language/statements/class/syntax/early-errors/grammar-privatename-whitespace-error-static-meth.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/grammar-privatename-whitespace-error-static-meth.case
+// - src/class-elements/syntax/invalid/cls-decl-elements-invalid-syntax.template
+/*---
+description: No space allowed between sigil and IdentifierName (Static Method) (class declaration)
+esid: prod-ClassElement
+features: [class-static-methods-private, class]
+flags: [generated]
+negative:
+  phase: parse
+  type: SyntaxError
+info: |
+    Updated Productions
+
+    ClassElementName :
+      PropertyName
+      PrivateName
+
+    PrivateName ::
+      # IdentifierName
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  static # m() {}
+}