Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(460)

Unified Diff: test/unittests/char-predicates-unittest.cc

Issue 2331303002: Use ICU for ID_START and ID_CONTINUE for Unicode 9 data (Closed)
Patch Set: drop an unnecessary todo Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/v8.gyp ('k') | test/webkit/ToNumber.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/unittests/char-predicates-unittest.cc
diff --git a/test/unittests/char-predicates-unittest.cc b/test/unittests/char-predicates-unittest.cc
index a34e3a168008e6546d28de7f1ec2ef71f8abe76d..3c6cf5d6a6f897c82dcf63e13a9674ed9055607e 100644
--- a/test/unittests/char-predicates-unittest.cc
+++ b/test/unittests/char-predicates-unittest.cc
@@ -10,32 +10,40 @@ namespace v8 {
namespace internal {
TEST(CharPredicatesTest, WhiteSpace) {
- // As of Unicode 6.3.0, \u180E is no longer a white space. We still consider
- // it to be one though, since JS recognizes all white spaces in Unicode 5.1.
EXPECT_TRUE(WhiteSpace::Is(0x0009));
EXPECT_TRUE(WhiteSpace::Is(0x000B));
EXPECT_TRUE(WhiteSpace::Is(0x000C));
EXPECT_TRUE(WhiteSpace::Is(' '));
EXPECT_TRUE(WhiteSpace::Is(0x00A0));
+ EXPECT_TRUE(WhiteSpace::Is(0x1680));
+ EXPECT_TRUE(WhiteSpace::Is(0x2000));
+ EXPECT_TRUE(WhiteSpace::Is(0x2007));
+ EXPECT_TRUE(WhiteSpace::Is(0x202F));
+ EXPECT_TRUE(WhiteSpace::Is(0x205F));
+ EXPECT_TRUE(WhiteSpace::Is(0x3000));
EXPECT_TRUE(WhiteSpace::Is(0xFEFF));
+ EXPECT_FALSE(WhiteSpace::Is(0x180E));
}
TEST(CharPredicatesTest, WhiteSpaceOrLineTerminator) {
- // As of Unicode 6.3.0, \u180E is no longer a white space. We still consider
- // it to be one though, since JS recognizes all white spaces in Unicode 5.1.
- // White spaces
EXPECT_TRUE(WhiteSpaceOrLineTerminator::Is(0x0009));
EXPECT_TRUE(WhiteSpaceOrLineTerminator::Is(0x000B));
EXPECT_TRUE(WhiteSpaceOrLineTerminator::Is(0x000C));
EXPECT_TRUE(WhiteSpaceOrLineTerminator::Is(' '));
EXPECT_TRUE(WhiteSpaceOrLineTerminator::Is(0x00A0));
+ EXPECT_TRUE(WhiteSpaceOrLineTerminator::Is(0x1680));
+ EXPECT_TRUE(WhiteSpaceOrLineTerminator::Is(0x2000));
+ EXPECT_TRUE(WhiteSpaceOrLineTerminator::Is(0x2007));
+ EXPECT_TRUE(WhiteSpaceOrLineTerminator::Is(0x202F));
+ EXPECT_TRUE(WhiteSpaceOrLineTerminator::Is(0x205F));
EXPECT_TRUE(WhiteSpaceOrLineTerminator::Is(0xFEFF));
// Line terminators
EXPECT_TRUE(WhiteSpaceOrLineTerminator::Is(0x000A));
EXPECT_TRUE(WhiteSpaceOrLineTerminator::Is(0x000D));
EXPECT_TRUE(WhiteSpaceOrLineTerminator::Is(0x2028));
EXPECT_TRUE(WhiteSpaceOrLineTerminator::Is(0x2029));
+ EXPECT_FALSE(WhiteSpaceOrLineTerminator::Is(0x180E));
}
@@ -45,7 +53,11 @@ TEST(CharPredicatesTest, IdentifierStart) {
EXPECT_TRUE(IdentifierStart::Is('\\'));
// http://www.unicode.org/reports/tr31/
+ // curl http://www.unicode.org/Public/UCD/latest/ucd/PropList.txt |
+ // grep 'Other_ID_Start'
// Other_ID_Start
+ EXPECT_TRUE(IdentifierStart::Is(0x1885));
+ EXPECT_TRUE(IdentifierStart::Is(0x1886));
EXPECT_TRUE(IdentifierStart::Is(0x2118));
EXPECT_TRUE(IdentifierStart::Is(0x212E));
EXPECT_TRUE(IdentifierStart::Is(0x309B));
@@ -53,7 +65,27 @@ TEST(CharPredicatesTest, IdentifierStart) {
// Issue 2892:
// \u2E2F has the Pattern_Syntax property, excluding it from ID_Start.
- EXPECT_FALSE(unibrow::ID_Start::Is(0x2E2F));
+ EXPECT_FALSE(IdentifierStart::Is(0x2E2F));
+
+#ifdef V8_INTL_SUPPORT
+ // New in Unicode 8.0 (6,847 code points)
+ // [:ID_Start:] & [[:Age=8.0:] - [:Age=7.0:]]
+ EXPECT_TRUE(IdentifierStart::Is(0x08B3));
+ EXPECT_TRUE(IdentifierStart::Is(0x0AF9));
+ EXPECT_TRUE(IdentifierStart::Is(0x13F8));
+ EXPECT_TRUE(IdentifierStart::Is(0x9FCD));
+ EXPECT_TRUE(IdentifierStart::Is(0xAB60));
+ EXPECT_TRUE(IdentifierStart::Is(0x10CC0));
+ EXPECT_TRUE(IdentifierStart::Is(0x108E0));
+ EXPECT_TRUE(IdentifierStart::Is(0x2B820));
+
+ // New in Unicode 9.0 (7,177 code points)
+ // [:ID_Start:] & [[:Age=9.0:] - [:Age=8.0:]]
+
+ EXPECT_TRUE(IdentifierStart::Is(0x1C80));
+ EXPECT_TRUE(IdentifierStart::Is(0x104DB));
+ EXPECT_TRUE(IdentifierStart::Is(0x1E922));
+#endif
}
@@ -64,8 +96,45 @@ TEST(CharPredicatesTest, IdentifierPart) {
EXPECT_TRUE(IdentifierPart::Is(0x200C));
EXPECT_TRUE(IdentifierPart::Is(0x200D));
+#ifdef V8_INTL_SUPPORT
+ // New in Unicode 8.0 (6,847 code points)
+ // [:ID_Start:] & [[:Age=8.0:] - [:Age=7.0:]]
+ EXPECT_TRUE(IdentifierPart::Is(0x08B3));
+ EXPECT_TRUE(IdentifierPart::Is(0x0AF9));
+ EXPECT_TRUE(IdentifierPart::Is(0x13F8));
+ EXPECT_TRUE(IdentifierPart::Is(0x9FCD));
+ EXPECT_TRUE(IdentifierPart::Is(0xAB60));
+ EXPECT_TRUE(IdentifierPart::Is(0x10CC0));
+ EXPECT_TRUE(IdentifierPart::Is(0x108E0));
+ EXPECT_TRUE(IdentifierPart::Is(0x2B820));
+
+ // [[:ID_Continue:]-[:ID_Start:]] & [[:Age=8.0:]-[:Age=7.0:]]
+ // 162 code points
+ EXPECT_TRUE(IdentifierPart::Is(0x08E3));
+ EXPECT_TRUE(IdentifierPart::Is(0xA69E));
+ EXPECT_TRUE(IdentifierPart::Is(0x11730));
+
+ // New in Unicode 9.0 (7,177 code points)
+ // [:ID_Start:] & [[:Age=9.0:] - [:Age=8.0:]]
+ EXPECT_TRUE(IdentifierPart::Is(0x1C80));
+ EXPECT_TRUE(IdentifierPart::Is(0x104DB));
+ EXPECT_TRUE(IdentifierPart::Is(0x1E922));
+
+ // [[:ID_Continue:]-[:ID_Start:]] & [[:Age=9.0:]-[:Age=8.0:]]
+ // 162 code points
+ EXPECT_TRUE(IdentifierPart::Is(0x08D4));
+ EXPECT_TRUE(IdentifierPart::Is(0x1DFB));
+ EXPECT_TRUE(IdentifierPart::Is(0xA8C5));
+ EXPECT_TRUE(IdentifierPart::Is(0x11450));
+#endif
+
// http://www.unicode.org/reports/tr31/
+ // curl http://www.unicode.org/Public/UCD/latest/ucd/PropList.txt |
+ // grep 'Other_ID_(Continue|Start)'
+
// Other_ID_Start
+ EXPECT_TRUE(IdentifierPart::Is(0x1885));
+ EXPECT_TRUE(IdentifierPart::Is(0x1886));
EXPECT_TRUE(IdentifierPart::Is(0x2118));
EXPECT_TRUE(IdentifierPart::Is(0x212E));
EXPECT_TRUE(IdentifierPart::Is(0x309B));
@@ -98,6 +167,11 @@ TEST(CharPredicatesTest, SupplementaryPlaneIdentifiers) {
EXPECT_TRUE(IdentifierStart::Is(0x1014D)); // Category Nl
EXPECT_TRUE(IdentifierPart::Is(0x1014D));
+ // New in Unicode 8.0
+ // [ [:ID_Start=Yes:] & [:Age=8.0:]] - [:Age=7.0:]
+ EXPECT_TRUE(IdentifierStart::Is(0x108E0));
+ EXPECT_TRUE(IdentifierStart::Is(0x10C80));
+
// Only ID_Continue.
EXPECT_FALSE(IdentifierStart::Is(0x101FD)); // Category Mn
EXPECT_TRUE(IdentifierPart::Is(0x101FD));
« no previous file with comments | « src/v8.gyp ('k') | test/webkit/ToNumber.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698