2011-06-15 Oliver Hunt <oliver@apple.com>
authoroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 15 Jun 2011 21:46:13 +0000 (21:46 +0000)
committeroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 15 Jun 2011 21:46:13 +0000 (21:46 +0000)
        Reviewed by Darin Adler.

        REGRESSION (r88719): 5by5.tv schedule is not visible
        https://bugs.webkit.org/show_bug.cgi?id=62720

        Add test for the "interesting" ascii characters that may occur in an identifier

        * fast/js/parser-syntax-check-expected.txt:
        * fast/js/script-tests/parser-syntax-check.js:
2011-06-15  Oliver Hunt  <oliver@apple.com>

        Reviewed by Darin Adler.

        REGRESSION (r88719): 5by5.tv schedule is not visible
        https://bugs.webkit.org/show_bug.cgi?id=62720

        Problem here is that the lexer wasn't considering '$' to be
        a valid character in an identifier.

        * parser/Lexer.h:
        (JSC::Lexer::lexExpectIdentifier):

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

LayoutTests/ChangeLog
LayoutTests/fast/js/parser-syntax-check-expected.txt
LayoutTests/fast/js/script-tests/parser-syntax-check.js
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/parser/Lexer.h

index 0de4775..6555173 100644 (file)
@@ -1,3 +1,15 @@
+2011-06-15  Oliver Hunt  <oliver@apple.com>
+
+        Reviewed by Darin Adler.
+
+        REGRESSION (r88719): 5by5.tv schedule is not visible
+        https://bugs.webkit.org/show_bug.cgi?id=62720
+
+        Add test for the "interesting" ascii characters that may occur in an identifier
+
+        * fast/js/parser-syntax-check-expected.txt:
+        * fast/js/script-tests/parser-syntax-check.js:
+
 2011-06-15  Stephen White  <senorblanco@chromium.org>
 
         Unreviewed; more chromium test expectations updates.
index ed71d0b..f2d6b90 100644 (file)
@@ -549,6 +549,24 @@ PASS Invalid: "'use strict'; function __proto__(){}"
 PASS Invalid: "function f() { 'use strict'; function __proto__(){} }"
 PASS Invalid: "'use strict'; (function __proto__(){})"
 PASS Invalid: "function f() { 'use strict'; (function __proto__(){}) }"
+PASS Valid:   "if (0) $foo; "
+PASS Valid:   "function f() { if (0) $foo;  }"
+PASS Valid:   "if (0) _foo; "
+PASS Valid:   "function f() { if (0) _foo;  }"
+PASS Valid:   "if (0) foo$; "
+PASS Valid:   "function f() { if (0) foo$;  }"
+PASS Valid:   "if (0) foo_; "
+PASS Valid:   "function f() { if (0) foo_;  }"
+PASS Valid:   "if (0) obj.$foo; "
+PASS Valid:   "function f() { if (0) obj.$foo;  }"
+PASS Valid:   "if (0) obj._foo; "
+PASS Valid:   "function f() { if (0) obj._foo;  }"
+PASS Valid:   "if (0) obj.foo$; "
+PASS Valid:   "function f() { if (0) obj.foo$;  }"
+PASS Valid:   "if (0) obj.foo_; "
+PASS Valid:   "function f() { if (0) obj.foo_;  }"
+PASS Valid:   "if (0) obj.foo\u03bb; "
+PASS Valid:   "function f() { if (0) obj.foo\u03bb;  }"
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 61455ac..3dbc76c 100644 (file)
@@ -351,4 +351,14 @@ invalid("(function __proto__(){})")
 invalid("'use strict'; function __proto__(){}")
 invalid("'use strict'; (function __proto__(){})")
 
+valid("if (0) $foo; ")
+valid("if (0) _foo; ")
+valid("if (0) foo$; ")
+valid("if (0) foo_; ")
+valid("if (0) obj.$foo; ")
+valid("if (0) obj._foo; ")
+valid("if (0) obj.foo$; ")
+valid("if (0) obj.foo_; ")
+valid("if (0) obj.foo\\u03bb; ")
+
 var successfullyParsed = true;
index 9d9d9a3..9933453 100644 (file)
@@ -1,5 +1,18 @@
 2011-06-15  Oliver Hunt  <oliver@apple.com>
 
+        Reviewed by Darin Adler.
+
+        REGRESSION (r88719): 5by5.tv schedule is not visible
+        https://bugs.webkit.org/show_bug.cgi?id=62720
+
+        Problem here is that the lexer wasn't considering '$' to be
+        a valid character in an identifier.
+
+        * parser/Lexer.h:
+        (JSC::Lexer::lexExpectIdentifier):
+
+2011-06-15  Oliver Hunt  <oliver@apple.com>
+
         Reviewed by Sam Weinig.
 
         Reduce the size of global_resolve
index 3619ae2..5c866d2 100644 (file)
@@ -202,7 +202,7 @@ namespace JSC {
 
         // Here's the shift
         if (ptr < end) {
-            if (!WTF::isASCII(*ptr) || (*ptr == '\\') || (*ptr == '_'))
+            if ((!WTF::isASCII(*ptr)) || (*ptr == '\\') || (*ptr == '_') || (*ptr == '$'))
                 goto slowCase;
             m_current = *ptr;
         } else