diff --git a/test/language/expressions/class/err-field-delete-call-expression-privatename.js b/test/language/expressions/class/err-field-delete-call-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..5941f1b87f4c0b9c5e68abb377047ee85e898876
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-call-expression-privatename.js
@@ -0,0 +1,32 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/call-expression-privatename.case
+// - src/class-fields/delete-error/cls-expr-field-delete.template
+/*---
+description: Syntax error if you call delete on call expressions . privatename (in field)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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 .
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  #x;
+  g = this.f;
+  x = delete g().#x;
+
+  f() {
+    return this;
+  }
+}
diff --git a/test/language/expressions/class/err-field-delete-covered-call-expression-privatename.js b/test/language/expressions/class/err-field-delete-covered-call-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..2709caa8148c088917a614405c4f9eb9f7926cf5
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-covered-call-expression-privatename.js
@@ -0,0 +1,34 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/call-expression-privatename.case
+// - src/class-fields/delete-error/cls-expr-field-delete-covered.template
+/*---
+description: Syntax error if you call delete on call expressions . privatename (in field, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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.
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  #x;
+  g = this.f;
+  x = delete (g().#x);
+
+  f() {
+    return this;
+  }
+}
diff --git a/test/language/expressions/class/err-field-delete-covered-member-expression-privatename.js b/test/language/expressions/class/err-field-delete-covered-member-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..84e557e6223d5dd6cd3d0487f16e893a4309a9f1
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-covered-member-expression-privatename.js
@@ -0,0 +1,32 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/member-expression-privatename.case
+// - src/class-fields/delete-error/cls-expr-field-delete-covered.template
+/*---
+description: Syntax error if you call delete on member expressions . privatename (in field, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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.
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  #x;
+  
+  x = delete (this.#x);
+
+  
+}
diff --git a/test/language/expressions/class/err-field-delete-member-expression-privatename.js b/test/language/expressions/class/err-field-delete-member-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..6e8381e2214c23503dcef176ca325aba27fc1a56
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-member-expression-privatename.js
@@ -0,0 +1,30 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/member-expression-privatename.case
+// - src/class-fields/delete-error/cls-expr-field-delete.template
+/*---
+description: Syntax error if you call delete on member expressions . privatename (in field)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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 .
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  #x;
+  
+  x = delete this.#x;
+
+  
+}
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-call-expression-privatename.js b/test/language/expressions/class/err-field-delete-twice-covered-call-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..ccc0f4f17254067d5cd3444023631b0525f82e97
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-twice-covered-call-expression-privatename.js
@@ -0,0 +1,34 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/call-expression-privatename.case
+// - src/class-fields/delete-error/cls-expr-field-delete-twice-covered.template
+/*---
+description: Syntax error if you call delete on call expressions . privatename (in field, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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.
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  #x;
+  g = this.f;
+  x = delete ((g().#x));
+
+  f() {
+    return this;
+  }
+}
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-member-expression-privatename.js b/test/language/expressions/class/err-field-delete-twice-covered-member-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..c170745c4fe4ae91e79e4e0398bdeb0dee205aa4
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-twice-covered-member-expression-privatename.js
@@ -0,0 +1,32 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/member-expression-privatename.case
+// - src/class-fields/delete-error/cls-expr-field-delete-twice-covered.template
+/*---
+description: Syntax error if you call delete on member expressions . privatename (in field, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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.
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  #x;
+  
+  x = delete ((this.#x));
+
+  
+}
diff --git a/test/language/expressions/class/err-method-delete-call-expression-privatename.js b/test/language/expressions/class/err-method-delete-call-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..ad7390815c0156c57ca07bd069f788d9403ccb0d
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-call-expression-privatename.js
@@ -0,0 +1,35 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/call-expression-privatename.case
+// - src/class-fields/delete-error/cls-expr-method-delete.template
+/*---
+description: Syntax error if you call delete on call expressions . privatename (in method)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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 .
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  #x;
+
+  x() {
+    var g = this.f;
+    delete g().#x;
+  }
+
+  f() {
+    return this;
+  }
+}
diff --git a/test/language/expressions/class/err-method-delete-covered-call-expression-privatename.js b/test/language/expressions/class/err-method-delete-covered-call-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..3b85fdf5f48b2b311be002ffb37b5b54ebd56982
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-covered-call-expression-privatename.js
@@ -0,0 +1,37 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/call-expression-privatename.case
+// - src/class-fields/delete-error/cls-expr-method-delete-covered.template
+/*---
+description: Syntax error if you call delete on call expressions . privatename (in method, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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.
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  #x;
+
+  x() {
+    var g = this.f;
+    delete (g().#x);
+  }
+
+  f() {
+    return this;
+  }
+}
diff --git a/test/language/expressions/class/err-method-delete-covered-member-expression-privatename.js b/test/language/expressions/class/err-method-delete-covered-member-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..ae0ef4619c6580b2b1093f1545eca39cdb054858
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-covered-member-expression-privatename.js
@@ -0,0 +1,35 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/member-expression-privatename.case
+// - src/class-fields/delete-error/cls-expr-method-delete-covered.template
+/*---
+description: Syntax error if you call delete on member expressions . privatename (in method, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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.
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  #x;
+
+  x() {
+    
+    delete (this.#x);
+  }
+
+  
+}
diff --git a/test/language/expressions/class/err-method-delete-member-expression-privatename.js b/test/language/expressions/class/err-method-delete-member-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..5ac00be8820eba0d816ddbd52488f95ee336b189
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-member-expression-privatename.js
@@ -0,0 +1,33 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/member-expression-privatename.case
+// - src/class-fields/delete-error/cls-expr-method-delete.template
+/*---
+description: Syntax error if you call delete on member expressions . privatename (in method)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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 .
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  #x;
+
+  x() {
+    
+    delete this.#x;
+  }
+
+  
+}
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-call-expression-privatename.js b/test/language/expressions/class/err-method-delete-twice-covered-call-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..02aa7e63dc12b887185a971ac1c8afe0d4125591
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-twice-covered-call-expression-privatename.js
@@ -0,0 +1,37 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/call-expression-privatename.case
+// - src/class-fields/delete-error/cls-expr-method-delete-twice-covered.template
+/*---
+description: Syntax error if you call delete on call expressions . privatename (in method, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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.
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  #x;
+
+  x() {
+    var g = this.f;
+    delete ((g().#x));
+  }
+
+  f() {
+    return this;
+  }
+}
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-member-expression-privatename.js b/test/language/expressions/class/err-method-delete-twice-covered-member-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..6ca6f29abebf027759c3a698cc4a3e4b7264c207
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-twice-covered-member-expression-privatename.js
@@ -0,0 +1,35 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/member-expression-privatename.case
+// - src/class-fields/delete-error/cls-expr-method-delete-twice-covered.template
+/*---
+description: Syntax error if you call delete on member expressions . privatename (in method, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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.
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+var C = class {
+  #x;
+
+  x() {
+    
+    delete ((this.#x));
+  }
+
+  
+}
diff --git a/test/language/statements/class/err-field-delete-call-expression-privatename.js b/test/language/statements/class/err-field-delete-call-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..359c1a75596503d5c12a717bb67efdddadf07be7
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-call-expression-privatename.js
@@ -0,0 +1,31 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/call-expression-privatename.case
+// - src/class-fields/delete-error/cls-decl-field-delete.template
+/*---
+description: Syntax error if you call delete on call expressions . privatename (in field)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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 .
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  #x;
+  g = this.f;
+  x = delete g().#x;
+  f() {
+    return this;
+  }
+}
diff --git a/test/language/statements/class/err-field-delete-covered-call-expression-privatename.js b/test/language/statements/class/err-field-delete-covered-call-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..21afe2958c5f11987784fa4b3340f9e8b0cf858a
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-covered-call-expression-privatename.js
@@ -0,0 +1,33 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/call-expression-privatename.case
+// - src/class-fields/delete-error/cls-decl-field-delete-covered.template
+/*---
+description: Syntax error if you call delete on call expressions . privatename (in field, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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.
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  #x;
+  g = this.f;
+  x = delete (g().#x);
+  f() {
+    return this;
+  }
+}
diff --git a/test/language/statements/class/err-field-delete-covered-member-expression-privatename.js b/test/language/statements/class/err-field-delete-covered-member-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..d1042e1a42cdd12cc2bd1daeda7dc19b8d309166
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-covered-member-expression-privatename.js
@@ -0,0 +1,31 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/member-expression-privatename.case
+// - src/class-fields/delete-error/cls-decl-field-delete-covered.template
+/*---
+description: Syntax error if you call delete on member expressions . privatename (in field, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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.
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  #x;
+  
+  x = delete (this.#x);
+  
+}
diff --git a/test/language/statements/class/err-field-delete-member-expression-privatename.js b/test/language/statements/class/err-field-delete-member-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..57dea8b7ab4049cc5da1220aca92f59a6a9ce3b5
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-member-expression-privatename.js
@@ -0,0 +1,29 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/member-expression-privatename.case
+// - src/class-fields/delete-error/cls-decl-field-delete.template
+/*---
+description: Syntax error if you call delete on member expressions . privatename (in field)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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 .
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  #x;
+  
+  x = delete this.#x;
+  
+}
diff --git a/test/language/statements/class/err-field-delete-twice-covered-call-expression-privatename.js b/test/language/statements/class/err-field-delete-twice-covered-call-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..f142c1970322d5df9f6f09c89fb62ab5585997e2
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-twice-covered-call-expression-privatename.js
@@ -0,0 +1,34 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/call-expression-privatename.case
+// - src/class-fields/delete-error/cls-decl-field-delete-twice-covered.template
+/*---
+description: Syntax error if you call delete on call expressions . privatename (in field, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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.
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  #x;
+  g = this.f;
+  x = delete ((g().#x));
+
+  f() {
+    return this;
+  }
+}
diff --git a/test/language/statements/class/err-field-delete-twice-covered-member-expression-privatename.js b/test/language/statements/class/err-field-delete-twice-covered-member-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..41fea77b4364c47c84d1ce74ddaae8fe9b865177
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-twice-covered-member-expression-privatename.js
@@ -0,0 +1,32 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/member-expression-privatename.case
+// - src/class-fields/delete-error/cls-decl-field-delete-twice-covered.template
+/*---
+description: Syntax error if you call delete on member expressions . privatename (in field, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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.
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  #x;
+  
+  x = delete ((this.#x));
+
+  
+}
diff --git a/test/language/statements/class/err-method-delete-call-expression-privatename.js b/test/language/statements/class/err-method-delete-call-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..f55917d582feb2662ced857dc04c0b934dd88c61
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-call-expression-privatename.js
@@ -0,0 +1,35 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/call-expression-privatename.case
+// - src/class-fields/delete-error/cls-decl-method-delete.template
+/*---
+description: Syntax error if you call delete on call expressions . privatename (in method)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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 .
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  #x;
+
+  x() {
+    var g = this.f;
+    delete g().#x;
+  }
+
+  f() {
+    return this;
+  }
+}
diff --git a/test/language/statements/class/err-method-delete-covered-call-expression-privatename.js b/test/language/statements/class/err-method-delete-covered-call-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..b6e14a0c6b03eee199dc7ee584a57d4a42cd72d7
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-covered-call-expression-privatename.js
@@ -0,0 +1,37 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/call-expression-privatename.case
+// - src/class-fields/delete-error/cls-decl-method-delete-covered.template
+/*---
+description: Syntax error if you call delete on call expressions . privatename (in method, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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.
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  #x;
+
+  x() {
+    var g = this.f;
+    delete (g().#x);
+  }
+
+  f() {
+    return this;
+  }
+}
diff --git a/test/language/statements/class/err-method-delete-covered-member-expression-privatename.js b/test/language/statements/class/err-method-delete-covered-member-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..71fc2c51f933e960359889691f2c1291107740c0
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-covered-member-expression-privatename.js
@@ -0,0 +1,35 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/member-expression-privatename.case
+// - src/class-fields/delete-error/cls-decl-method-delete-covered.template
+/*---
+description: Syntax error if you call delete on member expressions . privatename (in method, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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.
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  #x;
+
+  x() {
+    
+    delete (this.#x);
+  }
+
+  
+}
diff --git a/test/language/statements/class/err-method-delete-member-expression-privatename.js b/test/language/statements/class/err-method-delete-member-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..492410f3cfc731909d1baabf4a8bd5ba0f259737
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-member-expression-privatename.js
@@ -0,0 +1,33 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/member-expression-privatename.case
+// - src/class-fields/delete-error/cls-decl-method-delete.template
+/*---
+description: Syntax error if you call delete on member expressions . privatename (in method)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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 .
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  #x;
+
+  x() {
+    
+    delete this.#x;
+  }
+
+  
+}
diff --git a/test/language/statements/class/err-method-delete-twice-covered-call-expression-privatename.js b/test/language/statements/class/err-method-delete-twice-covered-call-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..9781eb9a5914f9005fe0ceaea1eb8a0fd299c0db
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-twice-covered-call-expression-privatename.js
@@ -0,0 +1,37 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/call-expression-privatename.case
+// - src/class-fields/delete-error/cls-decl-method-delete-twice-covered.template
+/*---
+description: Syntax error if you call delete on call expressions . privatename (in method, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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.
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  #x;
+
+  x() {
+    var g = this.f;
+    delete ((g().#x));
+  }
+
+  f() {
+    return this;
+  }
+}
diff --git a/test/language/statements/class/err-method-delete-twice-covered-member-expression-privatename.js b/test/language/statements/class/err-method-delete-twice-covered-member-expression-privatename.js
new file mode 100644
index 0000000000000000000000000000000000000000..fdc6b8c270d20ddf6a6c2dfeb590a49747debb84
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-twice-covered-member-expression-privatename.js
@@ -0,0 +1,35 @@
+// This file was procedurally generated from the following sources:
+// - src/class-fields/member-expression-privatename.case
+// - src/class-fields/delete-error/cls-decl-method-delete-twice-covered.template
+/*---
+description: Syntax error if you call delete on member expressions . privatename (in method, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-fields]
+flags: [generated]
+negative:
+  phase: early
+  type: SyntaxError
+info: |
+    Static Semantics: Early Errors
+
+      UnaryExpression : delete UnaryExpression
+
+      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.
+
+---*/
+
+
+throw "Test262: This statement should not be evaluated.";
+
+class C {
+  #x;
+
+  x() {
+    
+    delete ((this.#x));
+  }
+
+  
+}