diff --git a/src/class-elements/err-delete-call-expression-private-method-accessor-get.case b/src/class-elements/err-delete-call-expression-private-method-accessor-get.case
new file mode 100644
index 0000000000000000000000000000000000000000..04c72122a4e01d2b4815067552fd0f2ed0417869
--- /dev/null
+++ b/src/class-elements/err-delete-call-expression-private-method-accessor-get.case
@@ -0,0 +1,22 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: >
+  It's a SyntaxError if delete operator is applied to CallExpression.PrivateName
+  accessor get method
+template: delete-error
+features: [class-methods-private, class-fields-public]
+---*/
+
+//- infieldsetup
+g = this.f;
+//- infunctionsetup
+var g = this.f;
+//- expression
+g().#m
+//- functiondeclaration
+f() {
+return this;
+}
+get #m() {}
\ No newline at end of file
diff --git a/src/class-elements/err-delete-call-expression-private-method-accessor-set.case b/src/class-elements/err-delete-call-expression-private-method-accessor-set.case
new file mode 100644
index 0000000000000000000000000000000000000000..ea6458151e322e50d2db37a87e62b4c22dfa9f0d
--- /dev/null
+++ b/src/class-elements/err-delete-call-expression-private-method-accessor-set.case
@@ -0,0 +1,22 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: >
+  It's a SyntaxError if delete operator is applied to CallExpression.PrivateName
+  accessor set method
+template: delete-error
+features: [class, class-fields-private, class-methods-private, class-fields-public]
+---*/
+
+//- infieldsetup
+g = this.f;
+//- infunctionsetup
+var g = this.f;
+//- expression
+g().#m
+//- functiondeclaration
+f() {
+return this;
+}
+set #m(arg) {}
\ No newline at end of file
diff --git a/src/class-elements/err-delete-call-expression-private-method-async-gen.case b/src/class-elements/err-delete-call-expression-private-method-async-gen.case
index 76ca4b50abe26651c92dc70317cca219c653079c..74eed5f6478b60717fd4db925463b4fb69de5fe1 100644
--- a/src/class-elements/err-delete-call-expression-private-method-async-gen.case
+++ b/src/class-elements/err-delete-call-expression-private-method-async-gen.case
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-desc: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+desc: >
+  It's a SyntaxError if delete operator is applied to CallExpression.PrivateName
+  async generator
 template: delete-error
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-iteration]
 ---*/
 
 //- infieldsetup
diff --git a/src/class-elements/err-delete-call-expression-private-method-async.case b/src/class-elements/err-delete-call-expression-private-method-async.case
index 43a93be491df8ed5828422ccda49989184386d96..af2d7ca56f3122c2f8c07692601ed4fa814814b2 100644
--- a/src/class-elements/err-delete-call-expression-private-method-async.case
+++ b/src/class-elements/err-delete-call-expression-private-method-async.case
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-desc: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+desc: >
+  It's a SyntaxError if delete operator is applied to CallExpression.PrivateName
+  async method
 template: delete-error
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-functions]
 ---*/
 
 //- infieldsetup
diff --git a/src/class-elements/err-delete-call-expression-private-method-gen.case b/src/class-elements/err-delete-call-expression-private-method-gen.case
index 28d878c593d8295c25b28ae6688dc23ab04bd5eb..b264571e8c1188daa538b38aa2e52d946e22864c 100644
--- a/src/class-elements/err-delete-call-expression-private-method-gen.case
+++ b/src/class-elements/err-delete-call-expression-private-method-gen.case
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-desc: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+desc: >
+  It's a SyntaxError if delete operator is applied to CallExpression.PrivateName
+  generator
 template: delete-error
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, generators]
 ---*/
 
 //- infieldsetup
diff --git a/src/class-elements/err-delete-call-expression-private-method.case b/src/class-elements/err-delete-call-expression-private-method.case
index e542575dd0859afe086bf5c7916926012eef2f38..7a70217282efe0a9953675c914764771831a1fde 100644
--- a/src/class-elements/err-delete-call-expression-private-method.case
+++ b/src/class-elements/err-delete-call-expression-private-method.case
@@ -2,9 +2,11 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-desc: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+desc: >
+  It's a SyntaxError if delete operator is applied to CallExpression.PrivateName
+  private ordinary method
 template: delete-error
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private]
 ---*/
 
 //- infieldsetup
diff --git a/src/class-elements/err-delete-call-expression-private-no-reference.case b/src/class-elements/err-delete-call-expression-private-no-reference.case
new file mode 100644
index 0000000000000000000000000000000000000000..6ae6b52c5bad63171426a26c477cab5cba98508b
--- /dev/null
+++ b/src/class-elements/err-delete-call-expression-private-no-reference.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: >
+  It's a SyntaxError if delete operator is applied to CallExpression.PrivateName
+  no referencing class element
+template: delete-error
+---*/
+
+//- infieldsetup
+g = this.f;
+//- infunctionsetup
+var g = this.f;
+//- expression
+g().#m
+//- functiondeclaration
+f() {
+return this;
+}
diff --git a/src/class-elements/err-delete-call-expression-privatename.case b/src/class-elements/err-delete-call-expression-privatename.case
index 22918e62df6f654cc877120dd880b984c8f5bd75..25e1339120d2a5cfe953c00b42b343a43e036774 100644
--- a/src/class-elements/err-delete-call-expression-privatename.case
+++ b/src/class-elements/err-delete-call-expression-privatename.case
@@ -2,9 +2,10 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-desc: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+desc: >
+  It's a SyntaxError if delete operator is applied to CallExpression.PrivateName
+  private field
 template: delete-error
-features: [class, class-fields-private, class-fields-public]
 ---*/
 
 //- infieldsetup
diff --git a/src/class-elements/err-delete-member-expression-private-method-accessor-get.case b/src/class-elements/err-delete-member-expression-private-method-accessor-get.case
new file mode 100644
index 0000000000000000000000000000000000000000..925f160ad5c005b3ad3f891be80696af373cb8f9
--- /dev/null
+++ b/src/class-elements/err-delete-member-expression-private-method-accessor-get.case
@@ -0,0 +1,16 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: >
+    It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+    accessor get method
+template: delete-error
+features: [class-methods-private]
+---*/
+
+//- expression
+this.#m
+
+//- functiondeclaration
+get #m() {}
\ No newline at end of file
diff --git a/src/class-elements/err-delete-member-expression-private-method-accessor-set.case b/src/class-elements/err-delete-member-expression-private-method-accessor-set.case
new file mode 100644
index 0000000000000000000000000000000000000000..e6cbd4760a6aa5dd98a5f51193f2e82657f50332
--- /dev/null
+++ b/src/class-elements/err-delete-member-expression-private-method-accessor-set.case
@@ -0,0 +1,16 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: >
+    It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+    accessor set method
+template: delete-error
+features: [class-methods-private]
+---*/
+
+//- expression
+this.#m
+
+//- functiondeclaration
+set #m(arg) {}
\ No newline at end of file
diff --git a/src/class-elements/err-delete-member-expression-private-method-async-gen.case b/src/class-elements/err-delete-member-expression-private-method-async-gen.case
index 3f8763f3ecc73bb046ab3367035877d2d98ae89e..e45c88d82681fcce5117967d0c73556c908e0c96 100644
--- a/src/class-elements/err-delete-member-expression-private-method-async-gen.case
+++ b/src/class-elements/err-delete-member-expression-private-method-async-gen.case
@@ -2,13 +2,15 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-desc: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+desc: >
+  It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+  async generator
 template: delete-error
-features: [class-methods-private]
+features: [class-methods-private, async-iteration]
 ---*/
 
 //- expression
 this.#m
 
 //- functiondeclaration
-async *#m() {}
\ No newline at end of file
+async *#m() {}
diff --git a/src/class-elements/err-delete-member-expression-private-method-async.case b/src/class-elements/err-delete-member-expression-private-method-async.case
index e42336f70093bf93a7483292614df15aa0c19612..05f5689515643595a8b6db216ceab927ef10a92d 100644
--- a/src/class-elements/err-delete-member-expression-private-method-async.case
+++ b/src/class-elements/err-delete-member-expression-private-method-async.case
@@ -2,13 +2,15 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-desc: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+desc: >
+  It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+  async method
 template: delete-error
-features: [class-methods-private]
+features: [class-methods-private, async-functions]
 ---*/
 
 //- expression
 this.#m
 
 //- functiondeclaration
-async #m() {}
\ No newline at end of file
+async #m() {}
diff --git a/src/class-elements/err-delete-member-expression-private-method-gen.case b/src/class-elements/err-delete-member-expression-private-method-gen.case
index 7eb0fafe875bcdc962b94c2d0c8f444ea7c52caf..4209e1efd1a022a4e14e89c47c29e9a743d75c41 100644
--- a/src/class-elements/err-delete-member-expression-private-method-gen.case
+++ b/src/class-elements/err-delete-member-expression-private-method-gen.case
@@ -2,13 +2,15 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-desc: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+desc: >
+  It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+  generator
 template: delete-error
-features: [class-methods-private]
+features: [class-methods-private, generators]
 ---*/
 
 //- expression
 this.#m
 
 //- functiondeclaration
-*#m() {}
\ No newline at end of file
+*#m() {}
diff --git a/src/class-elements/err-delete-member-expression-private-method.case b/src/class-elements/err-delete-member-expression-private-method.case
index b7dbe03f0a64127c05c9fea4fb945a76319a5f16..9b13b6288b8340974695bfedd95a30adf2a8679c 100644
--- a/src/class-elements/err-delete-member-expression-private-method.case
+++ b/src/class-elements/err-delete-member-expression-private-method.case
@@ -2,7 +2,9 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-desc: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+desc: >
+  It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+  private ordinary method
 template: delete-error
 features: [class-methods-private]
 ---*/
diff --git a/src/class-elements/err-delete-member-expression-private-no-reference.case b/src/class-elements/err-delete-member-expression-private-no-reference.case
new file mode 100644
index 0000000000000000000000000000000000000000..d22678b02e42f740a4875913408eb526cf62056d
--- /dev/null
+++ b/src/class-elements/err-delete-member-expression-private-no-reference.case
@@ -0,0 +1,12 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: >
+  It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+  no referencing class element
+template: delete-error
+---*/
+
+//- expression
+this.#m
diff --git a/src/class-elements/err-delete-member-expression-privatename.case b/src/class-elements/err-delete-member-expression-privatename.case
index 6b6a0e096369b6e88943a63ae06c8cd1ca5fadbe..0bc0bbd16ef52a75099fd307441ca38126f64c60 100644
--- a/src/class-elements/err-delete-member-expression-privatename.case
+++ b/src/class-elements/err-delete-member-expression-privatename.case
@@ -2,9 +2,10 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-desc: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+desc: >
+  It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName
+  private field
 template: delete-error
-features: [class-fields-private]
 ---*/
 
 //- expression
diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-get.js b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..022055787b903cc0ca74ec5ca4fd1264ac139f8f
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-get.js
@@ -0,0 +1,42 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-expr-field-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in field, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class-fields-public, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m);
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-set.js b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..0c126c1607cafd6077e4b337cd565fa31a04f9be
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-set.js
@@ -0,0 +1,42 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-expr-field-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in field, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-methods-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m);
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-async-gen.js b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-async-gen.js
index e0cd1449a3c3a5d7aaad30ef7209eadccab52fd6..3ec29edfa8d0792bda0960b703a1bbb4e6b117f6 100644
--- a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-async-gen.js
+++ b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-expr-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-async.js b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-async.js
index fe2c0144e7e01f411ade4faf4a27f9a065da85ac..8a15a01b35c6e1225949bbf0d52deac9231de27d 100644
--- a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-async.js
+++ b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-expr-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-gen.js b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-gen.js
index 2c2bf14b1f28438629a574747d2c0305af7d147e..9d7bd3b2f395f94f5e677c12b603044b21b5350e 100644
--- a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-gen.js
+++ b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-expr-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method.js b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method.js
index 81926aa80bd6109d4245fcc63a8adb46cd460ff9..29fbcf8d336276966953cc969189fc18ed861cda 100644
--- a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method.js
+++ b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method.case
 // - src/class-elements/delete-error/cls-expr-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-no-reference.js b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..5904400f7f47cd8a86552f157263c747001b16a8
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-no-reference.js
@@ -0,0 +1,42 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-expr-field-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in field, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m);
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-privatename.js b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-privatename.js
index 3a6beeebcbdb5f07219f3cfa87d2f4ca2a73453a..57e7217f553485e72e2d66a92138639fb8ee5a6a 100644
--- a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-privatename.js
+++ b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-privatename.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-call-expression-privatename.case
 // - src/class-elements/delete-error/cls-expr-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-get.js b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..9816f437fbc0a4aba87da7a3b7ca6ee5ed241240
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-get.js
@@ -0,0 +1,41 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-expr-field-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in field, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+);
+
+  
+}
diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-set.js b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..07e394c984cc08dc06726ecd41b61c222c53b117
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-set.js
@@ -0,0 +1,41 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-expr-field-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in field, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+);
+
+  
+}
diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-async-gen.js b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-async-gen.js
index 1c4cbf5e962d90f210509dc8c3fa6ef3131a8b11..43930fd1c0ffcccee26aad02fabfdf9886dd60b0 100644
--- a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-async-gen.js
+++ b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-expr-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -37,5 +37,5 @@ var C = class {
   x = delete (this.#m
 );
 
-  
+  async *#m() {}
 }
diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-async.js b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-async.js
index 96ecc7e0e80959ae81198d6cde0401606eae4cc0..a4dc7868428b7ca4c270cec0d49ede089f36d820 100644
--- a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-async.js
+++ b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-expr-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -37,5 +37,5 @@ var C = class {
   x = delete (this.#m
 );
 
-  
+  async #m() {}
 }
diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-gen.js b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-gen.js
index 52482f8e487178e601247db21083843555c202c8..ee58a1186d422159daa0e8052dc52716fdf576f4 100644
--- a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-gen.js
+++ b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-expr-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -37,5 +37,5 @@ var C = class {
   x = delete (this.#m
 );
 
-  
+  *#m() {}
 }
diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method.js b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method.js
index 7bfa1f7a14d926ea5d4e0bae6ac6e971c9636600..de8b82fc712be34b120e005bb9d4547fd7013704 100644
--- a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method.js
+++ b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-member-expression-private-method.case
 // - src/class-elements/delete-error/cls-expr-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class-methods-private, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-no-reference.js b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..8ce8be9af21a6a30a0f610c9f20cc6ee50c1ccb1
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-no-reference.js
@@ -0,0 +1,40 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-expr-field-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in field, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m);
+
+  
+}
diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-privatename.js b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-privatename.js
index 35be85f9f4b09d529eced5d4ae2fe6d4e6e960a7..fc9f49a2f8d303085f29c33f2b309ab0b13ddfab 100644
--- a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-privatename.js
+++ b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-privatename.case
 // - src/class-elements/delete-error/cls-expr-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields-private, class, class-fields-public]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-accessor-get.js b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..fbcd6474e0cdc2920411a30ac2455e87a4598b5a
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-accessor-get.js
@@ -0,0 +1,36 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-expr-field-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in field)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class-fields-public, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m;
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-accessor-set.js b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..6975218e2297369a12127712186e314ff8afab0d
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-accessor-set.js
@@ -0,0 +1,36 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-expr-field-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in field)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-methods-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m;
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-async-gen.js b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-async-gen.js
index b967ea1a9f8444a548694cca982cefebb133be09..354962f6e9dcd79a6327688e3486f5e31ae06e29 100644
--- a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-async-gen.js
+++ b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-expr-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-async.js b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-async.js
index 0f2fb4f55939ba610d952c4ea41851894acc8e86..f901af7ae089de8f1ff4996ae8e55c2406a62401 100644
--- a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-async.js
+++ b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-expr-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-gen.js b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-gen.js
index b45028a20ac6248f3ee554b69a12700e4b8fbec8..5000fabcf559293eda21b783562a33b14967618b 100644
--- a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-gen.js
+++ b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-expr-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method.js b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method.js
index 0354a71faf675542e08f90cf8f8bb6e64c6795cd..f85af1e85e9232a3d03dedeced95e9a2ab56f9ff 100644
--- a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method.js
+++ b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method.case
 // - src/class-elements/delete-error/cls-expr-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-no-reference.js b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..f0758f5c50b7061c526554cf17e0fb140dc9b5d2
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-no-reference.js
@@ -0,0 +1,36 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-expr-field-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in field)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m;
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-field-delete-err-delete-call-expression-privatename.js b/test/language/expressions/class/err-field-delete-err-delete-call-expression-privatename.js
index b820cd3a757c54c35fabbde7821b83d7902fe6e7..b27cb1dbbb2ef13a367e59bc9f29f8c231fbaa72 100644
--- a/test/language/expressions/class/err-field-delete-err-delete-call-expression-privatename.js
+++ b/test/language/expressions/class/err-field-delete-err-delete-call-expression-privatename.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-call-expression-privatename.case
 // - src/class-elements/delete-error/cls-expr-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in field)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
diff --git a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-accessor-get.js b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..fb2629aa606a047180421e0b77a4e19bf0b55cfe
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-accessor-get.js
@@ -0,0 +1,35 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-expr-field-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in field)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+;
+
+  
+}
diff --git a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-accessor-set.js b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..950cab6f9971ff095c52ca4936450c25d002684d
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-accessor-set.js
@@ -0,0 +1,35 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-expr-field-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in field)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+;
+
+  
+}
diff --git a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-async-gen.js b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-async-gen.js
index 3483908500e784e6435db5f90299bfc98ccc33ca..b2a373e4383f2efc1e8d90cc855c02cd2ae22b6b 100644
--- a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-async-gen.js
+++ b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-expr-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -31,5 +31,5 @@ var C = class {
   x = delete this.#m
 ;
 
-  
+  async *#m() {}
 }
diff --git a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-async.js b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-async.js
index 7457e1ec205ce660790dd289ea01780d3eb2078f..6ae75180dfaa3cb3b9fffe0c80a148e609d590e5 100644
--- a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-async.js
+++ b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-expr-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -31,5 +31,5 @@ var C = class {
   x = delete this.#m
 ;
 
-  
+  async #m() {}
 }
diff --git a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-gen.js b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-gen.js
index 25da0aa63202369f884552a4fe92d22ab9f5bd3a..92b5a0716258e6e79635020c68f0838dd4086df1 100644
--- a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-gen.js
+++ b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-expr-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -31,5 +31,5 @@ var C = class {
   x = delete this.#m
 ;
 
-  
+  *#m() {}
 }
diff --git a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method.js b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method.js
index 9b7522a093f5dc74b17bf4193389a87a694ac19f..bec084c2d7b0f151f3a3ffcc555bb20601a0338d 100644
--- a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method.js
+++ b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-member-expression-private-method.case
 // - src/class-elements/delete-error/cls-expr-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in field)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class-methods-private, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
diff --git a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-no-reference.js b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..47da94d834d95b19ba5434a1a2e3a1bd5d331a3b
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-no-reference.js
@@ -0,0 +1,34 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-expr-field-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in field)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m;
+
+  
+}
diff --git a/test/language/expressions/class/err-field-delete-err-delete-member-expression-privatename.js b/test/language/expressions/class/err-field-delete-err-delete-member-expression-privatename.js
index 7e0d67d406db7bde4440b3547baf8cb2667015eb..dfaae84838e4abdd8eed91843cfd8af4563f3623 100644
--- a/test/language/expressions/class/err-field-delete-err-delete-member-expression-privatename.js
+++ b/test/language/expressions/class/err-field-delete-err-delete-member-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-privatename.case
 // - src/class-elements/delete-error/cls-expr-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields-private, class, class-fields-public]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..3e90a979d1679e5750986fabbaa9e058b3f33860
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js
@@ -0,0 +1,42 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in field, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class-fields-public, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m));
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..5dbed7c0172e98f8137eca29dcebf09739dc6982
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js
@@ -0,0 +1,42 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in field, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-methods-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m));
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js
index 498d88ab988d3be62e8f5e7499e18612f8a86066..80e557e13734fd713c84c278c8e5cab54f86ed0b 100644
--- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js
+++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async.js
index dfa9029085abe3a635809c3267799fcf2be0dc59..09591cd36b1856ea212ec3a887a751b32107c378 100644
--- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async.js
+++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-gen.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-gen.js
index 31b064420792d3d580e7dbc45512e294e195eaf9..f9a420fe9c6008dfce31b8f3d95f0a3ca6b97cf1 100644
--- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-gen.js
+++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method.js
index b51df544a20f0494d3e8ecec2d1c738710ef2ce9..39788cb0c948f8b9b887a2be24144db4c387a378 100644
--- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method.js
+++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method.case
 // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-no-reference.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..2eca0c6e8c71b238be7e5d6155e7524e8b51bef2
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-no-reference.js
@@ -0,0 +1,42 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in field, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m));
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-privatename.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-privatename.js
index 428b6c3ec5b352d2f725eaa8f4769ad426e09ee7..df52559f1b70c48f66f33effb2b9f76387c0359a 100644
--- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-privatename.js
+++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-privatename.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-call-expression-privatename.case
 // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..2162a4720ee298e3c56dc68431120fd8cdddd1ed
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js
@@ -0,0 +1,41 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in field, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+));
+
+  
+}
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..1f0e32f39e07a807dfeace263d549965160106e9
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js
@@ -0,0 +1,41 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in field, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+));
+
+  
+}
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js
index b27f8f40ba34a0cb5d076ae2c49978659318ddab..eb5311c045614116fe3d49a153e6a7f29b7e786a 100644
--- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js
+++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -37,5 +37,5 @@ var C = class {
   x = delete ((this.#m
 ));
 
-  
+  async *#m() {}
 }
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async.js
index 50f049337a3ce2ce4fb3ae3db4e2a044cb4430c5..06e39e08143de8157b131203b2f14f2e6677c88e 100644
--- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async.js
+++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -37,5 +37,5 @@ var C = class {
   x = delete ((this.#m
 ));
 
-  
+  async #m() {}
 }
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-gen.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-gen.js
index 693b77792cb5ffbc1f3ec399510bb6cbc7ac53ad..caa4eea141a2e97f08f219277c32d5a1f932b77b 100644
--- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-gen.js
+++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -37,5 +37,5 @@ var C = class {
   x = delete ((this.#m
 ));
 
-  
+  *#m() {}
 }
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method.js
index 42b33c457ec0cc88e57a17d1cf6e5ea7cd910f1a..815f035ca775d3b1cb138d3e0d287e6b115ae62b 100644
--- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method.js
+++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-member-expression-private-method.case
 // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class-methods-private, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-no-reference.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..4bb45d097b2f3e456201b7dee1095055563a6022
--- /dev/null
+++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-no-reference.js
@@ -0,0 +1,40 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in field, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m));
+
+  
+}
diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-privatename.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-privatename.js
index 1db6d3b16cbf4e844cada37e01cecdfad891088c..99174c0331b203f68c40b60709b2195d49d43824 100644
--- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-privatename.js
+++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-privatename.case
 // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields-private, class, class-fields-public]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-get.js b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..c6d7a96a3ba5df6fd94ec792b09ed9d91ab40638
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-get.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-expr-method-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in method, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class-fields-public, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m);
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-set.js b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..fc1fabfc2f5c9b4e733860a4fc77f5f8c7f2eb7e
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-set.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-expr-method-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in method, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-methods-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m);
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-async-gen.js b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-async-gen.js
index fe565e2a8f51de2d6312addd6522e0b02b13e355..7c3a6c60faf8d3cfc658deb228a429af71e79c11 100644
--- a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-async-gen.js
+++ b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-expr-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-async.js b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-async.js
index 859936f4c8d6f6bdcb0c115f1441603a9ce9dbd6..80e38ad95da5cb3b78dd99b8e82e5ddad9acb5e5 100644
--- a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-async.js
+++ b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-expr-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-gen.js b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-gen.js
index 0a614f5f546d5714c35dfe92417b573e166d2982..3812eb3a0f7d4c44794ca6f4ab02eb330f094add 100644
--- a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-gen.js
+++ b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-expr-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method.js b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method.js
index 9d0a1d1ebe0752b39dd313c4aa465541bd436865..2a56f816c0ddbaddbc0dc581aa3ec6870cbacee8 100644
--- a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method.js
+++ b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method.case
 // - src/class-elements/delete-error/cls-expr-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-no-reference.js b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..aff64b4f793cc0236e08ca207054638c3587ff88
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-no-reference.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-expr-method-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in method, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m);
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-privatename.js b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-privatename.js
index a3617ff2b1185a1a7114fa93c0dd2663e930438f..598423d555f635d6408bd0f3110f594ba949a0fa 100644
--- a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-privatename.js
+++ b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-privatename.case
 // - src/class-elements/delete-error/cls-expr-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-fields-public]
+features: [class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-get.js b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..97091a635203db62552a6fccc0ecfaf9d0e80622
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-get.js
@@ -0,0 +1,44 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-expr-method-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in method, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+);
+  }
+
+  
+}
diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-set.js b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..396575b49f3bd24add540077bc1033d735862c63
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-set.js
@@ -0,0 +1,44 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-expr-method-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in method, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+);
+  }
+
+  
+}
diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-async-gen.js b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-async-gen.js
index e4a942d60f32b8e698c3cbafcbcdf0352e9fcb2b..0940bdf9668d138c151493242c2a4678258ab748 100644
--- a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-async-gen.js
+++ b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-expr-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, async-iteration, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -40,5 +40,5 @@ var C = class {
 );
   }
 
-  
+  async *#m() {}
 }
diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-async.js b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-async.js
index 25b2565ac0c959a663d2212889a6c0fa127bee13..bdf2c72783179d26aec2137a9e9a8fd34f708b7c 100644
--- a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-async.js
+++ b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-expr-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, async-functions, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -40,5 +40,5 @@ var C = class {
 );
   }
 
-  
+  async #m() {}
 }
diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-gen.js b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-gen.js
index 1bd77a6137febf0977f610270e1532906296f626..3901ebce3353dd13e7ad5353446500d996012890 100644
--- a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-gen.js
+++ b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-expr-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, generators, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -40,5 +40,5 @@ var C = class {
 );
   }
 
-  
+  *#m() {}
 }
diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method.js b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method.js
index 3cd2e4c6d19b68874c3b4cdd7f5b14f57e250101..5dcc9a277ad345788ebbbe7d6529edd51c7f972f 100644
--- a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method.js
+++ b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-member-expression-private-method.case
 // - src/class-elements/delete-error/cls-expr-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class-methods-private, class, class-fields-private]
 flags: [generated, onlyStrict]
diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-no-reference.js b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..bc44cc8800e5496b93d99356ec8440101d3f5eda
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-no-reference.js
@@ -0,0 +1,43 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-expr-method-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in method, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m);
+  }
+
+  
+}
diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-privatename.js b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-privatename.js
index b83515b19bb732cf39da7cfeea6939707fbf65e9..5ea0cd7ecb178f7c917ad9d7cc83dae06f77a858 100644
--- a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-privatename.js
+++ b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-privatename.case
 // - src/class-elements/delete-error/cls-expr-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields-private, class]
+features: [class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-accessor-get.js b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..7d3261fd2dd3453495f5dba29f24b93c93c6e571
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-accessor-get.js
@@ -0,0 +1,39 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-expr-method-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in method)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class-fields-public, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m;
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-accessor-set.js b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..405971b5b64410088dd0187c2b87c16098ce1fde
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-accessor-set.js
@@ -0,0 +1,39 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-expr-method-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in method)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-methods-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m;
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-async-gen.js b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-async-gen.js
index a78ddb06481384df0987cfe8b423e7566048adc4..4bc2bf0a54772964b086f2992e360988812507bd 100644
--- a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-async-gen.js
+++ b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-expr-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-async.js b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-async.js
index f44d0c0dea234e1b70605937930ffa7da7f297d8..81584c0e80b541effad4fd9bf74b26c04897f27d 100644
--- a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-async.js
+++ b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-expr-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-gen.js b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-gen.js
index a9450d49d5f8fff7c6dec8e4426d2be86d35ef01..004b184db74e934d49aaf33a86ed3dcde513b6d5 100644
--- a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-gen.js
+++ b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-expr-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method.js b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method.js
index ff17918f5794412e1b5f4e8cfa825b681cbeeb16..1a65ca28e12e8031b65ed416b254bf13659c2066 100644
--- a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method.js
+++ b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method.case
 // - src/class-elements/delete-error/cls-expr-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-no-reference.js b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..d09d9e0ec30ee408175fdc4a246a6fcbcc62dea6
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-no-reference.js
@@ -0,0 +1,39 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-expr-method-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in method)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m;
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-method-delete-err-delete-call-expression-privatename.js b/test/language/expressions/class/err-method-delete-err-delete-call-expression-privatename.js
index 4d6459aa0460ca97415f88051d3c3b5fe4218e56..5c5528a7d7130d05f32f896f9c76e565e526863c 100644
--- a/test/language/expressions/class/err-method-delete-err-delete-call-expression-privatename.js
+++ b/test/language/expressions/class/err-method-delete-err-delete-call-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-privatename.case
 // - src/class-elements/delete-error/cls-expr-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-fields-public]
+features: [class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-accessor-get.js b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..bc1db5ef831181170709873bbc69613897a07706
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-accessor-get.js
@@ -0,0 +1,38 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-expr-method-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in method)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+;
+  }
+
+  
+}
diff --git a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-accessor-set.js b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..a7c23e0d345b5b171f6157caa214d94289def9c4
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-accessor-set.js
@@ -0,0 +1,38 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-expr-method-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in method)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+;
+  }
+
+  
+}
diff --git a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-async-gen.js b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-async-gen.js
index 5b100cee0eb0aace5ad4589d5b94a3bcbb76427d..16d83ac20dcec6bdb9f943294a7c22b1c5f02fff 100644
--- a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-async-gen.js
+++ b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-expr-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, async-iteration, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -34,5 +34,5 @@ var C = class {
 ;
   }
 
-  
+  async *#m() {}
 }
diff --git a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-async.js b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-async.js
index 5cab49c52e23feb2fc93ef0dacfe9c93a8ce82f7..d394992e8eafd7a5425c769fe3b8eae8159d2260 100644
--- a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-async.js
+++ b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-expr-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, async-functions, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -34,5 +34,5 @@ var C = class {
 ;
   }
 
-  
+  async #m() {}
 }
diff --git a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-gen.js b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-gen.js
index 350332223bbd1377b4664daa978d0faf91905142..ccee6cc9cbc45e8f52acd2883921c6cae703e88f 100644
--- a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-gen.js
+++ b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-expr-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, generators, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -34,5 +34,5 @@ var C = class {
 ;
   }
 
-  
+  *#m() {}
 }
diff --git a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method.js b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method.js
index f5fbdaa6be7858b9c296a821401f3fa3014e386a..054a4763859b085deabe01438deb3e78b41c358f 100644
--- a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method.js
+++ b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-member-expression-private-method.case
 // - src/class-elements/delete-error/cls-expr-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in method)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class-methods-private, class, class-fields-private]
 flags: [generated, onlyStrict]
diff --git a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-no-reference.js b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..26c9fa2aa1cda8a59061d303541423cdd13cee0d
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-no-reference.js
@@ -0,0 +1,37 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-expr-method-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in method)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m;
+  }
+
+  
+}
diff --git a/test/language/expressions/class/err-method-delete-err-delete-member-expression-privatename.js b/test/language/expressions/class/err-method-delete-err-delete-member-expression-privatename.js
index b115b91adde9d12376949e82c018c6977b6f79a2..6bc7b160ebe0bf65b25d6c0214b7fa1c39e47275 100644
--- a/test/language/expressions/class/err-method-delete-err-delete-member-expression-privatename.js
+++ b/test/language/expressions/class/err-method-delete-err-delete-member-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-privatename.case
 // - src/class-elements/delete-error/cls-expr-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields-private, class]
+features: [class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..53531d404a9428ad3ca52296efcad96bb3469183
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in method, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class-fields-public, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m));
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..e8ff9b0df1242b786b8de131673a43086906ccbe
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in method, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-methods-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m));
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js
index 15ba93738bb762b1c077522d78fd80d908358a80..87aff2a08ebc14c326db097082fe0a3d8aebbfb4 100644
--- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js
+++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async.js
index 5b9a044c9ea841df14b84955ebe1d5b0c2d1f759..2e6b165918d7b3b14f27be5596d3edc0b8271f6b 100644
--- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async.js
+++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-gen.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-gen.js
index 753d3145e7ee57f44fb3aaa4ab5f88402960078c..1f2e6f74e5ea1bb769a1b10312de3f2b3ece2027 100644
--- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-gen.js
+++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method.js
index f51adde5f6e6ab9a8842db9d50363483ca2e71eb..b29c6bfb8b79b5059916ecb06da9e348762fb9b7 100644
--- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method.js
+++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method.case
 // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-no-reference.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..6ea1bef465fb7c0aa2cf9e9e1c84b51e6dd9b83a
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-no-reference.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in method, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m));
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-privatename.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-privatename.js
index d38b56807184fe369f4c1ebcd6a8ab88eadcb037..24fd268378841a90f20fa28b035031aea51d3bc7 100644
--- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-privatename.js
+++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-privatename.case
 // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-fields-public]
+features: [class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..314a5cee4a4fb9bba286dd01125cf5b1cd51f124
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js
@@ -0,0 +1,44 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in method, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+));
+  }
+
+  
+}
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..69fcafa90b40e86ba342b91f1a6bdd4686aaa418
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js
@@ -0,0 +1,44 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in method, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+));
+  }
+
+  
+}
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js
index 9ed9ddf0d5d80895a7c6db0743462f3d06e3d450..5ac5552e256c3d64897592090dcfc79288fe6076 100644
--- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js
+++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, async-iteration, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -40,5 +40,5 @@ var C = class {
 ));
   }
 
-  
+  async *#m() {}
 }
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async.js
index bda94fa75385e475d9c7044df80706a2002b2be9..5f03915dc033a85d34bed53485af75f4b946ebe3 100644
--- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async.js
+++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, async-functions, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -40,5 +40,5 @@ var C = class {
 ));
   }
 
-  
+  async #m() {}
 }
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-gen.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-gen.js
index d854d47538268bd07f2e6d6833513c1a3d9a0d31..f457b3b0fafd53c10eed4fbe808af042f6fe3ad5 100644
--- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-gen.js
+++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, generators, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -40,5 +40,5 @@ var C = class {
 ));
   }
 
-  
+  *#m() {}
 }
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method.js
index 1b56bfdf551d83ac868cb98e0513fe32c97f45a7..887a2e16ae001b7f15e1755881120ebda6764b05 100644
--- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method.js
+++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-member-expression-private-method.case
 // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class-methods-private, class, class-fields-private]
 flags: [generated, onlyStrict]
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-no-reference.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..a89c05360e04b7f3555ccd709519600329b459ab
--- /dev/null
+++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-no-reference.js
@@ -0,0 +1,43 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in method, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m));
+  }
+
+  
+}
diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-privatename.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-privatename.js
index ba1409305bccfb5c73e1c231368a487cbc4f5610..f9b1ab978fdd894ee4a8d9d46f3328ac20b532c6 100644
--- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-privatename.js
+++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-privatename.case
 // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields-private, class]
+features: [class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-get.js b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..56ad756e6abd876ad141359656784bb3bf7f8740
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-get.js
@@ -0,0 +1,41 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-decl-field-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in field, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class-fields-public, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m);
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-set.js b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..3949eb76a7c4610e3c31472664795e12ccceced9
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-set.js
@@ -0,0 +1,41 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-decl-field-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in field, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-methods-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m);
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-async-gen.js b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-async-gen.js
index dc41395c8b750a10591e4f652499c46065aee799..d161f8609f81832723290fa8ff7a4d5a4dbbb04a 100644
--- a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-async-gen.js
+++ b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-decl-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-async.js b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-async.js
index 84a5677abbeabba710a1186936c97208f9af53b3..e64c827651da4e326cc54b13fab005b5bb101d19 100644
--- a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-async.js
+++ b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-decl-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-gen.js b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-gen.js
index 9f67675420d13f9e4d30b8d5b54920a5f7c931a2..91fb60f4ed9e5af6c77cd56df82c54bc703f26e2 100644
--- a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-gen.js
+++ b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-decl-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method.js b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method.js
index 507fb4bccdf4102ca020d61d1cf1d2ef9ffc08a0..d0c3575d8a53b33a385437e65ba511c595ad1074 100644
--- a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method.js
+++ b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method.case
 // - src/class-elements/delete-error/cls-decl-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-no-reference.js b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..fee805013290ca48c488be54017208746beb8ab3
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-no-reference.js
@@ -0,0 +1,41 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-decl-field-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in field, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m);
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-privatename.js b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-privatename.js
index 527bd983eef48e7a6c6d73c3c1c9ecd3ba2ac80e..12228306af11780e7dd8a48ee02ab0a29e77cd64 100644
--- a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-privatename.js
+++ b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-privatename.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-call-expression-privatename.case
 // - src/class-elements/delete-error/cls-decl-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-get.js b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..3de6bd17c9d69d3aac1d612843d92b9fd310ebed
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-get.js
@@ -0,0 +1,40 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-decl-field-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in field, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+);
+  
+}
diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-set.js b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..bc1f4e8d4a67cf7297fb4c9c9adab0b84aa02d47
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-set.js
@@ -0,0 +1,40 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-decl-field-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in field, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+);
+  
+}
diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-async-gen.js b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-async-gen.js
index 92bd8fb3247f831a7f8fca15c3fe5a57b64bebb9..61e5379b3e721434a692e6368202ab4eb85be7e9 100644
--- a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-async-gen.js
+++ b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-decl-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -36,5 +36,5 @@ class C {
   
   x = delete (this.#m
 );
-  
+  async *#m() {}
 }
diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-async.js b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-async.js
index 7706ee76aafb3f609798265783b9b90c3566e988..bbd87f265c2cc4b04ee8512c8637363dbc0c00e0 100644
--- a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-async.js
+++ b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-decl-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -36,5 +36,5 @@ class C {
   
   x = delete (this.#m
 );
-  
+  async #m() {}
 }
diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-gen.js b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-gen.js
index 75470c8324e6f8700df90e05c316c62599574022..3534ce658031cd2914afab7ae4e2da8b079ecc49 100644
--- a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-gen.js
+++ b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-decl-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -36,5 +36,5 @@ class C {
   
   x = delete (this.#m
 );
-  
+  *#m() {}
 }
diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method.js b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method.js
index 4a6f0ea9271a3cba5424ba034f3065221493fe22..449a4afae92fbece10a2bb6766adc6cad3f94e61 100644
--- a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method.js
+++ b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-member-expression-private-method.case
 // - src/class-elements/delete-error/cls-decl-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class-methods-private, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-no-reference.js b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..eff2f03997ea407914db6fa12bd889a9629022e6
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-no-reference.js
@@ -0,0 +1,39 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-decl-field-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in field, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m);
+  
+}
diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-privatename.js b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-privatename.js
index 87598e0898d764528f02257064cc7de99970ee65..d15045a3e88c4ed4a25db7f4b89e3bd53cfe5c5a 100644
--- a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-privatename.js
+++ b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-privatename.case
 // - src/class-elements/delete-error/cls-decl-field-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in field, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields-private, class, class-fields-public]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-accessor-get.js b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..9b38fc409ad3bd49cd81fe1b8082751dc751cb11
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-accessor-get.js
@@ -0,0 +1,35 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-decl-field-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in field)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class-fields-public, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m;
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-accessor-set.js b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..f3df025d7b26f9baa55aa9337a17b02e70eee153
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-accessor-set.js
@@ -0,0 +1,35 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-decl-field-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in field)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-methods-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m;
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-async-gen.js b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-async-gen.js
index 65dfa3a196b0f5dad6710affe6da26ab194bb3cb..f965784bc3b23a03540bc94825c1895d5f39c973 100644
--- a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-async-gen.js
+++ b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-decl-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-async.js b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-async.js
index eaff83358679e8b5bd9cf77a3c23c8d24448893a..c09dccca7b032fbc6393e950e5edfe4b49247e6f 100644
--- a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-async.js
+++ b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-decl-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-gen.js b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-gen.js
index c91489364a9379dcb4c526a546e4d704bcf9492c..9d1cf184dc9ec282232693cd4ece9417bfb3a3b8 100644
--- a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-gen.js
+++ b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-decl-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method.js b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method.js
index 59970b651f7b4f61cc2101dc64ae86dafd438698..9767b76c70b7e95928267261e16593781ecae3a3 100644
--- a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method.js
+++ b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method.case
 // - src/class-elements/delete-error/cls-decl-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-no-reference.js b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..e3ddf2818d2dd7965ae519065759357f213555dc
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-no-reference.js
@@ -0,0 +1,35 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-decl-field-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in field)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m;
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-field-delete-err-delete-call-expression-privatename.js b/test/language/statements/class/err-field-delete-err-delete-call-expression-privatename.js
index 1fb46f0584aba8a54e449c9407ea22e4c8648dd6..f076fd9c9f6f14d0dc21bdcfcb9744aa15ffc7ad 100644
--- a/test/language/statements/class/err-field-delete-err-delete-call-expression-privatename.js
+++ b/test/language/statements/class/err-field-delete-err-delete-call-expression-privatename.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-call-expression-privatename.case
 // - src/class-elements/delete-error/cls-decl-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in field)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
diff --git a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-accessor-get.js b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..c1c3ca28cb468b108c6691bf036979ec29ea1857
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-accessor-get.js
@@ -0,0 +1,34 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-decl-field-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in field)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+;
+  
+}
diff --git a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-accessor-set.js b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..4a4d31c9868a7cbb3d3a73160694da093bd6256b
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-accessor-set.js
@@ -0,0 +1,34 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-decl-field-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in field)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+;
+  
+}
diff --git a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-async-gen.js b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-async-gen.js
index 233b8eb4aeffe24f3588f19f84cf30f130640536..737c4f359fbb0b5815dad2db7c8a1b5ebd6b0206 100644
--- a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-async-gen.js
+++ b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-decl-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -30,5 +30,5 @@ class C {
   
   x = delete this.#m
 ;
-  
+  async *#m() {}
 }
diff --git a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-async.js b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-async.js
index f7f114f0982e8d0bea400e168843c4f30675d851..d852b17816fc7e66c8ee06b7ef173f5495f805a7 100644
--- a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-async.js
+++ b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-decl-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -30,5 +30,5 @@ class C {
   
   x = delete this.#m
 ;
-  
+  async #m() {}
 }
diff --git a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-gen.js b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-gen.js
index c707ace2389308e477a99f100dae7f75d9e1a3eb..300b3a52fa0d6ee3b082348b5deb23fd77671396 100644
--- a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-gen.js
+++ b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-decl-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -30,5 +30,5 @@ class C {
   
   x = delete this.#m
 ;
-  
+  *#m() {}
 }
diff --git a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method.js b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method.js
index c3980c9bf7a0818a6d96f34886701f3fa97b754a..14c859fc03682c8c9fe80d1dd225ab29d1af3e68 100644
--- a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method.js
+++ b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-member-expression-private-method.case
 // - src/class-elements/delete-error/cls-decl-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in field)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class-methods-private, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
diff --git a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-no-reference.js b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..b81f593b45b2964498e7aeedb0e4621a37c32592
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-no-reference.js
@@ -0,0 +1,33 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-decl-field-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in field)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m;
+  
+}
diff --git a/test/language/statements/class/err-field-delete-err-delete-member-expression-privatename.js b/test/language/statements/class/err-field-delete-err-delete-member-expression-privatename.js
index b141545b420de9cab667900183ba929bd4b67623..755ba0151eccc8f57239360fbbe2c62c4defb036 100644
--- a/test/language/statements/class/err-field-delete-err-delete-member-expression-privatename.js
+++ b/test/language/statements/class/err-field-delete-err-delete-member-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-privatename.case
 // - src/class-elements/delete-error/cls-decl-field-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in field)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields-private, class, class-fields-public]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..49c5a6d63c9a03c9f1e3890fb460c58dcb824c5f
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js
@@ -0,0 +1,42 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in field, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class-fields-public, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m));
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..efe2014c5a04f91dc9ddbbeb3796807b99fa21cd
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js
@@ -0,0 +1,42 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in field, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-methods-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m));
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js
index 8871ce46a02b2488237fc9c4393dfe1b9ce10732..f3148aa2c64a037efc66a5f83835cb8c924f5daf 100644
--- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js
+++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async.js
index 13f15a1407224d89807bd619e21b254a63d9fd08..dce9e2818243fd2f82e69ac5e3449132210eb07f 100644
--- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async.js
+++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-gen.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-gen.js
index 186528c21beb399c416d9bd8b3a090427b7d4aa3..201709812b8d11b3432f7b4990d01eab8384ad22 100644
--- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-gen.js
+++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method.js
index 50b84c0f91efe849dc411984f5a16c10bf4d3f39..5e87836ca6013348fd7a90e7ef88062a43f56fe1 100644
--- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method.js
+++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method.case
 // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-no-reference.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..cf911e748e51fcd01614841636cf0ef10357465e
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-no-reference.js
@@ -0,0 +1,42 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in field, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m));
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-privatename.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-privatename.js
index 04af0074f19690ad31b3e0d4c564fe2141d29ecf..2bd514b1d166804cf8955e191fe084d9bf47694b 100644
--- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-privatename.js
+++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-privatename.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-call-expression-privatename.case
 // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..315dbc3476b10f39e1b813f894a27895d107fadb
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js
@@ -0,0 +1,41 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in field, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+));
+
+  
+}
diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..e962c924d2fe9729cc7371413fe7002567368538
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js
@@ -0,0 +1,41 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in field, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+));
+
+  
+}
diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js
index 1ed22bbf4430bceddec45cb98fe1fb07850ee18e..7a48309bd4042081d0863f0bb72ea0a1c16fd3cd 100644
--- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js
+++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -37,5 +37,5 @@ class C {
   x = delete ((this.#m
 ));
 
-  
+  async *#m() {}
 }
diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async.js
index a5bf66a854ef7058937fd3fb3a954f54f4620b74..235361bb42cc0f11d8506f47eb0c3eb1c05b2c88 100644
--- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async.js
+++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -37,5 +37,5 @@ class C {
   x = delete ((this.#m
 ));
 
-  
+  async #m() {}
 }
diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-gen.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-gen.js
index 7b85917b38881da9a953da0b911a1c9597a0998e..daaaefdaadfc48593621c1aceccff471aaf4f794 100644
--- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-gen.js
+++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -37,5 +37,5 @@ class C {
   x = delete ((this.#m
 ));
 
-  
+  *#m() {}
 }
diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method.js
index 174eacf25f96728f3256af5ec594b55e3d364a35..25e568afad94e31f3e78ffccfc3b14eda300eac4 100644
--- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method.js
+++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-member-expression-private-method.case
 // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class-methods-private, class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-no-reference.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..8a305cb440e3320314edfdbc8ac90ffd5b8c55ed
--- /dev/null
+++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-no-reference.js
@@ -0,0 +1,40 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in field, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m));
+
+  
+}
diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-privatename.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-privatename.js
index 0aeafc533a0718194f41248e3d6e29662736e790..d1c7dc723b5cf7e3c960774bb3a570b9cf526d50 100644
--- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-privatename.js
+++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-privatename.case
 // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in field, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields-private, class, class-fields-public]
+features: [class, class-fields-private, class-fields-public]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-get.js b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..0e7da6469e451139f13c3b08d967964512c3ab16
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-get.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-decl-method-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in method, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class-fields-public, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m);
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-set.js b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..86cc23a646f3953b313664eff053ad12073c3484
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-set.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-decl-method-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in method, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-methods-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m);
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-async-gen.js b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-async-gen.js
index e4e4914e9f5c0799115ab835179b52cd237e9633..112536fdf112269d40d2ccde6ad8007bd61c66ff 100644
--- a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-async-gen.js
+++ b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-decl-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-async.js b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-async.js
index b4317e167893a78ba6c0545f98352c70e57d4c30..c99221e3c6c75c7335df12455caed4b426e3c6ad 100644
--- a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-async.js
+++ b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-decl-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-gen.js b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-gen.js
index 489cd25cb14fb87eea70b965484460773d5f2211..32bc9d3bc77d1f6ef53caaebacf9411800889938 100644
--- a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-gen.js
+++ b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-decl-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method.js b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method.js
index c1c56d3923e1b55af91bdb8319c7bad7c213ad66..4f19e6b4a739209b41eac85d1cbcf957664ff472 100644
--- a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method.js
+++ b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method.case
 // - src/class-elements/delete-error/cls-decl-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-no-reference.js b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..8dea65e48eb7fbdb54e9b1b53fff5067856825b7
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-no-reference.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-decl-method-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in method, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m);
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-privatename.js b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-privatename.js
index 083d02edf11a4804034f77f1981e76dd1302275d..c3b4b159a00f7485c008ef1c7fcf759344b44d40 100644
--- a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-privatename.js
+++ b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-privatename.case
 // - src/class-elements/delete-error/cls-decl-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-fields-public]
+features: [class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-get.js b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..90703d31886cbd068705b8a746f1a7a23dae478a
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-get.js
@@ -0,0 +1,44 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-decl-method-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in method, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+);
+  }
+
+  
+}
diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-set.js b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1ad4f9f794a478c55f847d0155586b4b1136aba
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-set.js
@@ -0,0 +1,44 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-decl-method-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in method, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+);
+  }
+
+  
+}
diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-async-gen.js b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-async-gen.js
index d3c617c9a2b86f2be719c65dd0f6a371c981060a..2724543ff1d5be01765a4c5be762b7fbcedf5977 100644
--- a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-async-gen.js
+++ b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-decl-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, async-iteration, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -40,5 +40,5 @@ class C {
 );
   }
 
-  
+  async *#m() {}
 }
diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-async.js b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-async.js
index 80d81b2fec8c78db1a7cf43f586d42b94170c618..b5af9e411aad8892095648b901f7f24d89b535ea 100644
--- a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-async.js
+++ b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-decl-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, async-functions, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -40,5 +40,5 @@ class C {
 );
   }
 
-  
+  async #m() {}
 }
diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-gen.js b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-gen.js
index f79318e2829aa0807cca0c71ebd2ef6e715e3deb..4ca5dcdf06af8be3c5cd54183399ad256631b298 100644
--- a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-gen.js
+++ b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-decl-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, generators, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -40,5 +40,5 @@ class C {
 );
   }
 
-  
+  *#m() {}
 }
diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method.js b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method.js
index 2d17acb3f01fdf2039e4eb2937869b9e42a09578..4ba3dad9e59d004fc1ff276222a765efcb43237b 100644
--- a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method.js
+++ b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-member-expression-private-method.case
 // - src/class-elements/delete-error/cls-decl-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class-methods-private, class, class-fields-private]
 flags: [generated, onlyStrict]
diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-no-reference.js b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..9441ee8c9d5651ef7b2bebe4611cec60124f240c
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-no-reference.js
@@ -0,0 +1,43 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-decl-method-delete-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in method, covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m);
+  }
+
+  
+}
diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-privatename.js b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-privatename.js
index 7bc210d9336a8b37271f5d4ecffdae7f49a75c04..09c06ad38bc125a0a167a05fa83175d1ac8eb7c1 100644
--- a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-privatename.js
+++ b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-privatename.case
 // - src/class-elements/delete-error/cls-decl-method-delete-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in method, covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields-private, class]
+features: [class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-accessor-get.js b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..04d61751e2eb592a50fcc89c8d2e3fc42a87c83f
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-accessor-get.js
@@ -0,0 +1,39 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-decl-method-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in method)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class-fields-public, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m;
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-accessor-set.js b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..a9ca1bb467d09b2a1b9f19f76b17ac099be7801c
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-accessor-set.js
@@ -0,0 +1,39 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-decl-method-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in method)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-methods-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m;
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-async-gen.js b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-async-gen.js
index 1ab0d9ec146ed471f4b296fb76671b2ac00a732a..1bafd2a591e3d72683b94d283c71f4989821024b 100644
--- a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-async-gen.js
+++ b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-decl-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-async.js b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-async.js
index 8be5dabcd97923655faebab928f3a0f7c478ec4e..6cc3bfa641fe5d4dc51ec5f75227b8b8873ac42a 100644
--- a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-async.js
+++ b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-decl-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-gen.js b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-gen.js
index 55b4d535870d2df1099876e0b968d3e2dad9ce21..54690f4f696eecaaae4e9012acaa1819b371858d 100644
--- a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-gen.js
+++ b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-decl-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method.js b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method.js
index ecc7f9b202d9ce86daaa7164195810a242097126..2219ceab2a0953977e7c6a459338a99e32481aa9 100644
--- a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method.js
+++ b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method.case
 // - src/class-elements/delete-error/cls-decl-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-no-reference.js b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..deb178b0f36bc008a65defbaf2d380edc32dcf55
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-no-reference.js
@@ -0,0 +1,39 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-decl-method-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in method)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m;
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-method-delete-err-delete-call-expression-privatename.js b/test/language/statements/class/err-method-delete-err-delete-call-expression-privatename.js
index b421f815ed0df6f2d3b72158cc912cca44f016c6..ccb6cf7d7a5a5b1d62292d5309c2651221423aad 100644
--- a/test/language/statements/class/err-method-delete-err-delete-call-expression-privatename.js
+++ b/test/language/statements/class/err-method-delete-err-delete-call-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-privatename.case
 // - src/class-elements/delete-error/cls-decl-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-fields-public]
+features: [class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-accessor-get.js b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..97898e4f4a74ee56a37e5bcab03eecc64107c959
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-accessor-get.js
@@ -0,0 +1,38 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-decl-method-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in method)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+;
+  }
+
+  
+}
diff --git a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-accessor-set.js b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..0110db8a5f70ad28fbba18e42003fce5ec3b7651
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-accessor-set.js
@@ -0,0 +1,38 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-decl-method-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in method)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+;
+  }
+
+  
+}
diff --git a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-async-gen.js b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-async-gen.js
index 5134a0f20f568a22eff5d449d27545b325d3b34b..f2b77dd3754aac9534898657dcdc8cc46dbba94a 100644
--- a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-async-gen.js
+++ b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-decl-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, async-iteration, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -34,5 +34,5 @@ class C {
 ;
   }
 
-  
+  async *#m() {}
 }
diff --git a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-async.js b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-async.js
index 93ee42b63592331efcdc02f121731b7bc8ee0b37..61827a3081aa9b13cf4bb00689e8fd21201ec071 100644
--- a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-async.js
+++ b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-decl-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, async-functions, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -34,5 +34,5 @@ class C {
 ;
   }
 
-  
+  async #m() {}
 }
diff --git a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-gen.js b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-gen.js
index 89778cdb82d04b1f8cca28332d190b4858fa093d..9c71129811f3f60533e468f2afec84c2339b901f 100644
--- a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-gen.js
+++ b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-decl-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, generators, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -34,5 +34,5 @@ class C {
 ;
   }
 
-  
+  *#m() {}
 }
diff --git a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method.js b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method.js
index fb80c5dab0a18907cc6bbb222b21df6426360555..9596186b9cd640d52083726b7a4d0f83481659b0 100644
--- a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method.js
+++ b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-member-expression-private-method.case
 // - src/class-elements/delete-error/cls-decl-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in method)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class-methods-private, class, class-fields-private]
 flags: [generated, onlyStrict]
diff --git a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-no-reference.js b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..d037f4b902aae435cfcba077ed4eb9b1694fff60
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-no-reference.js
@@ -0,0 +1,37 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-decl-method-delete.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in method)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m;
+  }
+
+  
+}
diff --git a/test/language/statements/class/err-method-delete-err-delete-member-expression-privatename.js b/test/language/statements/class/err-method-delete-err-delete-member-expression-privatename.js
index be5718eea876055dbefda6c910ac980ad3da6e71..55adc88a781faa94da0303578bd7819d762382ba 100644
--- a/test/language/statements/class/err-method-delete-err-delete-member-expression-privatename.js
+++ b/test/language/statements/class/err-method-delete-err-delete-member-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-privatename.case
 // - src/class-elements/delete-error/cls-decl-method-delete.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in method)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields-private, class]
+features: [class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..e412e2f6011a54229fd326bdc436eabf7691cc4e
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in method, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class-fields-public, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m));
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..e09261a4ec196444ab56521d45fc11f8a5b6a3d4
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in method, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private, class-methods-private, class-fields-public]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m));
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js
index 40395fc2e48aa1975ea6e32987f207cb964c0b64..6d51a9edbe12641cf9466a2600670740e60be5dc 100644
--- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js
+++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-iteration, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async.js
index aa05660900071d5ce6f4e3791d16ccfb16ba5c91..87619dea68c76fac183b2a17e6e8a29a4de1fff9 100644
--- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async.js
+++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, async-functions, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-gen.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-gen.js
index 90b4f748ce2c543fe72a25e8c48a8d7106151394..d910b5a6f09ad67200b511385e00c170257a2874 100644
--- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-gen.js
+++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, generators, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method.js
index be245a2f20da94ccb698e964318ff14e8cb3ad66..8a8d7636efeb076c7ff00f75546a28ba39dfb1d0 100644
--- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method.js
+++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-private-method.case
 // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-methods-private, class-fields-public]
+features: [class-methods-private, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-no-reference.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..16180e688c7c4770e55bba895b45899d6af0c70d
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-no-reference.js
@@ -0,0 +1,45 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-call-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in method, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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().#m));
+  }
+
+  f() {
+  return this;
+  }
+}
diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-privatename.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-privatename.js
index 2c5dfccc5353064607c553a4032cc512f465c582..440eb7032db22065dac3fc7c9d465e0c0dfbc63a 100644
--- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-privatename.js
+++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-call-expression-privatename.case
 // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class, class-fields-private, class-fields-public]
+features: [class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js
new file mode 100644
index 0000000000000000000000000000000000000000..fdc57a91e26ab2a185592ebd8facbb07335ae497
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js
@@ -0,0 +1,44 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case
+// - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in method, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+));
+  }
+
+  
+}
diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js
new file mode 100644
index 0000000000000000000000000000000000000000..4aaf46b917dac969697c225a4d632caee2d5b0ed
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js
@@ -0,0 +1,44 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case
+// - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in method, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class-methods-private, class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m
+));
+  }
+
+  
+}
diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js
index acf546aeb232ae92add989936c1b699841a1593a..9ee51316953557cfc8495ade7347bc256cb734cf 100644
--- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js
+++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async-gen.case
 // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, async-iteration, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -40,5 +40,5 @@ class C {
 ));
   }
 
-  
+  async *#m() {}
 }
diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async.js
index 14cb0d8dad163ced31bcd25ea082b5f23db11d18..ddeb208b272ce200826932031db38772c0e20ad3 100644
--- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async.js
+++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-async.case
 // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, async-functions, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -40,5 +40,5 @@ class C {
 ));
   }
 
-  
+  async #m() {}
 }
diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-gen.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-gen.js
index 31d38e2a13a02c9ea5d2aa3676368c4e1a87eea5..1b8dfd482a3427370b52adaa5f2aefda46217609 100644
--- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-gen.js
+++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-gen.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-private-method-gen.case
 // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-methods-private, class, class-fields-private]
+features: [class-methods-private, generators, class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse
@@ -40,5 +40,5 @@ class C {
 ));
   }
 
-  
+  *#m() {}
 }
diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method.js
index 9434bec4e0d194fb8c1e2e76001120ae6e290c07..06995d137ba38a3b79b87fff4d9d7e7600d9a2b3 100644
--- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method.js
+++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method.js
@@ -2,7 +2,7 @@
 // - src/class-elements/err-delete-member-expression-private-method.case
 // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
 features: [class-methods-private, class, class-fields-private]
 flags: [generated, onlyStrict]
diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-no-reference.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-no-reference.js
new file mode 100644
index 0000000000000000000000000000000000000000..e93073f3c3324b5f6253dd96fd1ebeefc7c3b2f1
--- /dev/null
+++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-no-reference.js
@@ -0,0 +1,43 @@
+// This file was procedurally generated from the following sources:
+// - src/class-elements/err-delete-member-expression-private-no-reference.case
+// - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template
+/*---
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in method, recursively covered)
+esid: sec-class-definitions-static-semantics-early-errors
+features: [class, class-fields-private]
+flags: [generated, onlyStrict]
+negative:
+  phase: parse
+  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.#m));
+  }
+
+  
+}
diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-privatename.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-privatename.js
index 4d4678d44050e81019fd2d85f8458fab15ffd233..f0b5048e43d5b3dcf695163ef8f18096a215a0e9 100644
--- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-privatename.js
+++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-privatename.js
@@ -2,9 +2,9 @@
 // - src/class-elements/err-delete-member-expression-privatename.case
 // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template
 /*---
-description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered)
+description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in method, recursively covered)
 esid: sec-class-definitions-static-semantics-early-errors
-features: [class-fields-private, class]
+features: [class, class-fields-private]
 flags: [generated, onlyStrict]
 negative:
   phase: parse