From 9ccf0a822fa8d5856f94843a66efdd02e556fa67 Mon Sep 17 00:00:00 2001
From: Katie Broida <kbroida@gmail.com>
Date: Tue, 14 Aug 2018 15:44:31 -0400
Subject: [PATCH] Generate tests

---
 .../private-accessor-name-inst-computed.js    | 57 +++++++++++++++++++
 ...cessor-name-inst-literal-numeric-binary.js | 55 ++++++++++++++++++
 ...ssor-name-inst-literal-numeric-exponent.js | 55 ++++++++++++++++++
 ...-accessor-name-inst-literal-numeric-hex.js | 55 ++++++++++++++++++
 ...me-inst-literal-numeric-leading-decimal.js | 55 ++++++++++++++++++
 ...name-inst-literal-numeric-non-canonical.js | 55 ++++++++++++++++++
 ...ccessor-name-inst-literal-numeric-octal.js | 55 ++++++++++++++++++
 ...accessor-name-inst-literal-numeric-zero.js | 55 ++++++++++++++++++
 ...or-name-inst-literal-string-char-escape.js | 55 ++++++++++++++++++
 ...r-name-inst-literal-string-double-quote.js | 55 ++++++++++++++++++
 ...accessor-name-inst-literal-string-empty.js | 55 ++++++++++++++++++
 ...sor-name-inst-literal-string-hex-escape.js | 55 ++++++++++++++++++
 ...e-inst-literal-string-line-continuation.js | 57 +++++++++++++++++++
 ...r-name-inst-literal-string-single-quote.js | 55 ++++++++++++++++++
 ...name-inst-literal-string-unicode-escape.js | 55 ++++++++++++++++++
 .../private-accessor-name-static-computed.js  | 56 ++++++++++++++++++
 ...ssor-name-static-literal-numeric-binary.js | 54 ++++++++++++++++++
 ...or-name-static-literal-numeric-exponent.js | 54 ++++++++++++++++++
 ...ccessor-name-static-literal-numeric-hex.js | 54 ++++++++++++++++++
 ...-static-literal-numeric-leading-decimal.js | 54 ++++++++++++++++++
 ...me-static-literal-numeric-non-canonical.js | 54 ++++++++++++++++++
 ...essor-name-static-literal-numeric-octal.js | 54 ++++++++++++++++++
 ...cessor-name-static-literal-numeric-zero.js | 54 ++++++++++++++++++
 ...-name-static-literal-string-char-escape.js | 54 ++++++++++++++++++
 ...name-static-literal-string-double-quote.js | 54 ++++++++++++++++++
 ...cessor-name-static-literal-string-empty.js | 54 ++++++++++++++++++
 ...r-name-static-literal-string-hex-escape.js | 54 ++++++++++++++++++
 ...static-literal-string-line-continuation.js | 56 ++++++++++++++++++
 ...name-static-literal-string-single-quote.js | 54 ++++++++++++++++++
 ...me-static-literal-string-unicode-escape.js | 54 ++++++++++++++++++
 .../private-accessor-name-inst-computed.js    | 57 +++++++++++++++++++
 ...cessor-name-inst-literal-numeric-binary.js | 55 ++++++++++++++++++
 ...ssor-name-inst-literal-numeric-exponent.js | 55 ++++++++++++++++++
 ...-accessor-name-inst-literal-numeric-hex.js | 55 ++++++++++++++++++
 ...me-inst-literal-numeric-leading-decimal.js | 55 ++++++++++++++++++
 ...name-inst-literal-numeric-non-canonical.js | 55 ++++++++++++++++++
 ...ccessor-name-inst-literal-numeric-octal.js | 55 ++++++++++++++++++
 ...accessor-name-inst-literal-numeric-zero.js | 55 ++++++++++++++++++
 ...or-name-inst-literal-string-char-escape.js | 55 ++++++++++++++++++
 ...r-name-inst-literal-string-double-quote.js | 55 ++++++++++++++++++
 ...accessor-name-inst-literal-string-empty.js | 55 ++++++++++++++++++
 ...sor-name-inst-literal-string-hex-escape.js | 55 ++++++++++++++++++
 ...e-inst-literal-string-line-continuation.js | 57 +++++++++++++++++++
 ...r-name-inst-literal-string-single-quote.js | 55 ++++++++++++++++++
 ...name-inst-literal-string-unicode-escape.js | 55 ++++++++++++++++++
 .../private-accessor-name-static-computed.js  | 56 ++++++++++++++++++
 ...ssor-name-static-literal-numeric-binary.js | 54 ++++++++++++++++++
 ...or-name-static-literal-numeric-exponent.js | 54 ++++++++++++++++++
 ...ccessor-name-static-literal-numeric-hex.js | 54 ++++++++++++++++++
 ...-static-literal-numeric-leading-decimal.js | 54 ++++++++++++++++++
 ...me-static-literal-numeric-non-canonical.js | 54 ++++++++++++++++++
 ...essor-name-static-literal-numeric-octal.js | 54 ++++++++++++++++++
 ...cessor-name-static-literal-numeric-zero.js | 54 ++++++++++++++++++
 ...-name-static-literal-string-char-escape.js | 54 ++++++++++++++++++
 ...name-static-literal-string-double-quote.js | 54 ++++++++++++++++++
 ...cessor-name-static-literal-string-empty.js | 54 ++++++++++++++++++
 ...r-name-static-literal-string-hex-escape.js | 54 ++++++++++++++++++
 ...static-literal-string-line-continuation.js | 56 ++++++++++++++++++
 ...name-static-literal-string-single-quote.js | 54 ++++++++++++++++++
 ...me-static-literal-string-unicode-escape.js | 54 ++++++++++++++++++
 60 files changed, 3286 insertions(+)
 create mode 100644 test/language/expressions/class/private-accessor-name-inst-computed.js
 create mode 100644 test/language/expressions/class/private-accessor-name-inst-literal-numeric-binary.js
 create mode 100644 test/language/expressions/class/private-accessor-name-inst-literal-numeric-exponent.js
 create mode 100644 test/language/expressions/class/private-accessor-name-inst-literal-numeric-hex.js
 create mode 100644 test/language/expressions/class/private-accessor-name-inst-literal-numeric-leading-decimal.js
 create mode 100644 test/language/expressions/class/private-accessor-name-inst-literal-numeric-non-canonical.js
 create mode 100644 test/language/expressions/class/private-accessor-name-inst-literal-numeric-octal.js
 create mode 100644 test/language/expressions/class/private-accessor-name-inst-literal-numeric-zero.js
 create mode 100644 test/language/expressions/class/private-accessor-name-inst-literal-string-char-escape.js
 create mode 100644 test/language/expressions/class/private-accessor-name-inst-literal-string-double-quote.js
 create mode 100644 test/language/expressions/class/private-accessor-name-inst-literal-string-empty.js
 create mode 100644 test/language/expressions/class/private-accessor-name-inst-literal-string-hex-escape.js
 create mode 100644 test/language/expressions/class/private-accessor-name-inst-literal-string-line-continuation.js
 create mode 100644 test/language/expressions/class/private-accessor-name-inst-literal-string-single-quote.js
 create mode 100644 test/language/expressions/class/private-accessor-name-inst-literal-string-unicode-escape.js
 create mode 100644 test/language/expressions/class/private-accessor-name-static-computed.js
 create mode 100644 test/language/expressions/class/private-accessor-name-static-literal-numeric-binary.js
 create mode 100644 test/language/expressions/class/private-accessor-name-static-literal-numeric-exponent.js
 create mode 100644 test/language/expressions/class/private-accessor-name-static-literal-numeric-hex.js
 create mode 100644 test/language/expressions/class/private-accessor-name-static-literal-numeric-leading-decimal.js
 create mode 100644 test/language/expressions/class/private-accessor-name-static-literal-numeric-non-canonical.js
 create mode 100644 test/language/expressions/class/private-accessor-name-static-literal-numeric-octal.js
 create mode 100644 test/language/expressions/class/private-accessor-name-static-literal-numeric-zero.js
 create mode 100644 test/language/expressions/class/private-accessor-name-static-literal-string-char-escape.js
 create mode 100644 test/language/expressions/class/private-accessor-name-static-literal-string-double-quote.js
 create mode 100644 test/language/expressions/class/private-accessor-name-static-literal-string-empty.js
 create mode 100644 test/language/expressions/class/private-accessor-name-static-literal-string-hex-escape.js
 create mode 100644 test/language/expressions/class/private-accessor-name-static-literal-string-line-continuation.js
 create mode 100644 test/language/expressions/class/private-accessor-name-static-literal-string-single-quote.js
 create mode 100644 test/language/expressions/class/private-accessor-name-static-literal-string-unicode-escape.js
 create mode 100644 test/language/statements/class/private-accessor-name-inst-computed.js
 create mode 100644 test/language/statements/class/private-accessor-name-inst-literal-numeric-binary.js
 create mode 100644 test/language/statements/class/private-accessor-name-inst-literal-numeric-exponent.js
 create mode 100644 test/language/statements/class/private-accessor-name-inst-literal-numeric-hex.js
 create mode 100644 test/language/statements/class/private-accessor-name-inst-literal-numeric-leading-decimal.js
 create mode 100644 test/language/statements/class/private-accessor-name-inst-literal-numeric-non-canonical.js
 create mode 100644 test/language/statements/class/private-accessor-name-inst-literal-numeric-octal.js
 create mode 100644 test/language/statements/class/private-accessor-name-inst-literal-numeric-zero.js
 create mode 100644 test/language/statements/class/private-accessor-name-inst-literal-string-char-escape.js
 create mode 100644 test/language/statements/class/private-accessor-name-inst-literal-string-double-quote.js
 create mode 100644 test/language/statements/class/private-accessor-name-inst-literal-string-empty.js
 create mode 100644 test/language/statements/class/private-accessor-name-inst-literal-string-hex-escape.js
 create mode 100644 test/language/statements/class/private-accessor-name-inst-literal-string-line-continuation.js
 create mode 100644 test/language/statements/class/private-accessor-name-inst-literal-string-single-quote.js
 create mode 100644 test/language/statements/class/private-accessor-name-inst-literal-string-unicode-escape.js
 create mode 100644 test/language/statements/class/private-accessor-name-static-computed.js
 create mode 100644 test/language/statements/class/private-accessor-name-static-literal-numeric-binary.js
 create mode 100644 test/language/statements/class/private-accessor-name-static-literal-numeric-exponent.js
 create mode 100644 test/language/statements/class/private-accessor-name-static-literal-numeric-hex.js
 create mode 100644 test/language/statements/class/private-accessor-name-static-literal-numeric-leading-decimal.js
 create mode 100644 test/language/statements/class/private-accessor-name-static-literal-numeric-non-canonical.js
 create mode 100644 test/language/statements/class/private-accessor-name-static-literal-numeric-octal.js
 create mode 100644 test/language/statements/class/private-accessor-name-static-literal-numeric-zero.js
 create mode 100644 test/language/statements/class/private-accessor-name-static-literal-string-char-escape.js
 create mode 100644 test/language/statements/class/private-accessor-name-static-literal-string-double-quote.js
 create mode 100644 test/language/statements/class/private-accessor-name-static-literal-string-empty.js
 create mode 100644 test/language/statements/class/private-accessor-name-static-literal-string-hex-escape.js
 create mode 100644 test/language/statements/class/private-accessor-name-static-literal-string-line-continuation.js
 create mode 100644 test/language/statements/class/private-accessor-name-static-literal-string-single-quote.js
 create mode 100644 test/language/statements/class/private-accessor-name-static-literal-string-unicode-escape.js

diff --git a/test/language/expressions/class/private-accessor-name-inst-computed.js b/test/language/expressions/class/private-accessor-name-inst-computed.js
new file mode 100644
index 0000000000..047c43379f
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-inst-computed.js
@@ -0,0 +1,57 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/computed.case
+// - src/accessor-names/default/cls-private-expr-inst.template
+/*---
+description: Computed values as accessor property names (AssignmentExpression) (Class expression, instance private method)
+flags: [generated]
+info: |
+    [...]
+      MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+var _;
+
+
+var stringSet;
+
+var C = class {
+  get #[_ = 'str' + 'ing']() { return 'get string'; }
+  set #[_ = 'str' + 'ing'](param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'string';
+  }
+
+  setPrivateReference(value) {
+    this.#'string' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-inst-literal-numeric-binary.js b/test/language/expressions/class/private-accessor-name-inst-literal-numeric-binary.js
new file mode 100644
index 0000000000..a496ace6de
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-inst-literal-numeric-binary.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-binary.case
+// - src/accessor-names/default/cls-private-expr-inst.template
+/*---
+description: Computed values as accessor property names (numeric literal in binary notation) (Class expression, instance private method)
+flags: [generated]
+info: |
+    [...]
+      MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  get #0b10() { return 'get string'; }
+  set #0b10(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'2';
+  }
+
+  setPrivateReference(value) {
+    this.#'2' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-inst-literal-numeric-exponent.js b/test/language/expressions/class/private-accessor-name-inst-literal-numeric-exponent.js
new file mode 100644
index 0000000000..6146216b64
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-inst-literal-numeric-exponent.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-exponent.case
+// - src/accessor-names/default/cls-private-expr-inst.template
+/*---
+description: Computed values as accessor property names (numeric literal in exponent notation) (Class expression, instance private method)
+flags: [generated]
+info: |
+    [...]
+      MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  get #1E+9() { return 'get string'; }
+  set #1E+9(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'1000000000';
+  }
+
+  setPrivateReference(value) {
+    this.#'1000000000' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-inst-literal-numeric-hex.js b/test/language/expressions/class/private-accessor-name-inst-literal-numeric-hex.js
new file mode 100644
index 0000000000..e050cb43be
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-inst-literal-numeric-hex.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-hex.case
+// - src/accessor-names/default/cls-private-expr-inst.template
+/*---
+description: Computed values as accessor property names (numeric literal in hexadecimal notation) (Class expression, instance private method)
+flags: [generated]
+info: |
+    [...]
+      MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  get #0x10() { return 'get string'; }
+  set #0x10(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'16';
+  }
+
+  setPrivateReference(value) {
+    this.#'16' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-inst-literal-numeric-leading-decimal.js b/test/language/expressions/class/private-accessor-name-inst-literal-numeric-leading-decimal.js
new file mode 100644
index 0000000000..2f7f6d3673
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-inst-literal-numeric-leading-decimal.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-leading-decimal.case
+// - src/accessor-names/default/cls-private-expr-inst.template
+/*---
+description: Computed values as accessor property names (numeric literal with leading decimal point) (Class expression, instance private method)
+flags: [generated]
+info: |
+    [...]
+      MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  get #.1() { return 'get string'; }
+  set #.1(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'0.1';
+  }
+
+  setPrivateReference(value) {
+    this.#'0.1' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-inst-literal-numeric-non-canonical.js b/test/language/expressions/class/private-accessor-name-inst-literal-numeric-non-canonical.js
new file mode 100644
index 0000000000..132610dfab
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-inst-literal-numeric-non-canonical.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-non-canonical.case
+// - src/accessor-names/default/cls-private-expr-inst.template
+/*---
+description: Computed values as accessor property names (numeric literal with non-canonical representation) (Class expression, instance private method)
+flags: [generated]
+info: |
+    [...]
+      MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  get #0.0000001() { return 'get string'; }
+  set #0.0000001(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'1e-7';
+  }
+
+  setPrivateReference(value) {
+    this.#'1e-7' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-inst-literal-numeric-octal.js b/test/language/expressions/class/private-accessor-name-inst-literal-numeric-octal.js
new file mode 100644
index 0000000000..f596661f23
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-inst-literal-numeric-octal.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-octal.case
+// - src/accessor-names/default/cls-private-expr-inst.template
+/*---
+description: Computed values as accessor property names (numeric literal in octal notation) (Class expression, instance private method)
+flags: [generated]
+info: |
+    [...]
+      MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  get #0o10() { return 'get string'; }
+  set #0o10(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'8';
+  }
+
+  setPrivateReference(value) {
+    this.#'8' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-inst-literal-numeric-zero.js b/test/language/expressions/class/private-accessor-name-inst-literal-numeric-zero.js
new file mode 100644
index 0000000000..c2bf877474
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-inst-literal-numeric-zero.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-zero.case
+// - src/accessor-names/default/cls-private-expr-inst.template
+/*---
+description: Computed values as accessor property names (numeric literal zero) (Class expression, instance private method)
+flags: [generated]
+info: |
+    [...]
+      MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  get #0() { return 'get string'; }
+  set #0(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'0';
+  }
+
+  setPrivateReference(value) {
+    this.#'0' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-inst-literal-string-char-escape.js b/test/language/expressions/class/private-accessor-name-inst-literal-string-char-escape.js
new file mode 100644
index 0000000000..41f8837ee1
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-inst-literal-string-char-escape.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-char-escape.case
+// - src/accessor-names/default/cls-private-expr-inst.template
+/*---
+description: Computed values as accessor property names (string literal containing a character escape sequence) (Class expression, instance private method)
+flags: [generated]
+info: |
+    [...]
+      MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  get #'character\tescape'() { return 'get string'; }
+  set #'character\tescape'(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'character	escape';
+  }
+
+  setPrivateReference(value) {
+    this.#'character	escape' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-inst-literal-string-double-quote.js b/test/language/expressions/class/private-accessor-name-inst-literal-string-double-quote.js
new file mode 100644
index 0000000000..78fe6d4411
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-inst-literal-string-double-quote.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-double-quote.case
+// - src/accessor-names/default/cls-private-expr-inst.template
+/*---
+description: Computed values as accessor property names (string literal using double quotes) (Class expression, instance private method)
+flags: [generated]
+info: |
+    [...]
+      MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  get #"doubleQuote"() { return 'get string'; }
+  set #"doubleQuote"(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#"doubleQuote";
+  }
+
+  setPrivateReference(value) {
+    this.#"doubleQuote" = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-inst-literal-string-empty.js b/test/language/expressions/class/private-accessor-name-inst-literal-string-empty.js
new file mode 100644
index 0000000000..ce8a38e085
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-inst-literal-string-empty.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-empty.case
+// - src/accessor-names/default/cls-private-expr-inst.template
+/*---
+description: Computed values as accessor property names (string literal, the empty string) (Class expression, instance private method)
+flags: [generated]
+info: |
+    [...]
+      MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  get #''() { return 'get string'; }
+  set #''(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'';
+  }
+
+  setPrivateReference(value) {
+    this.#'' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-inst-literal-string-hex-escape.js b/test/language/expressions/class/private-accessor-name-inst-literal-string-hex-escape.js
new file mode 100644
index 0000000000..511fb13614
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-inst-literal-string-hex-escape.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-hex-escape.case
+// - src/accessor-names/default/cls-private-expr-inst.template
+/*---
+description: Computed values as accessor property names (string literal containing a hexadecimal escape sequence) (Class expression, instance private method)
+flags: [generated]
+info: |
+    [...]
+      MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  get #'hex\x45scape'() { return 'get string'; }
+  set #'hex\x45scape'(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'hexEscape';
+  }
+
+  setPrivateReference(value) {
+    this.#'hexEscape' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-inst-literal-string-line-continuation.js b/test/language/expressions/class/private-accessor-name-inst-literal-string-line-continuation.js
new file mode 100644
index 0000000000..a0986b5d6e
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-inst-literal-string-line-continuation.js
@@ -0,0 +1,57 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-line-continuation.case
+// - src/accessor-names/default/cls-private-expr-inst.template
+/*---
+description: Computed values as accessor property names (string literal containing LineContinuation) (Class expression, instance private method)
+flags: [generated]
+info: |
+    [...]
+      MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  get #'line\
+Continuation'() { return 'get string'; }
+  set #'line\
+Continuation'(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'lineContinuation';
+  }
+
+  setPrivateReference(value) {
+    this.#'lineContinuation' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-inst-literal-string-single-quote.js b/test/language/expressions/class/private-accessor-name-inst-literal-string-single-quote.js
new file mode 100644
index 0000000000..9f8c958ded
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-inst-literal-string-single-quote.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-single-quote.case
+// - src/accessor-names/default/cls-private-expr-inst.template
+/*---
+description: Computed values as accessor property names (string literal using single quotes) (Class expression, instance private method)
+flags: [generated]
+info: |
+    [...]
+      MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  get #'singleQuote'() { return 'get string'; }
+  set #'singleQuote'(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'singleQuote';
+  }
+
+  setPrivateReference(value) {
+    this.#'singleQuote' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-inst-literal-string-unicode-escape.js b/test/language/expressions/class/private-accessor-name-inst-literal-string-unicode-escape.js
new file mode 100644
index 0000000000..cae2c6f4c1
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-inst-literal-string-unicode-escape.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-unicode-escape.case
+// - src/accessor-names/default/cls-private-expr-inst.template
+/*---
+description: Computed values as accessor property names (string literal containing a Unicode escape sequence) (Class expression, instance private method)
+flags: [generated]
+info: |
+    [...]
+      MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  get #'unicod\u{000065}Escape'() { return 'get string'; }
+  set #'unicod\u{000065}Escape'(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'unicodeEscape';
+  }
+
+  setPrivateReference(value) {
+    this.#'unicodeEscape' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-static-computed.js b/test/language/expressions/class/private-accessor-name-static-computed.js
new file mode 100644
index 0000000000..a5785dd034
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-static-computed.js
@@ -0,0 +1,56 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/computed.case
+// - src/accessor-names/default/cls-private-expr-static.template
+/*---
+description: Computed values as accessor property names (AssignmentExpression) (Class expression, static private method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] ( 
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+var _;
+
+
+var stringSet;
+
+var C = class {
+  static get #[_ = 'str' + 'ing']() { return 'get string'; }
+  static set #[_ = 'str' + 'ing'](param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'string';
+  }
+
+  static setPrivateReference(value) {
+    this.#'string' = value;
+  }
+};
+
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-static-literal-numeric-binary.js b/test/language/expressions/class/private-accessor-name-static-literal-numeric-binary.js
new file mode 100644
index 0000000000..605f84fec4
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-static-literal-numeric-binary.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-binary.case
+// - src/accessor-names/default/cls-private-expr-static.template
+/*---
+description: Computed values as accessor property names (numeric literal in binary notation) (Class expression, static private method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] ( 
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  static get #0b10() { return 'get string'; }
+  static set #0b10(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'2';
+  }
+
+  static setPrivateReference(value) {
+    this.#'2' = value;
+  }
+};
+
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-static-literal-numeric-exponent.js b/test/language/expressions/class/private-accessor-name-static-literal-numeric-exponent.js
new file mode 100644
index 0000000000..eae37f8a90
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-static-literal-numeric-exponent.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-exponent.case
+// - src/accessor-names/default/cls-private-expr-static.template
+/*---
+description: Computed values as accessor property names (numeric literal in exponent notation) (Class expression, static private method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] ( 
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  static get #1E+9() { return 'get string'; }
+  static set #1E+9(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'1000000000';
+  }
+
+  static setPrivateReference(value) {
+    this.#'1000000000' = value;
+  }
+};
+
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-static-literal-numeric-hex.js b/test/language/expressions/class/private-accessor-name-static-literal-numeric-hex.js
new file mode 100644
index 0000000000..d065233f7b
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-static-literal-numeric-hex.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-hex.case
+// - src/accessor-names/default/cls-private-expr-static.template
+/*---
+description: Computed values as accessor property names (numeric literal in hexadecimal notation) (Class expression, static private method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] ( 
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  static get #0x10() { return 'get string'; }
+  static set #0x10(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'16';
+  }
+
+  static setPrivateReference(value) {
+    this.#'16' = value;
+  }
+};
+
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-static-literal-numeric-leading-decimal.js b/test/language/expressions/class/private-accessor-name-static-literal-numeric-leading-decimal.js
new file mode 100644
index 0000000000..4c4323baf1
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-static-literal-numeric-leading-decimal.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-leading-decimal.case
+// - src/accessor-names/default/cls-private-expr-static.template
+/*---
+description: Computed values as accessor property names (numeric literal with leading decimal point) (Class expression, static private method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] ( 
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  static get #.1() { return 'get string'; }
+  static set #.1(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'0.1';
+  }
+
+  static setPrivateReference(value) {
+    this.#'0.1' = value;
+  }
+};
+
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-static-literal-numeric-non-canonical.js b/test/language/expressions/class/private-accessor-name-static-literal-numeric-non-canonical.js
new file mode 100644
index 0000000000..3900a516a7
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-static-literal-numeric-non-canonical.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-non-canonical.case
+// - src/accessor-names/default/cls-private-expr-static.template
+/*---
+description: Computed values as accessor property names (numeric literal with non-canonical representation) (Class expression, static private method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] ( 
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  static get #0.0000001() { return 'get string'; }
+  static set #0.0000001(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'1e-7';
+  }
+
+  static setPrivateReference(value) {
+    this.#'1e-7' = value;
+  }
+};
+
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-static-literal-numeric-octal.js b/test/language/expressions/class/private-accessor-name-static-literal-numeric-octal.js
new file mode 100644
index 0000000000..2eac03f682
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-static-literal-numeric-octal.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-octal.case
+// - src/accessor-names/default/cls-private-expr-static.template
+/*---
+description: Computed values as accessor property names (numeric literal in octal notation) (Class expression, static private method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] ( 
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  static get #0o10() { return 'get string'; }
+  static set #0o10(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'8';
+  }
+
+  static setPrivateReference(value) {
+    this.#'8' = value;
+  }
+};
+
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-static-literal-numeric-zero.js b/test/language/expressions/class/private-accessor-name-static-literal-numeric-zero.js
new file mode 100644
index 0000000000..1f998ccc98
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-static-literal-numeric-zero.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-zero.case
+// - src/accessor-names/default/cls-private-expr-static.template
+/*---
+description: Computed values as accessor property names (numeric literal zero) (Class expression, static private method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] ( 
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  static get #0() { return 'get string'; }
+  static set #0(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'0';
+  }
+
+  static setPrivateReference(value) {
+    this.#'0' = value;
+  }
+};
+
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-static-literal-string-char-escape.js b/test/language/expressions/class/private-accessor-name-static-literal-string-char-escape.js
new file mode 100644
index 0000000000..f4e5ed9011
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-static-literal-string-char-escape.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-char-escape.case
+// - src/accessor-names/default/cls-private-expr-static.template
+/*---
+description: Computed values as accessor property names (string literal containing a character escape sequence) (Class expression, static private method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] ( 
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  static get #'character\tescape'() { return 'get string'; }
+  static set #'character\tescape'(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'character	escape';
+  }
+
+  static setPrivateReference(value) {
+    this.#'character	escape' = value;
+  }
+};
+
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-static-literal-string-double-quote.js b/test/language/expressions/class/private-accessor-name-static-literal-string-double-quote.js
new file mode 100644
index 0000000000..bc4e2ada3f
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-static-literal-string-double-quote.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-double-quote.case
+// - src/accessor-names/default/cls-private-expr-static.template
+/*---
+description: Computed values as accessor property names (string literal using double quotes) (Class expression, static private method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] ( 
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  static get #"doubleQuote"() { return 'get string'; }
+  static set #"doubleQuote"(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#"doubleQuote";
+  }
+
+  static setPrivateReference(value) {
+    this.#"doubleQuote" = value;
+  }
+};
+
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-static-literal-string-empty.js b/test/language/expressions/class/private-accessor-name-static-literal-string-empty.js
new file mode 100644
index 0000000000..7f01c1f53a
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-static-literal-string-empty.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-empty.case
+// - src/accessor-names/default/cls-private-expr-static.template
+/*---
+description: Computed values as accessor property names (string literal, the empty string) (Class expression, static private method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] ( 
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  static get #''() { return 'get string'; }
+  static set #''(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'';
+  }
+
+  static setPrivateReference(value) {
+    this.#'' = value;
+  }
+};
+
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-static-literal-string-hex-escape.js b/test/language/expressions/class/private-accessor-name-static-literal-string-hex-escape.js
new file mode 100644
index 0000000000..1f05c8192f
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-static-literal-string-hex-escape.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-hex-escape.case
+// - src/accessor-names/default/cls-private-expr-static.template
+/*---
+description: Computed values as accessor property names (string literal containing a hexadecimal escape sequence) (Class expression, static private method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] ( 
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  static get #'hex\x45scape'() { return 'get string'; }
+  static set #'hex\x45scape'(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'hexEscape';
+  }
+
+  static setPrivateReference(value) {
+    this.#'hexEscape' = value;
+  }
+};
+
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-static-literal-string-line-continuation.js b/test/language/expressions/class/private-accessor-name-static-literal-string-line-continuation.js
new file mode 100644
index 0000000000..529c685268
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-static-literal-string-line-continuation.js
@@ -0,0 +1,56 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-line-continuation.case
+// - src/accessor-names/default/cls-private-expr-static.template
+/*---
+description: Computed values as accessor property names (string literal containing LineContinuation) (Class expression, static private method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] ( 
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  static get #'line\
+Continuation'() { return 'get string'; }
+  static set #'line\
+Continuation'(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'lineContinuation';
+  }
+
+  static setPrivateReference(value) {
+    this.#'lineContinuation' = value;
+  }
+};
+
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-static-literal-string-single-quote.js b/test/language/expressions/class/private-accessor-name-static-literal-string-single-quote.js
new file mode 100644
index 0000000000..a6eed4e540
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-static-literal-string-single-quote.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-single-quote.case
+// - src/accessor-names/default/cls-private-expr-static.template
+/*---
+description: Computed values as accessor property names (string literal using single quotes) (Class expression, static private method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] ( 
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  static get #'singleQuote'() { return 'get string'; }
+  static set #'singleQuote'(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'singleQuote';
+  }
+
+  static setPrivateReference(value) {
+    this.#'singleQuote' = value;
+  }
+};
+
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/expressions/class/private-accessor-name-static-literal-string-unicode-escape.js b/test/language/expressions/class/private-accessor-name-static-literal-string-unicode-escape.js
new file mode 100644
index 0000000000..ca79684757
--- /dev/null
+++ b/test/language/expressions/class/private-accessor-name-static-literal-string-unicode-escape.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-unicode-escape.case
+// - src/accessor-names/default/cls-private-expr-static.template
+/*---
+description: Computed values as accessor property names (string literal containing a Unicode escape sequence) (Class expression, static private method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] ( 
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+var C = class {
+  static get #'unicod\u{000065}Escape'() { return 'get string'; }
+  static set #'unicod\u{000065}Escape'(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'unicodeEscape';
+  }
+
+  static setPrivateReference(value) {
+    this.#'unicodeEscape' = value;
+  }
+};
+
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/statements/class/private-accessor-name-inst-computed.js b/test/language/statements/class/private-accessor-name-inst-computed.js
new file mode 100644
index 0000000000..8a05c51118
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-inst-computed.js
@@ -0,0 +1,57 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/computed.case
+// - src/accessor-names/default/cls-private-decl-inst.template
+/*---
+description: Computed values as accessor property names (AssignmentExpression) (Class declaration, private instance method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+var _;
+
+
+var stringSet;
+
+class C {
+  get #[_ = 'str' + 'ing']() { return 'get string'; }
+  set #[_ = 'str' + 'ing'](param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'string';
+  }
+
+  setPrivateReference(value) {
+    this.#'string' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/statements/class/private-accessor-name-inst-literal-numeric-binary.js b/test/language/statements/class/private-accessor-name-inst-literal-numeric-binary.js
new file mode 100644
index 0000000000..97262ec65f
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-inst-literal-numeric-binary.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-binary.case
+// - src/accessor-names/default/cls-private-decl-inst.template
+/*---
+description: Computed values as accessor property names (numeric literal in binary notation) (Class declaration, private instance method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  get #0b10() { return 'get string'; }
+  set #0b10(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'2';
+  }
+
+  setPrivateReference(value) {
+    this.#'2' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/statements/class/private-accessor-name-inst-literal-numeric-exponent.js b/test/language/statements/class/private-accessor-name-inst-literal-numeric-exponent.js
new file mode 100644
index 0000000000..5865c87e21
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-inst-literal-numeric-exponent.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-exponent.case
+// - src/accessor-names/default/cls-private-decl-inst.template
+/*---
+description: Computed values as accessor property names (numeric literal in exponent notation) (Class declaration, private instance method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  get #1E+9() { return 'get string'; }
+  set #1E+9(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'1000000000';
+  }
+
+  setPrivateReference(value) {
+    this.#'1000000000' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/statements/class/private-accessor-name-inst-literal-numeric-hex.js b/test/language/statements/class/private-accessor-name-inst-literal-numeric-hex.js
new file mode 100644
index 0000000000..6f63591d09
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-inst-literal-numeric-hex.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-hex.case
+// - src/accessor-names/default/cls-private-decl-inst.template
+/*---
+description: Computed values as accessor property names (numeric literal in hexadecimal notation) (Class declaration, private instance method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  get #0x10() { return 'get string'; }
+  set #0x10(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'16';
+  }
+
+  setPrivateReference(value) {
+    this.#'16' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/statements/class/private-accessor-name-inst-literal-numeric-leading-decimal.js b/test/language/statements/class/private-accessor-name-inst-literal-numeric-leading-decimal.js
new file mode 100644
index 0000000000..89f2753d7c
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-inst-literal-numeric-leading-decimal.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-leading-decimal.case
+// - src/accessor-names/default/cls-private-decl-inst.template
+/*---
+description: Computed values as accessor property names (numeric literal with leading decimal point) (Class declaration, private instance method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  get #.1() { return 'get string'; }
+  set #.1(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'0.1';
+  }
+
+  setPrivateReference(value) {
+    this.#'0.1' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/statements/class/private-accessor-name-inst-literal-numeric-non-canonical.js b/test/language/statements/class/private-accessor-name-inst-literal-numeric-non-canonical.js
new file mode 100644
index 0000000000..f6c02364fe
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-inst-literal-numeric-non-canonical.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-non-canonical.case
+// - src/accessor-names/default/cls-private-decl-inst.template
+/*---
+description: Computed values as accessor property names (numeric literal with non-canonical representation) (Class declaration, private instance method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  get #0.0000001() { return 'get string'; }
+  set #0.0000001(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'1e-7';
+  }
+
+  setPrivateReference(value) {
+    this.#'1e-7' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/statements/class/private-accessor-name-inst-literal-numeric-octal.js b/test/language/statements/class/private-accessor-name-inst-literal-numeric-octal.js
new file mode 100644
index 0000000000..52e4806c1d
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-inst-literal-numeric-octal.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-octal.case
+// - src/accessor-names/default/cls-private-decl-inst.template
+/*---
+description: Computed values as accessor property names (numeric literal in octal notation) (Class declaration, private instance method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  get #0o10() { return 'get string'; }
+  set #0o10(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'8';
+  }
+
+  setPrivateReference(value) {
+    this.#'8' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/statements/class/private-accessor-name-inst-literal-numeric-zero.js b/test/language/statements/class/private-accessor-name-inst-literal-numeric-zero.js
new file mode 100644
index 0000000000..7bfd4fef8c
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-inst-literal-numeric-zero.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-zero.case
+// - src/accessor-names/default/cls-private-decl-inst.template
+/*---
+description: Computed values as accessor property names (numeric literal zero) (Class declaration, private instance method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  get #0() { return 'get string'; }
+  set #0(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'0';
+  }
+
+  setPrivateReference(value) {
+    this.#'0' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/statements/class/private-accessor-name-inst-literal-string-char-escape.js b/test/language/statements/class/private-accessor-name-inst-literal-string-char-escape.js
new file mode 100644
index 0000000000..e4a810139a
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-inst-literal-string-char-escape.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-char-escape.case
+// - src/accessor-names/default/cls-private-decl-inst.template
+/*---
+description: Computed values as accessor property names (string literal containing a character escape sequence) (Class declaration, private instance method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  get #'character\tescape'() { return 'get string'; }
+  set #'character\tescape'(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'character	escape';
+  }
+
+  setPrivateReference(value) {
+    this.#'character	escape' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/statements/class/private-accessor-name-inst-literal-string-double-quote.js b/test/language/statements/class/private-accessor-name-inst-literal-string-double-quote.js
new file mode 100644
index 0000000000..f1cf39b1e7
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-inst-literal-string-double-quote.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-double-quote.case
+// - src/accessor-names/default/cls-private-decl-inst.template
+/*---
+description: Computed values as accessor property names (string literal using double quotes) (Class declaration, private instance method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  get #"doubleQuote"() { return 'get string'; }
+  set #"doubleQuote"(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#"doubleQuote";
+  }
+
+  setPrivateReference(value) {
+    this.#"doubleQuote" = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/statements/class/private-accessor-name-inst-literal-string-empty.js b/test/language/statements/class/private-accessor-name-inst-literal-string-empty.js
new file mode 100644
index 0000000000..53e5ab0f01
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-inst-literal-string-empty.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-empty.case
+// - src/accessor-names/default/cls-private-decl-inst.template
+/*---
+description: Computed values as accessor property names (string literal, the empty string) (Class declaration, private instance method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  get #''() { return 'get string'; }
+  set #''(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'';
+  }
+
+  setPrivateReference(value) {
+    this.#'' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/statements/class/private-accessor-name-inst-literal-string-hex-escape.js b/test/language/statements/class/private-accessor-name-inst-literal-string-hex-escape.js
new file mode 100644
index 0000000000..dc7644731b
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-inst-literal-string-hex-escape.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-hex-escape.case
+// - src/accessor-names/default/cls-private-decl-inst.template
+/*---
+description: Computed values as accessor property names (string literal containing a hexadecimal escape sequence) (Class declaration, private instance method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  get #'hex\x45scape'() { return 'get string'; }
+  set #'hex\x45scape'(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'hexEscape';
+  }
+
+  setPrivateReference(value) {
+    this.#'hexEscape' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/statements/class/private-accessor-name-inst-literal-string-line-continuation.js b/test/language/statements/class/private-accessor-name-inst-literal-string-line-continuation.js
new file mode 100644
index 0000000000..0b912b14f7
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-inst-literal-string-line-continuation.js
@@ -0,0 +1,57 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-line-continuation.case
+// - src/accessor-names/default/cls-private-decl-inst.template
+/*---
+description: Computed values as accessor property names (string literal containing LineContinuation) (Class declaration, private instance method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  get #'line\
+Continuation'() { return 'get string'; }
+  set #'line\
+Continuation'(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'lineContinuation';
+  }
+
+  setPrivateReference(value) {
+    this.#'lineContinuation' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/statements/class/private-accessor-name-inst-literal-string-single-quote.js b/test/language/statements/class/private-accessor-name-inst-literal-string-single-quote.js
new file mode 100644
index 0000000000..bb777f094a
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-inst-literal-string-single-quote.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-single-quote.case
+// - src/accessor-names/default/cls-private-decl-inst.template
+/*---
+description: Computed values as accessor property names (string literal using single quotes) (Class declaration, private instance method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  get #'singleQuote'() { return 'get string'; }
+  set #'singleQuote'(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'singleQuote';
+  }
+
+  setPrivateReference(value) {
+    this.#'singleQuote' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/statements/class/private-accessor-name-inst-literal-string-unicode-escape.js b/test/language/statements/class/private-accessor-name-inst-literal-string-unicode-escape.js
new file mode 100644
index 0000000000..85a86c060c
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-inst-literal-string-unicode-escape.js
@@ -0,0 +1,55 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-unicode-escape.case
+// - src/accessor-names/default/cls-private-decl-inst.template
+/*---
+description: Computed values as accessor property names (string literal containing a Unicode escape sequence) (Class declaration, private instance method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  get #'unicod\u{000065}Escape'() { return 'get string'; }
+  set #'unicod\u{000065}Escape'(param) { stringSet = param; }
+
+  getPrivateReference() {
+    return this.#'unicodeEscape';
+  }
+
+  setPrivateReference(value) {
+    this.#'unicodeEscape' = value;
+  }
+};
+
+var inst = C();
+
+assert.sameValue(inst.getPrivateReference(), 'get string');
+
+inst.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
diff --git a/test/language/statements/class/private-accessor-name-static-computed.js b/test/language/statements/class/private-accessor-name-static-computed.js
new file mode 100644
index 0000000000..cc1ee76271
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-static-computed.js
@@ -0,0 +1,56 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/computed.case
+// - src/accessor-names/default/cls-private-decl-static.template
+/*---
+description: Computed values as accessor property names (AssignmentExpression) (Class declaration, static method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+var _;
+
+
+var stringSet;
+
+class C {
+  static get #[_ = 'str' + 'ing']() { return 'get string'; }
+  static set #[_ = 'str' + 'ing'](param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'string';
+  }
+
+  static setPrivateReference(value) {
+    this.#'string' = value;
+  }
+}
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
+
diff --git a/test/language/statements/class/private-accessor-name-static-literal-numeric-binary.js b/test/language/statements/class/private-accessor-name-static-literal-numeric-binary.js
new file mode 100644
index 0000000000..73ec719709
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-static-literal-numeric-binary.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-binary.case
+// - src/accessor-names/default/cls-private-decl-static.template
+/*---
+description: Computed values as accessor property names (numeric literal in binary notation) (Class declaration, static method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  static get #0b10() { return 'get string'; }
+  static set #0b10(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'2';
+  }
+
+  static setPrivateReference(value) {
+    this.#'2' = value;
+  }
+}
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
+
diff --git a/test/language/statements/class/private-accessor-name-static-literal-numeric-exponent.js b/test/language/statements/class/private-accessor-name-static-literal-numeric-exponent.js
new file mode 100644
index 0000000000..da00fbd9b7
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-static-literal-numeric-exponent.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-exponent.case
+// - src/accessor-names/default/cls-private-decl-static.template
+/*---
+description: Computed values as accessor property names (numeric literal in exponent notation) (Class declaration, static method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  static get #1E+9() { return 'get string'; }
+  static set #1E+9(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'1000000000';
+  }
+
+  static setPrivateReference(value) {
+    this.#'1000000000' = value;
+  }
+}
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
+
diff --git a/test/language/statements/class/private-accessor-name-static-literal-numeric-hex.js b/test/language/statements/class/private-accessor-name-static-literal-numeric-hex.js
new file mode 100644
index 0000000000..0ded49ec41
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-static-literal-numeric-hex.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-hex.case
+// - src/accessor-names/default/cls-private-decl-static.template
+/*---
+description: Computed values as accessor property names (numeric literal in hexadecimal notation) (Class declaration, static method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  static get #0x10() { return 'get string'; }
+  static set #0x10(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'16';
+  }
+
+  static setPrivateReference(value) {
+    this.#'16' = value;
+  }
+}
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
+
diff --git a/test/language/statements/class/private-accessor-name-static-literal-numeric-leading-decimal.js b/test/language/statements/class/private-accessor-name-static-literal-numeric-leading-decimal.js
new file mode 100644
index 0000000000..75f8fe5611
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-static-literal-numeric-leading-decimal.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-leading-decimal.case
+// - src/accessor-names/default/cls-private-decl-static.template
+/*---
+description: Computed values as accessor property names (numeric literal with leading decimal point) (Class declaration, static method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  static get #.1() { return 'get string'; }
+  static set #.1(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'0.1';
+  }
+
+  static setPrivateReference(value) {
+    this.#'0.1' = value;
+  }
+}
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
+
diff --git a/test/language/statements/class/private-accessor-name-static-literal-numeric-non-canonical.js b/test/language/statements/class/private-accessor-name-static-literal-numeric-non-canonical.js
new file mode 100644
index 0000000000..875f44d79a
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-static-literal-numeric-non-canonical.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-non-canonical.case
+// - src/accessor-names/default/cls-private-decl-static.template
+/*---
+description: Computed values as accessor property names (numeric literal with non-canonical representation) (Class declaration, static method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  static get #0.0000001() { return 'get string'; }
+  static set #0.0000001(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'1e-7';
+  }
+
+  static setPrivateReference(value) {
+    this.#'1e-7' = value;
+  }
+}
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
+
diff --git a/test/language/statements/class/private-accessor-name-static-literal-numeric-octal.js b/test/language/statements/class/private-accessor-name-static-literal-numeric-octal.js
new file mode 100644
index 0000000000..6cb02d8529
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-static-literal-numeric-octal.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-octal.case
+// - src/accessor-names/default/cls-private-decl-static.template
+/*---
+description: Computed values as accessor property names (numeric literal in octal notation) (Class declaration, static method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  static get #0o10() { return 'get string'; }
+  static set #0o10(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'8';
+  }
+
+  static setPrivateReference(value) {
+    this.#'8' = value;
+  }
+}
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
+
diff --git a/test/language/statements/class/private-accessor-name-static-literal-numeric-zero.js b/test/language/statements/class/private-accessor-name-static-literal-numeric-zero.js
new file mode 100644
index 0000000000..de6eef3f9b
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-static-literal-numeric-zero.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-numeric-zero.case
+// - src/accessor-names/default/cls-private-decl-static.template
+/*---
+description: Computed values as accessor property names (numeric literal zero) (Class declaration, static method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  static get #0() { return 'get string'; }
+  static set #0(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'0';
+  }
+
+  static setPrivateReference(value) {
+    this.#'0' = value;
+  }
+}
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
+
diff --git a/test/language/statements/class/private-accessor-name-static-literal-string-char-escape.js b/test/language/statements/class/private-accessor-name-static-literal-string-char-escape.js
new file mode 100644
index 0000000000..9b06eeb7bc
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-static-literal-string-char-escape.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-char-escape.case
+// - src/accessor-names/default/cls-private-decl-static.template
+/*---
+description: Computed values as accessor property names (string literal containing a character escape sequence) (Class declaration, static method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  static get #'character\tescape'() { return 'get string'; }
+  static set #'character\tescape'(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'character	escape';
+  }
+
+  static setPrivateReference(value) {
+    this.#'character	escape' = value;
+  }
+}
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
+
diff --git a/test/language/statements/class/private-accessor-name-static-literal-string-double-quote.js b/test/language/statements/class/private-accessor-name-static-literal-string-double-quote.js
new file mode 100644
index 0000000000..adb81a73b2
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-static-literal-string-double-quote.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-double-quote.case
+// - src/accessor-names/default/cls-private-decl-static.template
+/*---
+description: Computed values as accessor property names (string literal using double quotes) (Class declaration, static method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  static get #"doubleQuote"() { return 'get string'; }
+  static set #"doubleQuote"(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#"doubleQuote";
+  }
+
+  static setPrivateReference(value) {
+    this.#"doubleQuote" = value;
+  }
+}
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
+
diff --git a/test/language/statements/class/private-accessor-name-static-literal-string-empty.js b/test/language/statements/class/private-accessor-name-static-literal-string-empty.js
new file mode 100644
index 0000000000..2266bb5ef5
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-static-literal-string-empty.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-empty.case
+// - src/accessor-names/default/cls-private-decl-static.template
+/*---
+description: Computed values as accessor property names (string literal, the empty string) (Class declaration, static method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  static get #''() { return 'get string'; }
+  static set #''(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'';
+  }
+
+  static setPrivateReference(value) {
+    this.#'' = value;
+  }
+}
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
+
diff --git a/test/language/statements/class/private-accessor-name-static-literal-string-hex-escape.js b/test/language/statements/class/private-accessor-name-static-literal-string-hex-escape.js
new file mode 100644
index 0000000000..43c38a57a9
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-static-literal-string-hex-escape.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-hex-escape.case
+// - src/accessor-names/default/cls-private-decl-static.template
+/*---
+description: Computed values as accessor property names (string literal containing a hexadecimal escape sequence) (Class declaration, static method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  static get #'hex\x45scape'() { return 'get string'; }
+  static set #'hex\x45scape'(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'hexEscape';
+  }
+
+  static setPrivateReference(value) {
+    this.#'hexEscape' = value;
+  }
+}
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
+
diff --git a/test/language/statements/class/private-accessor-name-static-literal-string-line-continuation.js b/test/language/statements/class/private-accessor-name-static-literal-string-line-continuation.js
new file mode 100644
index 0000000000..3bf84cfe6e
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-static-literal-string-line-continuation.js
@@ -0,0 +1,56 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-line-continuation.case
+// - src/accessor-names/default/cls-private-decl-static.template
+/*---
+description: Computed values as accessor property names (string literal containing LineContinuation) (Class declaration, static method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  static get #'line\
+Continuation'() { return 'get string'; }
+  static set #'line\
+Continuation'(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'lineContinuation';
+  }
+
+  static setPrivateReference(value) {
+    this.#'lineContinuation' = value;
+  }
+}
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
+
diff --git a/test/language/statements/class/private-accessor-name-static-literal-string-single-quote.js b/test/language/statements/class/private-accessor-name-static-literal-string-single-quote.js
new file mode 100644
index 0000000000..e0d83ed6ad
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-static-literal-string-single-quote.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-single-quote.case
+// - src/accessor-names/default/cls-private-decl-static.template
+/*---
+description: Computed values as accessor property names (string literal using single quotes) (Class declaration, static method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  static get #'singleQuote'() { return 'get string'; }
+  static set #'singleQuote'(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'singleQuote';
+  }
+
+  static setPrivateReference(value) {
+    this.#'singleQuote' = value;
+  }
+}
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
+
diff --git a/test/language/statements/class/private-accessor-name-static-literal-string-unicode-escape.js b/test/language/statements/class/private-accessor-name-static-literal-string-unicode-escape.js
new file mode 100644
index 0000000000..6c39464db7
--- /dev/null
+++ b/test/language/statements/class/private-accessor-name-static-literal-string-unicode-escape.js
@@ -0,0 +1,54 @@
+// This file was procedurally generated from the following sources:
+// - src/accessor-names/literal-string-unicode-escape.case
+// - src/accessor-names/default/cls-private-decl-static.template
+/*---
+description: Computed values as accessor property names (string literal containing a Unicode escape sequence) (Class declaration, static method)
+flags: [generated]
+info: |
+    [...]
+    MethodDefinition[Yield, Await]:
+        PropertyNameClassElementName [?Yield, ?Await](
+          UniqueFormalParameters [~Yield, ~Await] ) {
+          FunctionBody [~Yield, ~Await] }
+        AsyncMethod[?Yield, ?Await]
+          get PropertyName ClassElementName [?Yield, ?Await] (){
+            FunctionBody [~Yield, ~Await] }
+          set PropertyNameClassElementName [?Yield, ?Await] (
+            PropertySetParameterList ) { FunctionBody [~Yield, ~Await] }
+        AsyncMethod [Yield, Await]:
+          async [no LineTerminator here] PropertyName
+            ClassElementName[?Yield, ?Await](
+            UniqueFormalParameters[~Yield, +Await] ) { AsyncFunctionBody }
+
+
+    12.2.6.7 Runtime Semantics: Evaluation
+
+    [...]
+
+    ComputedPropertyName : [ AssignmentExpression ]
+
+    1. Let exprValue be the result of evaluating AssignmentExpression.
+    2. Let propName be ? GetValue(exprValue).
+    3. Return ? ToPropertyKey(propName).
+---*/
+
+var stringSet;
+
+class C {
+  static get #'unicod\u{000065}Escape'() { return 'get string'; }
+  static set #'unicod\u{000065}Escape'(param) { stringSet = param; }
+
+  static getPrivateReference() {
+    return this.#'unicodeEscape';
+  }
+
+  static setPrivateReference(value) {
+    this.#'unicodeEscape' = value;
+  }
+}
+
+assert.sameValue(C.getPrivateReference(), 'get string');
+
+C.setPrivateReference('set string');
+assert.sameValue(stringSet, 'set string');
+
-- 
GitLab