From 94c320e0e090d1cab63ac9ef4622eb1c01b3092c Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Wed, 14 Aug 2019 13:57:42 +0900 Subject: [PATCH] Allow `async` and `includes` as member names (#769) * Allow `async` and `includes` as member names * Allow "async" as a valid argument name * OptionalOperationName --- index.bs | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/index.bs b/index.bs index 1885eac4..ad0bb0ef 100644 --- a/index.bs +++ b/index.bs @@ -640,7 +640,7 @@ in the declaration: * For [=operations=], the identifier token that appears after the return type but before the opening parenthesis (that is, - one that is matched as part of the OptionalIdentifier + one that is matched as part of the OptionalOperationName grammar symbol in an OperationRest) determines the identifier of the operation. If there is no such identifier token, then the operation does not have an identifier. @@ -677,6 +677,7 @@ underscore.
     ArgumentNameKeyword :
+        "async"
         "attribute"
         "callback"
         "const"
@@ -1976,6 +1977,7 @@ are applicable only to regular attributes:
 
 
     AttributeNameKeyword :
+        "async"
         "required"
 
@@ -2420,15 +2422,26 @@ The following extended attributes are applicable to operations:
     OperationRest :
-        OptionalIdentifier "(" ArgumentList ")" ";"
+        OptionalOperationName "(" ArgumentList ")" ";"
 
-
-    OptionalIdentifier :
-        identifier
+
+    OptionalOperationName :
+        OperationName
         ε
 
+
+    OperationName :
+        OperationNameKeyword
+        identifier
+
+ +
+    OperationNameKeyword :
+        "includes"
+
+
     ArgumentList :
         Argument Arguments