From 358f03f824a80d861470a0051fe2ecd6e1a8d018 Mon Sep 17 00:00:00 2001
From: Leo Balter <leonardo.balter@gmail.com>
Date: Tue, 28 Nov 2017 12:08:58 -0500
Subject: [PATCH] Add class-fields-private tags for matches using #

---
 src/class-fields/call-expression-privatename.case               | 1 +
 .../delete-error/cls-decl-field-delete-covered.template         | 2 +-
 .../delete-error/cls-decl-field-delete-twice-covered.template   | 2 +-
 src/class-fields/delete-error/cls-decl-field-delete.template    | 2 +-
 .../delete-error/cls-decl-method-delete-covered.template        | 2 +-
 .../delete-error/cls-decl-method-delete-twice-covered.template  | 2 +-
 src/class-fields/delete-error/cls-decl-method-delete.template   | 2 +-
 .../delete-error/cls-expr-field-delete-covered.template         | 2 +-
 .../delete-error/cls-expr-field-delete-twice-covered.template   | 2 +-
 src/class-fields/delete-error/cls-expr-field-delete.template    | 2 +-
 .../delete-error/cls-expr-method-delete-covered.template        | 2 +-
 .../delete-error/cls-expr-method-delete-twice-covered.template  | 2 +-
 src/class-fields/delete-error/cls-expr-method-delete.template   | 2 +-
 .../cls-decl-fields-private-arrow-fnc.template                  | 2 +-
 .../initializer-error/cls-decl-fields-private-name.template     | 1 +
 .../initializer-error/cls-decl-fields-private-ternary.template  | 1 +
 .../initializer-error/cls-decl-fields-private-typeof.template   | 1 +
 .../cls-decl-fields-static-private-name.template                | 1 +
 .../cls-expr-fields-private-arrow-fnc.template                  | 2 +-
 .../initializer-error/cls-expr-fields-private-name.template     | 1 +
 .../initializer-error/cls-expr-fields-private-ternary.template  | 1 +
 .../initializer-error/cls-expr-fields-private-typeof.template   | 1 +
 .../cls-expr-fields-static-private-name.template                | 1 +
 src/class-fields/member-expression-privatename.case             | 1 +
 src/class-fields/private-names.case                             | 1 +
 src/class-fields/static-private-names.case                      | 1 +
 26 files changed, 26 insertions(+), 14 deletions(-)

diff --git a/src/class-fields/call-expression-privatename.case b/src/class-fields/call-expression-privatename.case
index a00e9616c9..5b92093bc2 100644
--- a/src/class-fields/call-expression-privatename.case
+++ b/src/class-fields/call-expression-privatename.case
@@ -4,6 +4,7 @@
 /*---
 desc: Syntax error if you call delete on call expressions . privatename
 template: delete-error
+features: [class, class-fields-private, class-fields-public]
 ---*/
 
 //- infieldsetup
diff --git a/src/class-fields/delete-error/cls-decl-field-delete-covered.template b/src/class-fields/delete-error/cls-decl-field-delete-covered.template
index 0d5bec7303..a0d256ac3f 100644
--- a/src/class-fields/delete-error/cls-decl-field-delete-covered.template
+++ b/src/class-fields/delete-error/cls-decl-field-delete-covered.template
@@ -13,7 +13,7 @@ info: |
     It is a Syntax Error if the UnaryExpression is contained in strict mode code and the derived UnaryExpression is PrimaryExpression : IdentifierReference , MemberExpression : MemberExpression.PrivateName , or CallExpression : CallExpression.PrivateName .
 
     It is a Syntax Error if the derived UnaryExpression is PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and CoverParenthesizedExpressionAndArrowParameterList ultimately derives a phrase that, if used in place of UnaryExpression, would produce a Syntax Error according to these rules. This rule is recursively applied.
-features: [class-fields]
+features: [class, class-fields-private, class-fields-public]
 negative:
   type: SyntaxError
   phase: early
diff --git a/src/class-fields/delete-error/cls-decl-field-delete-twice-covered.template b/src/class-fields/delete-error/cls-decl-field-delete-twice-covered.template
index 917cd411a7..7c6d808cfa 100644
--- a/src/class-fields/delete-error/cls-decl-field-delete-twice-covered.template
+++ b/src/class-fields/delete-error/cls-decl-field-delete-twice-covered.template
@@ -13,7 +13,7 @@ info: |
     It is a Syntax Error if the UnaryExpression is contained in strict mode code and the derived UnaryExpression is PrimaryExpression : IdentifierReference , MemberExpression : MemberExpression.PrivateName , or CallExpression : CallExpression.PrivateName .
 
     It is a Syntax Error if the derived UnaryExpression is PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and CoverParenthesizedExpressionAndArrowParameterList ultimately derives a phrase that, if used in place of UnaryExpression, would produce a Syntax Error according to these rules. This rule is recursively applied.
-features: [class-fields]
+features: [class, class-fields-private, class-fields-public]
 negative:
   type: SyntaxError
   phase: early
diff --git a/src/class-fields/delete-error/cls-decl-field-delete.template b/src/class-fields/delete-error/cls-decl-field-delete.template
index 68cf7615bd..0d50f06d40 100644
--- a/src/class-fields/delete-error/cls-decl-field-delete.template
+++ b/src/class-fields/delete-error/cls-decl-field-delete.template
@@ -11,7 +11,7 @@ info: |
     UnaryExpression : delete UnaryExpression
 
     It is a Syntax Error if the UnaryExpression is contained in strict mode code and the derived UnaryExpression is PrimaryExpression : IdentifierReference , MemberExpression : MemberExpression.PrivateName , or CallExpression : CallExpression.PrivateName .
-features: [class-fields]
+features: [class, class-fields-private, class-fields-public]
 negative:
   type: SyntaxError
   phase: early
diff --git a/src/class-fields/delete-error/cls-decl-method-delete-covered.template b/src/class-fields/delete-error/cls-decl-method-delete-covered.template
index 2b0200d2c6..1c9e08940c 100644
--- a/src/class-fields/delete-error/cls-decl-method-delete-covered.template
+++ b/src/class-fields/delete-error/cls-decl-method-delete-covered.template
@@ -13,7 +13,7 @@ info: |
     It is a Syntax Error if the UnaryExpression is contained in strict mode code and the derived UnaryExpression is PrimaryExpression : IdentifierReference , MemberExpression : MemberExpression.PrivateName , or CallExpression : CallExpression.PrivateName .
 
     It is a Syntax Error if the derived UnaryExpression is PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and CoverParenthesizedExpressionAndArrowParameterList ultimately derives a phrase that, if used in place of UnaryExpression, would produce a Syntax Error according to these rules. This rule is recursively applied.
-features: [class-fields]
+features: [class, class-fields-private]
 negative:
   type: SyntaxError
   phase: early
diff --git a/src/class-fields/delete-error/cls-decl-method-delete-twice-covered.template b/src/class-fields/delete-error/cls-decl-method-delete-twice-covered.template
index f39de82a41..838d046b96 100644
--- a/src/class-fields/delete-error/cls-decl-method-delete-twice-covered.template
+++ b/src/class-fields/delete-error/cls-decl-method-delete-twice-covered.template
@@ -13,7 +13,7 @@ info: |
     It is a Syntax Error if the UnaryExpression is contained in strict mode code and the derived UnaryExpression is PrimaryExpression : IdentifierReference , MemberExpression : MemberExpression.PrivateName , or CallExpression : CallExpression.PrivateName .
 
     It is a Syntax Error if the derived UnaryExpression is PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and CoverParenthesizedExpressionAndArrowParameterList ultimately derives a phrase that, if used in place of UnaryExpression, would produce a Syntax Error according to these rules. This rule is recursively applied.
-features: [class-fields]
+features: [class, class-fields-private]
 negative:
   type: SyntaxError
   phase: early
diff --git a/src/class-fields/delete-error/cls-decl-method-delete.template b/src/class-fields/delete-error/cls-decl-method-delete.template
index 1f267683f7..30fabc7ae9 100644
--- a/src/class-fields/delete-error/cls-decl-method-delete.template
+++ b/src/class-fields/delete-error/cls-decl-method-delete.template
@@ -11,7 +11,7 @@ info: |
     UnaryExpression : delete UnaryExpression
 
     It is a Syntax Error if the UnaryExpression is contained in strict mode code and the derived UnaryExpression is PrimaryExpression : IdentifierReference , MemberExpression : MemberExpression.PrivateName , or CallExpression : CallExpression.PrivateName .
-features: [class-fields]
+features: [class, class-fields-private]
 negative:
   type: SyntaxError
   phase: early
diff --git a/src/class-fields/delete-error/cls-expr-field-delete-covered.template b/src/class-fields/delete-error/cls-expr-field-delete-covered.template
index bf3af2a6cb..e67a113fb9 100644
--- a/src/class-fields/delete-error/cls-expr-field-delete-covered.template
+++ b/src/class-fields/delete-error/cls-expr-field-delete-covered.template
@@ -13,7 +13,7 @@ info: |
     It is a Syntax Error if the UnaryExpression is contained in strict mode code and the derived UnaryExpression is PrimaryExpression : IdentifierReference , MemberExpression : MemberExpression.PrivateName , or CallExpression : CallExpression.PrivateName .
 
     It is a Syntax Error if the derived UnaryExpression is PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and CoverParenthesizedExpressionAndArrowParameterList ultimately derives a phrase that, if used in place of UnaryExpression, would produce a Syntax Error according to these rules. This rule is recursively applied.
-features: [class-fields]
+features: [class, class-fields-private]
 negative:
   type: SyntaxError
   phase: early
diff --git a/src/class-fields/delete-error/cls-expr-field-delete-twice-covered.template b/src/class-fields/delete-error/cls-expr-field-delete-twice-covered.template
index 595b706dcb..1373b63ed1 100644
--- a/src/class-fields/delete-error/cls-expr-field-delete-twice-covered.template
+++ b/src/class-fields/delete-error/cls-expr-field-delete-twice-covered.template
@@ -13,7 +13,7 @@ info: |
     It is a Syntax Error if the UnaryExpression is contained in strict mode code and the derived UnaryExpression is PrimaryExpression : IdentifierReference , MemberExpression : MemberExpression.PrivateName , or CallExpression : CallExpression.PrivateName .
 
     It is a Syntax Error if the derived UnaryExpression is PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and CoverParenthesizedExpressionAndArrowParameterList ultimately derives a phrase that, if used in place of UnaryExpression, would produce a Syntax Error according to these rules. This rule is recursively applied.
-features: [class-fields]
+features: [class, class-fields-private, class-fields-public]
 negative:
   type: SyntaxError
   phase: early
diff --git a/src/class-fields/delete-error/cls-expr-field-delete.template b/src/class-fields/delete-error/cls-expr-field-delete.template
index 29eea4fcf3..9b9e2982c9 100644
--- a/src/class-fields/delete-error/cls-expr-field-delete.template
+++ b/src/class-fields/delete-error/cls-expr-field-delete.template
@@ -11,7 +11,7 @@ info: |
     UnaryExpression : delete UnaryExpression
 
     It is a Syntax Error if the UnaryExpression is contained in strict mode code and the derived UnaryExpression is PrimaryExpression : IdentifierReference , MemberExpression : MemberExpression.PrivateName , or CallExpression : CallExpression.PrivateName .
-features: [class-fields]
+features: [class, class-fields-private, class-fields-public]
 negative:
   type: SyntaxError
   phase: early
diff --git a/src/class-fields/delete-error/cls-expr-method-delete-covered.template b/src/class-fields/delete-error/cls-expr-method-delete-covered.template
index 41ebc0e3bb..cc3757715f 100644
--- a/src/class-fields/delete-error/cls-expr-method-delete-covered.template
+++ b/src/class-fields/delete-error/cls-expr-method-delete-covered.template
@@ -13,7 +13,7 @@ info: |
     It is a Syntax Error if the UnaryExpression is contained in strict mode code and the derived UnaryExpression is PrimaryExpression : IdentifierReference , MemberExpression : MemberExpression.PrivateName , or CallExpression : CallExpression.PrivateName .
 
     It is a Syntax Error if the derived UnaryExpression is PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and CoverParenthesizedExpressionAndArrowParameterList ultimately derives a phrase that, if used in place of UnaryExpression, would produce a Syntax Error according to these rules. This rule is recursively applied.
-features: [class-fields]
+features: [class, class-fields-private]
 negative:
   type: SyntaxError
   phase: early
diff --git a/src/class-fields/delete-error/cls-expr-method-delete-twice-covered.template b/src/class-fields/delete-error/cls-expr-method-delete-twice-covered.template
index f456e7c7ca..ad5f46f207 100644
--- a/src/class-fields/delete-error/cls-expr-method-delete-twice-covered.template
+++ b/src/class-fields/delete-error/cls-expr-method-delete-twice-covered.template
@@ -13,7 +13,7 @@ info: |
     It is a Syntax Error if the UnaryExpression is contained in strict mode code and the derived UnaryExpression is PrimaryExpression : IdentifierReference , MemberExpression : MemberExpression.PrivateName , or CallExpression : CallExpression.PrivateName .
 
     It is a Syntax Error if the derived UnaryExpression is PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and CoverParenthesizedExpressionAndArrowParameterList ultimately derives a phrase that, if used in place of UnaryExpression, would produce a Syntax Error according to these rules. This rule is recursively applied.
-features: [class-fields]
+features: [class, class-fields-private]
 negative:
   type: SyntaxError
   phase: early
diff --git a/src/class-fields/delete-error/cls-expr-method-delete.template b/src/class-fields/delete-error/cls-expr-method-delete.template
index c80c0faa00..c6f3b9abc7 100644
--- a/src/class-fields/delete-error/cls-expr-method-delete.template
+++ b/src/class-fields/delete-error/cls-expr-method-delete.template
@@ -11,7 +11,7 @@ info: |
     UnaryExpression : delete UnaryExpression
 
     It is a Syntax Error if the UnaryExpression is contained in strict mode code and the derived UnaryExpression is PrimaryExpression : IdentifierReference , MemberExpression : MemberExpression.PrivateName , or CallExpression : CallExpression.PrivateName .
-features: [class-fields]
+features: [class, class-fields-private]
 negative:
   type: SyntaxError
   phase: early
diff --git a/src/class-fields/initializer-error/cls-decl-fields-private-arrow-fnc.template b/src/class-fields/initializer-error/cls-decl-fields-private-arrow-fnc.template
index 4856108dc1..2fc2adc958 100644
--- a/src/class-fields/initializer-error/cls-decl-fields-private-arrow-fnc.template
+++ b/src/class-fields/initializer-error/cls-decl-fields-private-arrow-fnc.template
@@ -5,7 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/statements/class/fields-private-arrow-fnc-
 name: private field, arrow function expression
-features: [arrow-function]
+features: [class, arrow-function, class-fields-private]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-decl-fields-private-name.template b/src/class-fields/initializer-error/cls-decl-fields-private-name.template
index 615ce8cef7..2b31e10a12 100644
--- a/src/class-fields/initializer-error/cls-decl-fields-private-name.template
+++ b/src/class-fields/initializer-error/cls-decl-fields-private-name.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/statements/class/fields-private-literal-name-
 name: ClassElementName PrivateName
+features: [class, class-fields-private]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-decl-fields-private-ternary.template b/src/class-fields/initializer-error/cls-decl-fields-private-ternary.template
index 935d49fc89..9c9ec22bc0 100644
--- a/src/class-fields/initializer-error/cls-decl-fields-private-ternary.template
+++ b/src/class-fields/initializer-error/cls-decl-fields-private-ternary.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/statements/class/fields-private-ternary-
 name: private field, ternary expression
+features: [class, class-fields-private]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-decl-fields-private-typeof.template b/src/class-fields/initializer-error/cls-decl-fields-private-typeof.template
index ad7bddf909..dd749a0e44 100644
--- a/src/class-fields/initializer-error/cls-decl-fields-private-typeof.template
+++ b/src/class-fields/initializer-error/cls-decl-fields-private-typeof.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/statements/class/fields-private-typeof-
 name: private field, typeof expression
+features: [class, class-fields-private]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-decl-fields-static-private-name.template b/src/class-fields/initializer-error/cls-decl-fields-static-private-name.template
index c50194b6a5..0138ad7492 100644
--- a/src/class-fields/initializer-error/cls-decl-fields-static-private-name.template
+++ b/src/class-fields/initializer-error/cls-decl-fields-static-private-name.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/statements/class/fields-static-private-
 name: static PrivateName
+features: [class, class-fields-private]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-expr-fields-private-arrow-fnc.template b/src/class-fields/initializer-error/cls-expr-fields-private-arrow-fnc.template
index 1f62c0484c..919fd0a0db 100644
--- a/src/class-fields/initializer-error/cls-expr-fields-private-arrow-fnc.template
+++ b/src/class-fields/initializer-error/cls-expr-fields-private-arrow-fnc.template
@@ -5,7 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/expressions/class/fields-private-arrow-fnc-
 name: private field, arrow function expression
-features: [arrow-function]
+features: [class, arrow-function, class-fields-private]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-expr-fields-private-name.template b/src/class-fields/initializer-error/cls-expr-fields-private-name.template
index 5c334c915f..2d88acbcad 100644
--- a/src/class-fields/initializer-error/cls-expr-fields-private-name.template
+++ b/src/class-fields/initializer-error/cls-expr-fields-private-name.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/expressions/class/fields-private-literal-name-
 name: ClassElementName PrivateName
+features: [class, class-fields-private]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-expr-fields-private-ternary.template b/src/class-fields/initializer-error/cls-expr-fields-private-ternary.template
index 0e8c571449..051387f09d 100644
--- a/src/class-fields/initializer-error/cls-expr-fields-private-ternary.template
+++ b/src/class-fields/initializer-error/cls-expr-fields-private-ternary.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/expressions/class/fields-private-ternary-
 name: private field, ternary expression
+features: [class, class-fields-private]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-expr-fields-private-typeof.template b/src/class-fields/initializer-error/cls-expr-fields-private-typeof.template
index bd2d6e3b09..7bb74a24f8 100644
--- a/src/class-fields/initializer-error/cls-expr-fields-private-typeof.template
+++ b/src/class-fields/initializer-error/cls-expr-fields-private-typeof.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/expressions/class/fields-private-typeof-
 name: private field, typeof expression
+features: [class, class-fields-private]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/initializer-error/cls-expr-fields-static-private-name.template b/src/class-fields/initializer-error/cls-expr-fields-static-private-name.template
index 0d3c770f9b..ea342167f1 100644
--- a/src/class-fields/initializer-error/cls-expr-fields-static-private-name.template
+++ b/src/class-fields/initializer-error/cls-expr-fields-static-private-name.template
@@ -5,6 +5,7 @@
 esid: sec-class-definitions-static-semantics-early-errors
 path: language/expressions/class/fields-static-private-
 name: static PrivateName
+features: [class, class-fields-private]
 ---*/
 
 throw "Test262: This statement should not be evaluated.";
diff --git a/src/class-fields/member-expression-privatename.case b/src/class-fields/member-expression-privatename.case
index 595cdcea75..99a353ec80 100644
--- a/src/class-fields/member-expression-privatename.case
+++ b/src/class-fields/member-expression-privatename.case
@@ -4,6 +4,7 @@
 /*---
 desc: Syntax error if you call delete on member expressions . privatename
 template: delete-error
+features: [class-fields-private]
 ---*/
 
 //- expression
diff --git a/src/class-fields/private-names.case b/src/class-fields/private-names.case
index 24e9a7c2c1..9f839452c7 100644
--- a/src/class-fields/private-names.case
+++ b/src/class-fields/private-names.case
@@ -17,6 +17,7 @@ info: |
   PrivateName:
     #IdentifierName
 template: productions
+features: [class-fields-private]
 ---*/
 
 //- fields
diff --git a/src/class-fields/static-private-names.case b/src/class-fields/static-private-names.case
index 10791399ff..89f62976cd 100644
--- a/src/class-fields/static-private-names.case
+++ b/src/class-fields/static-private-names.case
@@ -17,6 +17,7 @@ info: |
   PrivateName:
     #IdentifierName
 template: productions
+features: [class-fields-private]
 ---*/
 
 //- fields
-- 
GitLab