diff --git a/src/class-fields/rs-static-async-generator-method-privatename-identifier-alt.case b/src/class-fields/rs-static-async-generator-method-privatename-identifier-alt.case
new file mode 100644
index 0000000000000000000000000000000000000000..1b5473a9ab272bb4bc22b0e8e376c5f9dd6b7c9d
--- /dev/null
+++ b/src/class-fields/rs-static-async-generator-method-privatename-identifier-alt.case
@@ -0,0 +1,117 @@
+// Copyright (C) 2018 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: Valid Static AsyncGeneratorMethod PrivateName
+info: |
+
+  ClassElement :
+    MethodDefinition
+    static MethodDefinition
+    FieldDefinition ;
+    static FieldDefinition ;
+    ;
+
+  MethodDefinition :
+    AsyncGeneratorMethod
+
+  AsyncGeneratorMethod :
+    async [no LineTerminator here] * ClassElementName ( UniqueFormalParameters){ AsyncGeneratorBody }
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+
+  IdentifierName ::
+    IdentifierStart
+    IdentifierName IdentifierPart
+
+  IdentifierStart ::
+    UnicodeIDStart
+    $
+    _
+    \ UnicodeEscapeSequence
+
+  IdentifierPart::
+    UnicodeIDContinue
+    $
+    \ UnicodeEscapeSequence
+    <ZWNJ> <ZWJ>
+
+  UnicodeIDStart::
+    any Unicode code point with the Unicode property "ID_Start"
+
+  UnicodeIDContinue::
+    any Unicode code point with the Unicode property "ID_Continue"
+
+
+  NOTE 3
+  The sets of code points with Unicode properties "ID_Start" and
+  "ID_Continue" include, respectively, the code points with Unicode
+  properties "Other_ID_Start" and "Other_ID_Continue".
+
+template: productions
+flags: [async]
+features: [class-static-methods-private]
+---*/
+
+//- fields
+static async #$(value) {
+  yield await value;
+}
+static async #_(value) {
+  yield await value;
+}
+static async #o(value) {
+  yield await value;
+}
+static async #℘(value) {
+  yield await value;
+}
+static async #ZW_‌_NJ(value) {
+  yield await value;
+}
+static async #ZW_‍_J(value) {
+  yield await value;
+}
+//- privateinspectionfunctions
+static async $(value) {
+  yield * await this.#$(value);
+}
+static async _(value) {
+  yield * await this.#_(value);
+}
+static async o(value) {
+  yield * await this.#o(value);
+}
+static async ℘(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
+  yield * await this.#℘(value);
+}
+static async ZW_‌_NJ(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
+  yield * await this.#ZW_‌_NJ(value);
+}
+static async ZW_‍_J(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
+  yield * await this.#ZW_‍_J(value);
+}
+
+//- assertions
+Promise.all([
+  C.$(1).next(),
+  C._(1).next(),
+  C.o(1).next(),
+  C.℘(1).next(), // DO NOT CHANGE THE NAME OF THIS FIELD
+  C.ZW_‌_NJ(1).next(), // DO NOT CHANGE THE NAME OF THIS FIELD
+  C.ZW_‍_J(1).next(), // DO NOT CHANGE THE NAME OF THIS FIELD
+]).then(results => {
+
+  assert.sameValue(results[0].value, 1);
+  assert.sameValue(results[1].value, 1);
+  assert.sameValue(results[2].value, 1);
+  assert.sameValue(results[3].value, 1);
+  assert.sameValue(results[4].value, 1);
+  assert.sameValue(results[5].value, 1);
+
+}, $DONE).then($DONE, $DONE);
diff --git a/src/class-fields/rs-static-async-generator-method-privatename-identifier.case b/src/class-fields/rs-static-async-generator-method-privatename-identifier.case
new file mode 100644
index 0000000000000000000000000000000000000000..f29b16414e3a92c4eba6a405e321ee6c584c17d0
--- /dev/null
+++ b/src/class-fields/rs-static-async-generator-method-privatename-identifier.case
@@ -0,0 +1,118 @@
+// Copyright (C) 2018 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: Valid Static AsyncGeneratorMethod PrivateName
+info: |
+
+  ClassElement :
+    MethodDefinition
+    static MethodDefinition
+    FieldDefinition ;
+    static FieldDefinition ;
+    ;
+
+  MethodDefinition :
+    AsyncGeneratorMethod
+
+  AsyncGeneratorMethod :
+    async [no LineTerminator here] * ClassElementName ( UniqueFormalParameters){ AsyncGeneratorBody }
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+
+  IdentifierName ::
+    IdentifierStart
+    IdentifierName IdentifierPart
+
+  IdentifierStart ::
+    UnicodeIDStart
+    $
+    _
+    \ UnicodeEscapeSequence
+
+  IdentifierPart::
+    UnicodeIDContinue
+    $
+    \ UnicodeEscapeSequence
+    <ZWNJ> <ZWJ>
+
+  UnicodeIDStart::
+    any Unicode code point with the Unicode property "ID_Start"
+
+  UnicodeIDContinue::
+    any Unicode code point with the Unicode property "ID_Continue"
+
+
+  NOTE 3
+  The sets of code points with Unicode properties "ID_Start" and
+  "ID_Continue" include, respectively, the code points with Unicode
+  properties "Other_ID_Start" and "Other_ID_Continue".
+
+template: productions
+flags: [async]
+features: [class-static-methods-private]
+---*/
+
+//- fields
+static async * #$(value) {
+  yield await value;
+}
+static async * #_(value) {
+  yield await value;
+}
+static async * #\u{6F}(value) {
+  yield await value;
+}
+static async * #\u2118(value) {
+  yield await value;
+}
+static async * #ZW_\u200C_NJ(value) {
+  yield await value;
+}
+static async * #ZW_\u200D_J(value) {
+  yield await value;
+}
+//- privateinspectionfunctions
+static async * $(value) {
+  yield * await this.#$(value);
+}
+static async * _(value) {
+  yield * await this.#_(value);
+}
+static async * \u{6F}(value) {
+  yield * await this.#\u{6F}(value);
+}
+static async * \u2118(value) {
+  yield * await this.#\u2118(value);
+}
+static async * ZW_\u200C_NJ(value) {
+  yield * await this.#ZW_\u200C_NJ(value);
+}
+static async * ZW_\u200D_J(value) {
+  yield * await this.#ZW_\u200D_J(value);
+}
+
+//- assertions
+Promise.all([
+  C.$(1).next(),
+  C._(1).next(),
+  C.\u{6F}(1).next(),
+  C.\u2118(1).next(),
+  C.ZW_\u200C_NJ(1).next(),
+  C.ZW_\u200D_J(1).next(),
+]).then(results => {
+
+  assert.sameValue(results[0].value, 1);
+  assert.sameValue(results[1].value, 1);
+  assert.sameValue(results[2].value, 1);
+  assert.sameValue(results[3].value, 1);
+  assert.sameValue(results[4].value, 1);
+  assert.sameValue(results[5].value, 1);
+
+}, $DONE).then($DONE, $DONE);
+
diff --git a/src/class-fields/rs-static-async-method-privatename-identifier-alt.case b/src/class-fields/rs-static-async-method-privatename-identifier-alt.case
new file mode 100644
index 0000000000000000000000000000000000000000..57168ba172f513f9904a4a7531ceb992c08a350a
--- /dev/null
+++ b/src/class-fields/rs-static-async-method-privatename-identifier-alt.case
@@ -0,0 +1,117 @@
+// Copyright (C) 2018 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: Valid Static AsyncMethod PrivateName
+info: |
+
+  ClassElement :
+    MethodDefinition
+    static MethodDefinition
+    FieldDefinition ;
+    static FieldDefinition ;
+    ;
+
+  MethodDefinition :
+    AsyncMethod
+
+  AsyncMethod :
+    async [no LineTerminator here] ClassElementName ( UniqueFormalParameters ){ AsyncFunctionBody }
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+
+  IdentifierName ::
+    IdentifierStart
+    IdentifierName IdentifierPart
+
+  IdentifierStart ::
+    UnicodeIDStart
+    $
+    _
+    \ UnicodeEscapeSequence
+
+  IdentifierPart::
+    UnicodeIDContinue
+    $
+    \ UnicodeEscapeSequence
+    <ZWNJ> <ZWJ>
+
+  UnicodeIDStart::
+    any Unicode code point with the Unicode property "ID_Start"
+
+  UnicodeIDContinue::
+    any Unicode code point with the Unicode property "ID_Continue"
+
+
+  NOTE 3
+  The sets of code points with Unicode properties "ID_Start" and
+  "ID_Continue" include, respectively, the code points with Unicode
+  properties "Other_ID_Start" and "Other_ID_Continue".
+
+template: productions
+flags: [async]
+features: [class-static-methods-private]
+---*/
+
+//- fields
+static async #$(value) {
+  return await value;
+}
+static async #_(value) {
+  return await value;
+}
+static async #o(value) {
+  return await value;
+}
+static async #℘(value) {
+  return await value;
+}
+static async #ZW_‌_NJ(value) {
+  return await value;
+}
+static async #ZW_‍_J(value) {
+  return await value;
+}
+//- privateinspectionfunctions
+static async $(value) {
+  return await this.#$(value);
+}
+static async _(value) {
+  return await this.#_(value);
+}
+static async o(value) {
+  return await this.#o(value);
+}
+static async ℘(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
+  return await this.#℘(value);
+}
+static async ZW_‌_NJ(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
+  return await this.#ZW_‌_NJ(value);
+}
+static async ZW_‍_J(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
+  return await this.#ZW_‍_J(value);
+}
+
+//- assertions
+Promise.all([
+  C.$(1),
+  C._(1),
+  C.o(1),
+  C.℘(1), // DO NOT CHANGE THE NAME OF THIS FIELD
+  C.ZW_‌_NJ(1), // DO NOT CHANGE THE NAME OF THIS FIELD
+  C.ZW_‍_J(1), // DO NOT CHANGE THE NAME OF THIS FIELD
+]).then(results => {
+
+  assert.sameValue(results[0], 1);
+  assert.sameValue(results[1], 1);
+  assert.sameValue(results[2], 1);
+  assert.sameValue(results[3], 1);
+  assert.sameValue(results[4], 1);
+  assert.sameValue(results[5], 1);
+
+}, $DONE).then($DONE, $DONE);
diff --git a/src/class-fields/rs-static-async-method-privatename-identifier.case b/src/class-fields/rs-static-async-method-privatename-identifier.case
new file mode 100644
index 0000000000000000000000000000000000000000..b715696e6d3594f92922a916635891df0296e423
--- /dev/null
+++ b/src/class-fields/rs-static-async-method-privatename-identifier.case
@@ -0,0 +1,118 @@
+// Copyright (C) 2018 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: Valid Static AsyncMethod PrivateName
+info: |
+
+  ClassElement :
+    MethodDefinition
+    static MethodDefinition
+    FieldDefinition ;
+    static FieldDefinition ;
+    ;
+
+  MethodDefinition :
+    AsyncMethod
+
+  AsyncMethod :
+    async [no LineTerminator here] ClassElementName ( UniqueFormalParameters ){ AsyncFunctionBody }
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+
+  IdentifierName ::
+    IdentifierStart
+    IdentifierName IdentifierPart
+
+  IdentifierStart ::
+    UnicodeIDStart
+    $
+    _
+    \ UnicodeEscapeSequence
+
+  IdentifierPart::
+    UnicodeIDContinue
+    $
+    \ UnicodeEscapeSequence
+    <ZWNJ> <ZWJ>
+
+  UnicodeIDStart::
+    any Unicode code point with the Unicode property "ID_Start"
+
+  UnicodeIDContinue::
+    any Unicode code point with the Unicode property "ID_Continue"
+
+
+  NOTE 3
+  The sets of code points with Unicode properties "ID_Start" and
+  "ID_Continue" include, respectively, the code points with Unicode
+  properties "Other_ID_Start" and "Other_ID_Continue".
+
+template: productions
+flags: [async]
+features: [class-static-methods-private]
+---*/
+
+//- fields
+static async #$(value) {
+  return await value;
+}
+static async #_(value) {
+  return await value;
+}
+static async #\u{6F}(value) {
+  return await value;
+}
+static async #\u2118(value) {
+  return await value;
+}
+static async #ZW_\u200C_NJ(value) {
+  return await value;
+}
+static async #ZW_\u200D_J(value) {
+  return await value;
+}
+//- privateinspectionfunctions
+static async $(value) {
+  return await this.#$(value);
+}
+static async _(value) {
+  return await this.#_(value);
+}
+static async \u{6F}(value) {
+  return await this.#\u{6F}(value);
+}
+static async \u2118(value) {
+  return await this.#\u2118(value);
+}
+static async ZW_\u200C_NJ(value) {
+  return await this.#ZW_\u200C_NJ(value);
+}
+static async ZW_\u200D_J(value) {
+  return await this.#ZW_\u200D_J(value);
+}
+
+//- assertions
+Promise.all([
+  C.$(1),
+  C._(1),
+  C.\u{6F}(1),
+  C.\u2118(1),
+  C.ZW_\u200C_NJ(1),
+  C.ZW_\u200D_J(1),
+]).then(results => {
+
+  assert.sameValue(results[0], 1);
+  assert.sameValue(results[1], 1);
+  assert.sameValue(results[2], 1);
+  assert.sameValue(results[3], 1);
+  assert.sameValue(results[4], 1);
+  assert.sameValue(results[5], 1);
+
+}, $DONE).then($DONE, $DONE);
+
diff --git a/src/class-fields/rs-static-generator-method-privatename-identifier-alt.case b/src/class-fields/rs-static-generator-method-privatename-identifier-alt.case
new file mode 100644
index 0000000000000000000000000000000000000000..500426daba6a17003f0c5a37471a338888683a96
--- /dev/null
+++ b/src/class-fields/rs-static-generator-method-privatename-identifier-alt.case
@@ -0,0 +1,105 @@
+// Copyright (C) 2018 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: Valid Static GeneratorMethod PrivateName
+info: |
+
+  ClassElement :
+    MethodDefinition
+    static MethodDefinition
+    FieldDefinition ;
+    static FieldDefinition ;
+    ;
+
+  MethodDefinition :
+    GeneratorMethod
+
+  GeneratorMethod :
+    * ClassElementName ( UniqueFormalParameters ){ GeneratorBody }
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+
+  IdentifierName ::
+    IdentifierStart
+    IdentifierName IdentifierPart
+
+  IdentifierStart ::
+    UnicodeIDStart
+    $
+    _
+    \ UnicodeEscapeSequence
+
+  IdentifierPart::
+    UnicodeIDContinue
+    $
+    \ UnicodeEscapeSequence
+    <ZWNJ> <ZWJ>
+
+  UnicodeIDStart::
+    any Unicode code point with the Unicode property "ID_Start"
+
+  UnicodeIDContinue::
+    any Unicode code point with the Unicode property "ID_Continue"
+
+
+  NOTE 3
+  The sets of code points with Unicode properties "ID_Start" and
+  "ID_Continue" include, respectively, the code points with Unicode
+  properties "Other_ID_Start" and "Other_ID_Continue".
+
+template: productions
+features: [class-static-methods-private]
+---*/
+
+//- fields
+static * #$(value) {
+  yield value;
+}
+static * #_(value) {
+  yield value;
+}
+static * #o(value) {
+  yield value;
+}
+static * #℘(value) {
+  yield value;
+}
+static * #ZW_‌_NJ(value) {
+  yield value;
+}
+static * #ZW_‍_J(value) {
+  yield value;
+}
+//- privateinspectionfunctions
+static * $(value) {
+  yield this.#$(value);
+}
+static * _(value) {
+  yield this.#_(value);
+}
+static * o(value) {
+  yield this.#o(value);
+}
+static * ℘(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
+  yield this.#℘(value);
+}
+static * ZW_‌_NJ(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
+  yield this.#ZW_‌_NJ(value);
+}
+static * ZW_‍_J(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
+  yield this.#ZW_‍_J(value);
+}
+
+//- assertions
+assert.sameValue(C.$(1).next().value, 1);
+assert.sameValue(C._(1).next().value, 1);
+assert.sameValue(C.o(1).next().value, 1);
+assert.sameValue(C.℘(1).next().value, 1);
+assert.sameValue(C.ZW_‌_NJ(1).next().value, 1);
+assert.sameValue(C.ZW_‍_J(1).next().value, 1);
diff --git a/src/class-fields/rs-static-generator-method-privatename-identifier.case b/src/class-fields/rs-static-generator-method-privatename-identifier.case
new file mode 100644
index 0000000000000000000000000000000000000000..0b7dd4558f11b8dd80b6a57e4fe3a9fe8fb30e20
--- /dev/null
+++ b/src/class-fields/rs-static-generator-method-privatename-identifier.case
@@ -0,0 +1,106 @@
+// Copyright (C) 2018 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: Valid Static GeneratorMethod PrivateName
+info: |
+
+  ClassElement :
+    MethodDefinition
+    static MethodDefinition
+    FieldDefinition ;
+    static FieldDefinition ;
+    ;
+
+  MethodDefinition :
+    GeneratorMethod
+
+  GeneratorMethod :
+    * ClassElementName ( UniqueFormalParameters ){ GeneratorBody }
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+
+  IdentifierName ::
+    IdentifierStart
+    IdentifierName IdentifierPart
+
+  IdentifierStart ::
+    UnicodeIDStart
+    $
+    _
+    \ UnicodeEscapeSequence
+
+  IdentifierPart::
+    UnicodeIDContinue
+    $
+    \ UnicodeEscapeSequence
+    <ZWNJ> <ZWJ>
+
+  UnicodeIDStart::
+    any Unicode code point with the Unicode property "ID_Start"
+
+  UnicodeIDContinue::
+    any Unicode code point with the Unicode property "ID_Continue"
+
+
+  NOTE 3
+  The sets of code points with Unicode properties "ID_Start" and
+  "ID_Continue" include, respectively, the code points with Unicode
+  properties "Other_ID_Start" and "Other_ID_Continue".
+
+template: productions
+features: [class-static-methods-private]
+---*/
+
+//- fields
+static * #$(value) {
+  yield value;
+}
+static * #_(value) {
+  yield value;
+}
+static * #\u{6F}(value) {
+  yield value;
+}
+static * #\u2118(value) {
+  yield value;
+}
+static * #ZW_\u200C_NJ(value) {
+  yield value;
+}
+static * #ZW_\u200D_J(value) {
+  yield value;
+}
+//- privateinspectionfunctions
+static * $(value) {
+  yield this.#$(value);
+}
+static * _(value) {
+  yield this.#_(value);
+}
+static * \u{6F}(value) {
+  yield this.#\u{6F}(value);
+}
+static * \u2118(value) {
+  yield this.#\u2118(value);
+}
+static * ZW_\u200C_NJ(value) {
+  yield this.#ZW_\u200C_NJ(value);
+}
+static * ZW_\u200D_J(value) {
+  yield this.#ZW_\u200D_J(value);
+}
+
+//- assertions
+assert.sameValue(C.$(1).next().value, 1);
+assert.sameValue(C._(1).next().value, 1);
+assert.sameValue(C.\u{6F}(1).next().value, 1);
+assert.sameValue(C.\u2118(1).next().value, 1);
+assert.sameValue(C.ZW_\u200C_NJ(1).next().value, 1);
+assert.sameValue(C.ZW_\u200D_J(1).next().value, 1);
+
diff --git a/src/class-fields/rs-static-method-privatename-identifier-alt.case b/src/class-fields/rs-static-method-privatename-identifier-alt.case
index fbcaeaad86cc19c4b39f0b0e39ebe2eb86643b2e..fb2504435585fa5fed1ee9754f526a5a72132b3d 100644
--- a/src/class-fields/rs-static-method-privatename-identifier-alt.case
+++ b/src/class-fields/rs-static-method-privatename-identifier-alt.case
@@ -12,8 +12,8 @@ info: |
     static FieldDefinition ;
     ;
 
-  FieldDefinition :
-    ClassElementName Initializer _opt
+  MethodDefinition :
+    ClassElementName ( UniqueFormalParameters ){ FunctionBody }
 
   ClassElementName :
     PropertyName
@@ -51,32 +51,26 @@ info: |
   properties "Other_ID_Start" and "Other_ID_Continue".
 
 template: productions
-features: [class-static-fields-private]
+features: [class-static-methods-private]
 ---*/
 
 //- fields
 static #$(value) {
-  this.$ = value;
   return value;
 }
 static #_(value) {
-  this.#stored = value;
   return value;
 }
 static #o(value) {
-  this.#stored = value;
   return value;
 }
 static #℘(value) {
-  this.#stored = value;
   return value;
 }
 static #ZW_‌_NJ(value) {
-  this.#stored = value;
   return value;
 }
 static #ZW_‍_J(value) {
-  this.#stored = value;
   return value;
 }
 //- privateinspectionfunctions
diff --git a/src/class-fields/rs-static-method-privatename-identifier.case b/src/class-fields/rs-static-method-privatename-identifier.case
index b8ed91e5654bbf98978179c0d00c36fb4f294530..b23332e770a3adcaec07f512c44e90be4d6fc589 100644
--- a/src/class-fields/rs-static-method-privatename-identifier.case
+++ b/src/class-fields/rs-static-method-privatename-identifier.case
@@ -12,8 +12,8 @@ info: |
     static FieldDefinition ;
     ;
 
-  FieldDefinition :
-    ClassElementName Initializer _opt
+  MethodDefinition :
+    ClassElementName ( UniqueFormalParameters ){ FunctionBody }
 
   ClassElementName :
     PropertyName
@@ -51,7 +51,7 @@ info: |
   properties "Other_ID_Start" and "Other_ID_Continue".
 
 template: productions
-features: [class-static-fields-private]
+features: [class-static-methods-private]
 ---*/
 
 //- fields
diff --git a/src/class-fields/rs-static-privatename-identifier-alt-by-classname.case b/src/class-fields/rs-static-privatename-identifier-alt-by-classname.case
new file mode 100644
index 0000000000000000000000000000000000000000..846aca8146fcc4152a14459f2031e277d5ce72fe
--- /dev/null
+++ b/src/class-fields/rs-static-privatename-identifier-alt-by-classname.case
@@ -0,0 +1,91 @@
+// Copyright (C) 2018 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: Valid Static PrivateName
+info: |
+
+  ClassElement :
+    MethodDefinition
+    static MethodDefinition
+    FieldDefinition ;
+    static FieldDefinition ;
+    ;
+
+  FieldDefinition :
+    ClassElementName Initializer _opt
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+
+  IdentifierName ::
+    IdentifierStart
+    IdentifierName IdentifierPart
+
+  IdentifierStart ::
+    UnicodeIDStart
+    $
+    _
+    \ UnicodeEscapeSequence
+
+  IdentifierPart::
+    UnicodeIDContinue
+    $
+    \ UnicodeEscapeSequence
+    <ZWNJ> <ZWJ>
+
+  UnicodeIDStart::
+    any Unicode code point with the Unicode property "ID_Start"
+
+  UnicodeIDContinue::
+    any Unicode code point with the Unicode property "ID_Continue"
+
+
+  NOTE 3
+  The sets of code points with Unicode properties "ID_Start" and
+  "ID_Continue" include, respectively, the code points with Unicode
+  properties "Other_ID_Start" and "Other_ID_Continue".
+
+template: productions
+features: [class-static-fields-private]
+---*/
+
+//- fields
+static #$; static #_; static #\u{6F}; static #℘; static #ZW_‌_NJ; static #ZW_‍_J
+//- privateinspectionfunctions
+static $(value) {
+  C.#$ = value;
+  return C.#$;
+}
+static _(value) {
+  C.#_ = value;
+  return C.#_;
+}
+static o(value) {
+  C.#\u{6F} = value;
+  return C.#\u{6F};
+}
+static ℘(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
+  C.#℘ = value;
+  return C.#℘;
+}
+static ZW_‌_NJ(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
+  C.#ZW_‌_NJ = value;
+  return C.#ZW_‌_NJ;
+}
+static ZW_‍_J(value) { // DO NOT CHANGE THE NAME OF THIS FIELD
+  C.#ZW_‍_J = value;
+  return C.#ZW_‍_J;
+}
+//- assertions
+assert.sameValue(C.$(1), 1);
+assert.sameValue(C._(1), 1);
+assert.sameValue(C.o(1), 1);
+assert.sameValue(C.℘(1), 1);      // DO NOT CHANGE THE NAME OF THIS FIELD
+assert.sameValue(C.ZW_‌_NJ(1), 1); // DO NOT CHANGE THE NAME OF THIS FIELD
+assert.sameValue(C.ZW_‍_J(1), 1);  // DO NOT CHANGE THE NAME OF THIS FIELD
+
diff --git a/src/class-fields/rs-static-privatename-identifier-by-classname.case b/src/class-fields/rs-static-privatename-identifier-by-classname.case
new file mode 100644
index 0000000000000000000000000000000000000000..7f56d1ebe69efcea7c0dc0c84a38e5b78cd45ec1
--- /dev/null
+++ b/src/class-fields/rs-static-privatename-identifier-by-classname.case
@@ -0,0 +1,91 @@
+// Copyright (C) 2018 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: Valid Static PrivateName
+info: |
+
+  ClassElement :
+    MethodDefinition
+    static MethodDefinition
+    FieldDefinition ;
+    static FieldDefinition ;
+    ;
+
+  FieldDefinition :
+    ClassElementName Initializer _opt
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+
+  IdentifierName ::
+    IdentifierStart
+    IdentifierName IdentifierPart
+
+  IdentifierStart ::
+    UnicodeIDStart
+    $
+    _
+    \ UnicodeEscapeSequence
+
+  IdentifierPart::
+    UnicodeIDContinue
+    $
+    \ UnicodeEscapeSequence
+    <ZWNJ> <ZWJ>
+
+  UnicodeIDStart::
+    any Unicode code point with the Unicode property "ID_Start"
+
+  UnicodeIDContinue::
+    any Unicode code point with the Unicode property "ID_Continue"
+
+
+  NOTE 3
+  The sets of code points with Unicode properties "ID_Start" and
+  "ID_Continue" include, respectively, the code points with Unicode
+  properties "Other_ID_Start" and "Other_ID_Continue".
+
+template: productions
+features: [class-static-fields-private]
+---*/
+
+//- fields
+static #$; static #_; static #\u{6F}; static #\u2118; static #ZW_\u200C_NJ; static #ZW_\u200D_J
+//- privateinspectionfunctions
+static $(value) {
+  C.#$ = value;
+  return C.#$;
+}
+static _(value) {
+  C.#_ = value;
+  return C.#_;
+}
+static \u{6F}(value) {
+  C.#\u{6F} = value;
+  return C.#\u{6F};
+}
+static \u2118(value) {
+  C.#\u2118 = value;
+  return C.#\u2118;
+}
+static ZW_\u200C_NJ(value) {
+  C.#ZW_\u200C_NJ = value;
+  return C.#ZW_\u200C_NJ;
+}
+static ZW_\u200D_J(value) {
+  C.#ZW_\u200D_J = value;
+  return C.#ZW_\u200D_J;
+}
+//- assertions
+assert.sameValue(C.$(1), 1);
+assert.sameValue(C._(1), 1);
+assert.sameValue(C.\u{6F}(1), 1);
+assert.sameValue(C.\u2118(1), 1);
+assert.sameValue(C.ZW_\u200C_NJ(1), 1);
+assert.sameValue(C.ZW_\u200D_J(1), 1);
+
diff --git a/src/class-fields/rs-static-privatename-identifier-initializer-alt-by-classname.case b/src/class-fields/rs-static-privatename-identifier-initializer-alt-by-classname.case
new file mode 100644
index 0000000000000000000000000000000000000000..383839a0c3dee14d58f531c3b65bbb172387d3df
--- /dev/null
+++ b/src/class-fields/rs-static-privatename-identifier-initializer-alt-by-classname.case
@@ -0,0 +1,85 @@
+// Copyright (C) 2018 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: Valid Static PrivateName
+info: |
+
+  ClassElement :
+    MethodDefinition
+    static MethodDefinition
+    FieldDefinition ;
+    static FieldDefinition ;
+    ;
+
+  FieldDefinition :
+    ClassElementName Initializer _opt
+
+  ClassElementName :
+    PropertyName
+    PrivateName
+
+  PrivateName ::
+    # IdentifierName
+
+  IdentifierName ::
+    IdentifierStart
+    IdentifierName IdentifierPart
+
+  IdentifierStart ::
+    UnicodeIDStart
+    $
+    _
+    \ UnicodeEscapeSequence
+
+  IdentifierPart::
+    UnicodeIDContinue
+    $
+    \ UnicodeEscapeSequence
+    <ZWNJ> <ZWJ>
+
+  UnicodeIDStart::
+    any Unicode code point with the Unicode property "ID_Start"
+
+  UnicodeIDContinue::
+    any Unicode code point with the Unicode property "ID_Continue"
+
+
+  NOTE 3
+  The sets of code points with Unicode properties "ID_Start" and
+  "ID_Continue" include, respectively, the code points with Unicode
+  properties "Other_ID_Start" and "Other_ID_Continue".
+
+template: productions
+features: [class-static-fields-private]
+---*/
+
+//- fields
+static #$ = 1; static #_ = 1; static #\u{6F} = 1; static #℘ = 1; static #ZW_‌_NJ = 1; static #ZW_‍_J = 1
+//- privateinspectionfunctions
+static $() {
+  return C.#$;
+}
+static _() {
+  return C.#_;
+}
+static \u{6F}() {
+  return C.#\u{6F};
+}
+static ℘() {
+  return C.#℘;
+}
+static ZW_‌_NJ() {
+  return C.#ZW_‌_NJ;
+}
+static ZW_‍_J() {
+  return C.#ZW_‍_J;
+}
+//- assertions
+assert.sameValue(C.$(), 1);
+assert.sameValue(C._(), 1);
+assert.sameValue(C.\u{6F}(), 1);
+assert.sameValue(C.℘(), 1);
+assert.sameValue(C.ZW_‌_NJ(), 1);
+assert.sameValue(C.ZW_‍_J(), 1);
+