[JSC] report unexpected token when "async" is followed by identifier
authorcaitp@igalia.com <caitp@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 5 Dec 2016 22:20:08 +0000 (22:20 +0000)
committercaitp@igalia.com <caitp@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 5 Dec 2016 22:20:08 +0000 (22:20 +0000)
https://bugs.webkit.org/show_bug.cgi?id=165091

Reviewed by Mark Lam.

JSTests:

* stress/bug-165091.js:

Source/JavaScriptCore:

Report a SyntaxError, in order to report correct error in contexts
an async ArrowFunction cannot occur. Also corrects errors in comment
describing JSTokenType bitfield, which was added in r209293.

* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseMemberExpression):
* parser/ParserTokens.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@209350 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JSTests/ChangeLog
JSTests/stress/bug-165091.js
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/parser/Parser.cpp
Source/JavaScriptCore/parser/ParserTokens.h

index 118e9f6..e4f19c6 100644 (file)
@@ -1,3 +1,12 @@
+2016-12-05  Caitlin Potter  <caitp@igalia.com>
+
+        [JSC] report unexpected token when "async" is followed by identifier 
+        https://bugs.webkit.org/show_bug.cgi?id=165091
+
+        Reviewed by Mark Lam.
+
+        * stress/bug-165091.js:
+
 2016-12-05  Keith Miller  <keith_miller@apple.com>
 
         Add Wasm i64 to i32 conversion.
 2016-12-05  Keith Miller  <keith_miller@apple.com>
 
         Add Wasm i64 to i32 conversion.
index 499319e..8b0ea4b 100644 (file)
@@ -10,4 +10,5 @@ function shouldThrowSyntaxError(str, message) {
     }
 }
 
     }
 }
 
-shouldThrowSyntaxError("0/-async J", "SyntaxError: Cannot parse member expression.")
\ No newline at end of file
+shouldThrowSyntaxError("0/-async J", "Unexpected identifier 'J'")
+
index d4147e0..8dc3039 100644 (file)
@@ -1,3 +1,18 @@
+2016-12-05  Caitlin Potter  <caitp@igalia.com>
+
+        [JSC] report unexpected token when "async" is followed by identifier 
+        https://bugs.webkit.org/show_bug.cgi?id=165091
+
+        Reviewed by Mark Lam.
+
+        Report a SyntaxError, in order to report correct error in contexts
+        an async ArrowFunction cannot occur. Also corrects errors in comment
+        describing JSTokenType bitfield, which was added in r209293.
+
+        * parser/Parser.cpp:
+        (JSC::Parser<LexerType>::parseMemberExpression):
+        * parser/ParserTokens.h:
+
 2016-12-05  Keith Miller  <keith_miller@apple.com>
 
         Add Wasm i64 to i32 conversion.
 2016-12-05  Keith Miller  <keith_miller@apple.com>
 
         Add Wasm i64 to i32 conversion.
index b2a576c..b1904d8 100644 (file)
@@ -4476,7 +4476,7 @@ template <class TreeBuilder> TreeExpression Parser<LexerType>::parseMemberExpres
             if (matchSpecIdentifier()) {
                 // AsyncArrowFunction
                 forceClassifyExpressionError(ErrorIndicatesAsyncArrowFunction);
             if (matchSpecIdentifier()) {
                 // AsyncArrowFunction
                 forceClassifyExpressionError(ErrorIndicatesAsyncArrowFunction);
-                return 0;
+                failDueToUnexpectedToken();
             }
             baseIsAsyncKeyword = true;
         }
             }
             baseIsAsyncKeyword = true;
         }
index c270a8c..f70fc3a 100644 (file)
@@ -34,7 +34,7 @@ namespace JSC {
 class Identifier;
 
 enum {
 class Identifier;
 
 enum {
-    // Token Bitfield: 0b000000000RTEIIIIIIIIPPPPKUXXXXXX
+    // Token Bitfield: 0b000000000RTE000IIIIPPPPKUXXXXXXX
     // R = right-associative bit
     // T = unterminated error flag
     // E = error flag
     // R = right-associative bit
     // T = unterminated error flag
     // E = error flag