diff --git a/src/class-elements/private-async-generator-cannot-escape-token.case b/src/class-elements/private-async-generator-cannot-escape-token.case
new file mode 100644
index 0000000000000000000000000000000000000000..01ba09697fc824b1fadd04e9baf904fcf91e8bd6
--- /dev/null
+++ b/src/class-elements/private-async-generator-cannot-escape-token.case
@@ -0,0 +1,16 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: The pound signal in the private async generator cannot be escaped
+template: syntax/invalid
+info: |
+  PrivateName::
+    # IdentifierName
+
+  U+0023 is the escape sequence for #
+features: [class-methods-private, async-iteration]
+---*/
+
+//- elements
+async * \u0023m() { return 42; }
diff --git a/src/class-elements/private-async-method-cannot-escape-token.case b/src/class-elements/private-async-method-cannot-escape-token.case
new file mode 100644
index 0000000000000000000000000000000000000000..de2b70674978f8aac60756d6b14aa0097b3e4eb0
--- /dev/null
+++ b/src/class-elements/private-async-method-cannot-escape-token.case
@@ -0,0 +1,16 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: The pound signal in the private async method cannot be escaped
+template: syntax/invalid
+info: |
+  PrivateName::
+    # IdentifierName
+
+  U+0023 is the escape sequence for #
+features: [class-methods-private, async-functions]
+---*/
+
+//- elements
+async \u0023m() { return 42; }
diff --git a/src/class-elements/private-call-exp-cannot-escape-token.case b/src/class-elements/private-call-exp-cannot-escape-token.case
new file mode 100644
index 0000000000000000000000000000000000000000..a14f23c68f860459cce93a418e88e3fced0fe161
--- /dev/null
+++ b/src/class-elements/private-call-exp-cannot-escape-token.case
@@ -0,0 +1,24 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: The pound signal in the private reference cannot be escaped
+template: syntax/invalid
+info: |
+  PrivateName ::
+    # IdentifierName
+
+  MemberExpression :
+    MemberExpression . PrivateName
+
+  CallExpression :
+    CallExpression . PrivateName
+
+  U+0023 is the escape sequence for #
+features: [class-fields-private]
+---*/
+
+//- elements
+method() {
+  foo().\u0023field;
+}
diff --git a/src/class-elements/private-field-cannot-escape-token.case b/src/class-elements/private-field-cannot-escape-token.case
new file mode 100644
index 0000000000000000000000000000000000000000..21da52f41b21b1708cfc69b3fee2a92061d23da4
--- /dev/null
+++ b/src/class-elements/private-field-cannot-escape-token.case
@@ -0,0 +1,16 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: The pound signal in the private field cannot be escaped
+template: syntax/invalid
+info: |
+  PrivateName::
+    # IdentifierName
+
+  U+0023 is the escape sequence for #
+features: [class-fields-private]
+---*/
+
+//- elements
+\u0023field;
diff --git a/src/class-elements/private-generator-cannot-escape-token.case b/src/class-elements/private-generator-cannot-escape-token.case
new file mode 100644
index 0000000000000000000000000000000000000000..a3465976d7972cddb22c013d96d092787e16188a
--- /dev/null
+++ b/src/class-elements/private-generator-cannot-escape-token.case
@@ -0,0 +1,16 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: The pound signal in the private generator cannot be escaped
+template: syntax/invalid
+info: |
+  PrivateName::
+    # IdentifierName
+
+  U+0023 is the escape sequence for #
+features: [class-methods-private, generators]
+---*/
+
+//- elements
+* \u0023m() { return 42; }
diff --git a/src/class-elements/private-member-exp-cannot-escape-token.case b/src/class-elements/private-member-exp-cannot-escape-token.case
new file mode 100644
index 0000000000000000000000000000000000000000..6a9748824b43e8eeede4a7a2d0e62f9fbb5844d0
--- /dev/null
+++ b/src/class-elements/private-member-exp-cannot-escape-token.case
@@ -0,0 +1,24 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: The pound signal in the private reference cannot be escaped
+template: syntax/invalid
+info: |
+  PrivateName ::
+    # IdentifierName
+
+  MemberExpression :
+    MemberExpression . PrivateName
+
+  CallExpression :
+    CallExpression . PrivateName
+
+  U+0023 is the escape sequence for #
+features: [class-fields-private]
+---*/
+
+//- elements
+method() {
+  this.\u0023field;
+}
diff --git a/src/class-elements/private-method-cannot-escape-token.case b/src/class-elements/private-method-cannot-escape-token.case
new file mode 100644
index 0000000000000000000000000000000000000000..44a5d7e76168ececf4a89f0e68817a9d65e33928
--- /dev/null
+++ b/src/class-elements/private-method-cannot-escape-token.case
@@ -0,0 +1,16 @@
+// Copyright (C) 2018 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: The pound signal in the private method cannot be escaped
+template: syntax/invalid
+info: |
+  PrivateName::
+    # IdentifierName
+
+  U+0023 is the escape sequence for #
+features: [class-methods-private]
+---*/
+
+//- elements
+\u0023m() { return 42; }