Title: [239559] trunk
Revision
239559
Author
ross.kirsl...@sony.com
Date
2018-12-30 09:38:56 -0800 (Sun, 30 Dec 2018)

Log Message

[JSC] Identifier validity should be based on ID_Start / ID_Continue properties
https://bugs.webkit.org/show_bug.cgi?id=193050

Reviewed by Yusuke Suzuki.

JSTests:

* test262.yaml:
* test262/expectations.yaml:
Mark 16 tests as passing.

Source/_javascript_Core:

>From https://tc39.github.io/ecma262/#sec-names-and-keywords:
    UnicodeIDStart::
        any Unicode code point with the Unicode property "ID_Start"
    UnicodeIDContinue::
        any Unicode code point with the Unicode property "ID_Continue"

* parser/Lexer.cpp:
(JSC::Lexer<T>::Lexer):
(JSC::isNonLatin1IdentStart):
(JSC::isNonLatin1IdentPart):
(JSC::isIdentPart):
(JSC::Lexer<T>::lex):
Ensure identifier start / part is based on ID_Start / ID_Continue.
(Implies a special case for U+00B7, which is Latin-1 but Other_ID_Continue.)

LayoutTests:

* sputnik/Unicode/Unicode_218/S7.6_A1.1_T2-expected.txt:
* sputnik/Unicode/Unicode_218/S7.6_A1.1_T6-expected.txt:
* sputnik/Unicode/Unicode_218/S7.6_A5.2_T2-expected.txt:
* sputnik/Unicode/Unicode_218/S7.6_A5.2_T6-expected.txt:
* sputnik/Unicode/Unicode_218/S7.6_A5.3_T1-expected.txt:
* sputnik/Unicode/Unicode_218/S7.6_A5.3_T2-expected.txt:
* sputnik/Unicode/Unicode_320/S7.6_A1.1_T6-expected.txt:
* sputnik/Unicode/Unicode_320/S7.6_A2.3-expected.txt:
* sputnik/Unicode/Unicode_320/S7.6_A3.1-expected.txt:
* sputnik/Unicode/Unicode_320/S7.6_A5.2_T6-expected.txt:
* sputnik/Unicode/Unicode_320/S7.6_A5.2_T9-expected.txt:
* sputnik/Unicode/Unicode_320/S7.6_A5.3_T1-expected.txt:
* sputnik/Unicode/Unicode_320/S7.6_A5.3_T2-expected.txt:
* sputnik/Unicode/Unicode_410/S7.6_A1.1_T6-expected.txt:
* sputnik/Unicode/Unicode_410/S7.6_A3.1-expected.txt:
* sputnik/Unicode/Unicode_410/S7.6_A5.2_T6-expected.txt:
* sputnik/Unicode/Unicode_410/S7.6_A5.3_T1-expected.txt:
* sputnik/Unicode/Unicode_410/S7.6_A5.3_T2-expected.txt:
* sputnik/Unicode/Unicode_500/S7.6_A1.1_T6-expected.txt:
* sputnik/Unicode/Unicode_500/S7.6_A3.1-expected.txt:
* sputnik/Unicode/Unicode_500/S7.6_A5.2_T6-expected.txt:
* sputnik/Unicode/Unicode_500/S7.6_A5.3_T1-expected.txt:
* sputnik/Unicode/Unicode_500/S7.6_A5.3_T2-expected.txt:
* sputnik/Unicode/Unicode_510/S7.6_A1.1_T4-expected.txt:
* sputnik/Unicode/Unicode_510/S7.6_A1.1_T6-expected.txt:
* sputnik/Unicode/Unicode_510/S7.6_A5.2_T4-expected.txt:
* sputnik/Unicode/Unicode_510/S7.6_A5.2_T6-expected.txt:
Update expectations for outdated tests.

Modified Paths

Diff

Modified: trunk/JSTests/ChangeLog (239558 => 239559)


--- trunk/JSTests/ChangeLog	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/JSTests/ChangeLog	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,3 +1,14 @@
+2018-12-30  Ross Kirsling  <ross.kirsl...@sony.com>
+
+        [JSC] Identifier validity should be based on ID_Start / ID_Continue properties
+        https://bugs.webkit.org/show_bug.cgi?id=193050
+
+        Reviewed by Yusuke Suzuki.
+
+        * test262.yaml:
+        * test262/expectations.yaml:
+        Mark 16 tests as passing.
+
 2018-12-13  Yusuke Suzuki  <yusukesuz...@slowstart.org>
 
         [BigInt] Support BigInt in JSON.stringify

Modified: trunk/JSTests/test262/expectations.yaml (239558 => 239559)


--- trunk/JSTests/test262/expectations.yaml	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/JSTests/test262/expectations.yaml	2018-12-30 17:38:56 UTC (rev 239559)
@@ -6953,33 +6953,9 @@
 test/language/global-code/script-decl-var-err.js:
   default: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
   strict mode: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
-test/language/identifiers/other_id_continue-escaped.js:
-  default: "SyntaxError: Invalid unicode escape in identifier: 'a\\u2118'"
-  strict mode: "SyntaxError: Invalid unicode escape in identifier: 'a\\u2118'"
-test/language/identifiers/other_id_continue.js:
-  default: "SyntaxError: Invalid character '\\u2118'"
-  strict mode: "SyntaxError: Invalid character '\\u2118'"
-test/language/identifiers/other_id_start-escaped.js:
-  default: "SyntaxError: Invalid unicode escape in identifier: '\\u2118'"
-  strict mode: "SyntaxError: Invalid unicode escape in identifier: '\\u2118'"
-test/language/identifiers/other_id_start.js:
-  default: "SyntaxError: Invalid character '\\u2118'"
-  strict mode: "SyntaxError: Invalid character '\\u2118'"
 test/language/identifiers/val-yield-strict.js:
   default: 'Test262: This statement should not be evaluated.'
   strict mode: "SyntaxError: Cannot use 'yield' as a variable name in strict mode."
-test/language/identifiers/vertical-tilde-continue-escaped.js:
-  default: 'Test262: This statement should not be evaluated.'
-  strict mode: 'Test262: This statement should not be evaluated.'
-test/language/identifiers/vertical-tilde-continue.js:
-  default: 'Test262: This statement should not be evaluated.'
-  strict mode: 'Test262: This statement should not be evaluated.'
-test/language/identifiers/vertical-tilde-start-escaped.js:
-  default: 'Test262: This statement should not be evaluated.'
-  strict mode: 'Test262: This statement should not be evaluated.'
-test/language/identifiers/vertical-tilde-start.js:
-  default: 'Test262: This statement should not be evaluated.'
-  strict mode: 'Test262: This statement should not be evaluated.'
 test/language/literals/numeric/numeric-separator-literal-bil-bd-nsl-bd.js:
   default: 'SyntaxError: No space between binary literal and identifier'
   strict mode: 'SyntaxError: No space between binary literal and identifier'

Modified: trunk/JSTests/test262.yaml (239558 => 239559)


--- trunk/JSTests/test262.yaml	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/JSTests/test262.yaml	2018-12-30 17:38:56 UTC (rev 239559)
@@ -89044,21 +89044,21 @@
 - path: test262/test/language/identifier-resolution/unscopables.js
   cmd: runTest262 :normal, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
 - path: test262/test/language/identifiers/other_id_continue-escaped.js
-  cmd: runTest262 :fail, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], []
 - path: test262/test/language/identifiers/other_id_continue-escaped.js
-  cmd: runTest262 :fail, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
 - path: test262/test/language/identifiers/other_id_continue.js
-  cmd: runTest262 :fail, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], []
 - path: test262/test/language/identifiers/other_id_continue.js
-  cmd: runTest262 :fail, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
 - path: test262/test/language/identifiers/other_id_start-escaped.js
-  cmd: runTest262 :fail, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], []
 - path: test262/test/language/identifiers/other_id_start-escaped.js
-  cmd: runTest262 :fail, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
 - path: test262/test/language/identifiers/other_id_start.js
-  cmd: runTest262 :fail, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], []
 - path: test262/test/language/identifiers/other_id_start.js
-  cmd: runTest262 :fail, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
 - path: test262/test/language/identifiers/part-digits-via-escape-hex.js
   cmd: runTest262 :normal, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], []
 - path: test262/test/language/identifiers/part-digits-via-escape-hex.js
@@ -89598,21 +89598,21 @@
 - path: test262/test/language/identifiers/vals-rus-alpha-upper.js
   cmd: runTest262 :normal, "NoException", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
 - path: test262/test/language/identifiers/vertical-tilde-continue-escaped.js
-  cmd: runTest262 :fail, "SyntaxError", ["../../../harness/assert.js", "../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "SyntaxError", ["../../../harness/assert.js", "../../../harness/sta.js"], []
 - path: test262/test/language/identifiers/vertical-tilde-continue-escaped.js
-  cmd: runTest262 :fail, "SyntaxError", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "SyntaxError", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
 - path: test262/test/language/identifiers/vertical-tilde-continue.js
-  cmd: runTest262 :fail, "SyntaxError", ["../../../harness/assert.js", "../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "SyntaxError", ["../../../harness/assert.js", "../../../harness/sta.js"], []
 - path: test262/test/language/identifiers/vertical-tilde-continue.js
-  cmd: runTest262 :fail, "SyntaxError", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "SyntaxError", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
 - path: test262/test/language/identifiers/vertical-tilde-start-escaped.js
-  cmd: runTest262 :fail, "SyntaxError", ["../../../harness/assert.js", "../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "SyntaxError", ["../../../harness/assert.js", "../../../harness/sta.js"], []
 - path: test262/test/language/identifiers/vertical-tilde-start-escaped.js
-  cmd: runTest262 :fail, "SyntaxError", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "SyntaxError", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
 - path: test262/test/language/identifiers/vertical-tilde-start.js
-  cmd: runTest262 :fail, "SyntaxError", ["../../../harness/assert.js", "../../../harness/sta.js"], []
+  cmd: runTest262 :normal, "SyntaxError", ["../../../harness/assert.js", "../../../harness/sta.js"], []
 - path: test262/test/language/identifiers/vertical-tilde-start.js
-  cmd: runTest262 :fail, "SyntaxError", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
+  cmd: runTest262 :normal, "SyntaxError", ["../../../harness/assert.js", "../../../harness/sta.js"], [:strict]
 - path: test262/test/language/import/dup-bound-names.js
   cmd: runTest262 :normal, "SyntaxError", ["../../../harness/assert.js", "../../../harness/sta.js"], [:module]
 - path: test262/test/language/import/escaped-as-import-specifier.js

Modified: trunk/LayoutTests/ChangeLog (239558 => 239559)


--- trunk/LayoutTests/ChangeLog	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/ChangeLog	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,3 +1,39 @@
+2018-12-30  Ross Kirsling  <ross.kirsl...@sony.com>
+
+        [JSC] Identifier validity should be based on ID_Start / ID_Continue properties
+        https://bugs.webkit.org/show_bug.cgi?id=193050
+
+        Reviewed by Yusuke Suzuki.
+
+        * sputnik/Unicode/Unicode_218/S7.6_A1.1_T2-expected.txt:
+        * sputnik/Unicode/Unicode_218/S7.6_A1.1_T6-expected.txt:
+        * sputnik/Unicode/Unicode_218/S7.6_A5.2_T2-expected.txt:
+        * sputnik/Unicode/Unicode_218/S7.6_A5.2_T6-expected.txt:
+        * sputnik/Unicode/Unicode_218/S7.6_A5.3_T1-expected.txt:
+        * sputnik/Unicode/Unicode_218/S7.6_A5.3_T2-expected.txt:
+        * sputnik/Unicode/Unicode_320/S7.6_A1.1_T6-expected.txt:
+        * sputnik/Unicode/Unicode_320/S7.6_A2.3-expected.txt:
+        * sputnik/Unicode/Unicode_320/S7.6_A3.1-expected.txt:
+        * sputnik/Unicode/Unicode_320/S7.6_A5.2_T6-expected.txt:
+        * sputnik/Unicode/Unicode_320/S7.6_A5.2_T9-expected.txt:
+        * sputnik/Unicode/Unicode_320/S7.6_A5.3_T1-expected.txt:
+        * sputnik/Unicode/Unicode_320/S7.6_A5.3_T2-expected.txt:
+        * sputnik/Unicode/Unicode_410/S7.6_A1.1_T6-expected.txt:
+        * sputnik/Unicode/Unicode_410/S7.6_A3.1-expected.txt:
+        * sputnik/Unicode/Unicode_410/S7.6_A5.2_T6-expected.txt:
+        * sputnik/Unicode/Unicode_410/S7.6_A5.3_T1-expected.txt:
+        * sputnik/Unicode/Unicode_410/S7.6_A5.3_T2-expected.txt:
+        * sputnik/Unicode/Unicode_500/S7.6_A1.1_T6-expected.txt:
+        * sputnik/Unicode/Unicode_500/S7.6_A3.1-expected.txt:
+        * sputnik/Unicode/Unicode_500/S7.6_A5.2_T6-expected.txt:
+        * sputnik/Unicode/Unicode_500/S7.6_A5.3_T1-expected.txt:
+        * sputnik/Unicode/Unicode_500/S7.6_A5.3_T2-expected.txt:
+        * sputnik/Unicode/Unicode_510/S7.6_A1.1_T4-expected.txt:
+        * sputnik/Unicode/Unicode_510/S7.6_A1.1_T6-expected.txt:
+        * sputnik/Unicode/Unicode_510/S7.6_A5.2_T4-expected.txt:
+        * sputnik/Unicode/Unicode_510/S7.6_A5.2_T6-expected.txt:
+        Update expectations for outdated tests.
+
 2018-12-23  Carlos Garcia Campos  <cgar...@igalia.com>
 
         Unreviewed GTK+ gardening. Rebaseline fast/text/zero-font-size.html after r239539.

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T2-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T2-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T2-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A1.1_T2
 
-FAIL SputnikError: #2118 
+PASS 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T6-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T6-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T6-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A1.1_T6
 
-FAIL SputnikError: #2160 
+PASS 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T2-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T2-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T2-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A5.2_T2
 
-FAIL SputnikError: #2118 
+PASS 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T6-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T6-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T6-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A5.2_T6
 
-FAIL SputnikError: #2160 
+PASS 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.3_T1-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.3_T1-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.3_T1-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A5.3_T1
 
-FAIL SputnikError: #01F6-01F9 
+FAIL SputnikError: #00B7 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.3_T2-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.3_T2-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.3_T2-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A5.3_T2
 
-FAIL SputnikError: #01F6-01F9 
+FAIL SputnikError: #00B7 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T6-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T6-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T6-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A1.1_T6
 
-FAIL SputnikError: #16EE 
+PASS 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A2.3-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A2.3-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A2.3-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A2.3
 
-FAIL SputnikError: #1369 
+PASS 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A3.1-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A3.1-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A3.1-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A3.1
 
-FAIL SputnikError: #0221 
+FAIL SputnikError: #00B7 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T6-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T6-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T6-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A5.2_T6
 
-FAIL SputnikError: #16EE 
+PASS 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T9-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T9-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T9-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A5.2_T9
 
-FAIL SputnikError: #1369 
+PASS 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.3_T1-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.3_T1-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.3_T1-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A5.3_T1
 
-FAIL SputnikError: #0221 
+FAIL SputnikError: #00B7 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.3_T2-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.3_T2-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.3_T2-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A5.3_T2
 
-FAIL SputnikError: #0221 
+FAIL SputnikError: #00B7 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T6-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T6-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T6-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A1.1_T6
 
-FAIL SputnikError: #16EE 
+PASS 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A3.1-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A3.1-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A3.1-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A3.1
 
-FAIL SputnikError: #0242-024F 
+FAIL SputnikError: #00B7 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T6-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T6-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T6-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A5.2_T6
 
-FAIL SputnikError: #16EE 
+PASS 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.3_T1-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.3_T1-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.3_T1-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A5.3_T1
 
-FAIL SputnikError: #0242-024F 
+FAIL SputnikError: #00B7 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.3_T2-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.3_T2-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.3_T2-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A5.3_T2
 
-FAIL SputnikError: #0242-024F 
+FAIL SputnikError: #00B7 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T6-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T6-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T6-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A1.1_T6
 
-FAIL SputnikError: #16EE 
+PASS 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A3.1-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A3.1-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A3.1-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A3.1
 
-FAIL SputnikError: #02EC 
+FAIL SputnikError: #00B7 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T6-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T6-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T6-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A5.2_T6
 
-FAIL SputnikError: #16EE 
+PASS 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.3_T1-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.3_T1-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.3_T1-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A5.3_T1
 
-FAIL SputnikError: #02EC 
+FAIL SputnikError: #00B7 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.3_T2-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.3_T2-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.3_T2-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A5.3_T2
 
-FAIL SputnikError: #02EC 
+FAIL SputnikError: #00B7 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T4-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T4-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T4-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A1.1_T4
 
-PASS 
+FAIL SputnikError: #2E2F 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T6-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T6-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T6-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A1.1_T6
 
-FAIL SputnikError: #16EE 
+PASS 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T4-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T4-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T4-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A5.2_T4
 
-PASS 
+FAIL SputnikError: #2E2F 
 
 TEST COMPLETE
 

Modified: trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T6-expected.txt (239558 => 239559)


--- trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T6-expected.txt	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T6-expected.txt	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,6 +1,6 @@
 S7.6_A5.2_T6
 
-FAIL SputnikError: #16EE 
+PASS 
 
 TEST COMPLETE
 

Modified: trunk/Source/_javascript_Core/ChangeLog (239558 => 239559)


--- trunk/Source/_javascript_Core/ChangeLog	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-12-30 17:38:56 UTC (rev 239559)
@@ -1,3 +1,25 @@
+2018-12-30  Ross Kirsling  <ross.kirsl...@sony.com>
+
+        [JSC] Identifier validity should be based on ID_Start / ID_Continue properties
+        https://bugs.webkit.org/show_bug.cgi?id=193050
+
+        Reviewed by Yusuke Suzuki.
+
+        From https://tc39.github.io/ecma262/#sec-names-and-keywords:
+            UnicodeIDStart::
+                any Unicode code point with the Unicode property "ID_Start"
+            UnicodeIDContinue::
+                any Unicode code point with the Unicode property "ID_Continue"
+
+        * parser/Lexer.cpp:
+        (JSC::Lexer<T>::Lexer):
+        (JSC::isNonLatin1IdentStart):
+        (JSC::isNonLatin1IdentPart):
+        (JSC::isIdentPart):
+        (JSC::Lexer<T>::lex):
+        Ensure identifier start / part is based on ID_Start / ID_Continue.
+        (Implies a special case for U+00B7, which is Latin-1 but Other_ID_Continue.)
+
 2018-12-28  Yusuke Suzuki  <yusukesuz...@slowstart.org>
 
         [JSC] Remove one indirection in JSObject::toStringName

Modified: trunk/Source/_javascript_Core/parser/Lexer.cpp (239558 => 239559)


--- trunk/Source/_javascript_Core/parser/Lexer.cpp	2018-12-29 05:50:04 UTC (rev 239558)
+++ trunk/Source/_javascript_Core/parser/Lexer.cpp	2018-12-30 17:38:56 UTC (rev 239559)
@@ -57,6 +57,10 @@
     CharacterZero,
     CharacterNumber,
 
+    // For single-byte characters grandfathered into Other_ID_Continue -- namely just U+00B7 MIDDLE DOT.
+    // (http://unicode.org/reports/tr31/#Backward_Compatibility)
+    CharacterOtherIdentifierPart,
+
     CharacterInvalid,
     CharacterLineTerminator,
     CharacterExclamationMark,
@@ -278,7 +282,7 @@
 /* 180 - Sk category        */ CharacterInvalid,
 /* 181 - Ll category        */ CharacterIdentifierStart,
 /* 182 - So category        */ CharacterInvalid,
-/* 183 - Po category        */ CharacterInvalid,
+/* 183 - Po category        */ CharacterOtherIdentifierPart,
 /* 184 - Sk category        */ CharacterInvalid,
 /* 185 - No category        */ CharacterInvalid,
 /* 186 - Ll category        */ CharacterIdentifierStart,
@@ -727,7 +731,7 @@
 
 static NEVER_INLINE bool isNonLatin1IdentStart(UChar c)
 {
-    return U_GET_GC_MASK(c) & U_GC_L_MASK;
+    return u_hasBinaryProperty(c, UCHAR_ID_START);
 }
 
 static ALWAYS_INLINE bool isLatin1(LChar)
@@ -757,16 +761,15 @@
 
 static NEVER_INLINE bool isNonLatin1IdentPart(UChar32 c)
 {
-    // FIXME: ES6 says this should be based on the Unicode property ID_Continue now instead.
-    return (U_GET_GC_MASK(c) & (U_GC_L_MASK | U_GC_MN_MASK | U_GC_MC_MASK | U_GC_ND_MASK | U_GC_PC_MASK)) || c == 0x200C || c == 0x200D;
+    return u_hasBinaryProperty(c, UCHAR_ID_CONTINUE) || c == 0x200C || c == 0x200D;
 }
 
 static ALWAYS_INLINE bool isIdentPart(LChar c)
 {
     // Character types are divided into two groups depending on whether they can be part of an
-    // identifier or not. Those whose type value is less or equal than CharacterNumber can be
+    // identifier or not. Those whose type value is less or equal than CharacterOtherIdentifierPart can be
     // part of an identifier. (See the CharacterType definition for more details.)
-    return typesOfLatin1Characters[c] <= CharacterNumber;
+    return typesOfLatin1Characters[c] <= CharacterOtherIdentifierPart;
 }
 
 static ALWAYS_INLINE bool isIdentPart(UChar32 c)
@@ -2312,6 +2315,7 @@
             goto parseIdent;
 
         FALLTHROUGH;
+    case CharacterOtherIdentifierPart:
     case CharacterInvalid:
         m_lexErrorMessage = invalidCharacterMessage();
         token = ERRORTOK;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to