Title: [268318] trunk
- Revision
- 268318
- Author
- ysuz...@apple.com
- Date
- 2020-10-11 03:26:11 -0700 (Sun, 11 Oct 2020)
Log Message
[JSC] LowerCase when LanguageTag checks duplicate variants
https://bugs.webkit.org/show_bug.cgi?id=217571
Reviewed by Ross Kirsling.
JSTests:
* stress/intl-language-tag.js:
Source/_javascript_Core:
Since Unicode LanguageTag is case insensitive, we need to recognize "VARIANT0" and "variant0" are the same language tag variants.
To achieve that, we perform toASCIILower when computing VariantCode.
* runtime/IntlObject.cpp:
(JSC::parseVariantCode):
Modified Paths
Diff
Modified: trunk/JSTests/ChangeLog (268317 => 268318)
--- trunk/JSTests/ChangeLog 2020-10-11 08:48:50 UTC (rev 268317)
+++ trunk/JSTests/ChangeLog 2020-10-11 10:26:11 UTC (rev 268318)
@@ -1,3 +1,12 @@
+2020-10-11 Yusuke Suzuki <ysuz...@apple.com>
+
+ [JSC] LowerCase when LanguageTag checks duplicate variants
+ https://bugs.webkit.org/show_bug.cgi?id=217571
+
+ Reviewed by Ross Kirsling.
+
+ * stress/intl-language-tag.js:
+
2020-10-07 Ross Kirsling <ross.kirsl...@sony.com>
[JSC] Revert String.prototype.item
Modified: trunk/JSTests/stress/intl-language-tag.js (268317 => 268318)
--- trunk/JSTests/stress/intl-language-tag.js 2020-10-11 08:48:50 UTC (rev 268317)
+++ trunk/JSTests/stress/intl-language-tag.js 2020-10-11 10:26:11 UTC (rev 268318)
@@ -96,4 +96,15 @@
shouldThrow(() => Intl.getCanonicalLocales("en-US-t-en-GB-a0-000-a1"), RangeError);
shouldThrow(() => Intl.getCanonicalLocales("en-US-t-en-GB-a0-a1"), RangeError);
shouldThrow(() => Intl.getCanonicalLocales("en-US-t-en-GBBBBBBBBBB"), RangeError);
+
+shouldThrow(() => Intl.getCanonicalLocales("en-US-variant0-variant0"), RangeError);
+shouldThrow(() => Intl.getCanonicalLocales("en-US-Variant0-variant0"), RangeError);
+shouldThrow(() => Intl.getCanonicalLocales("en-US-VARIANt0-VARIANT0"), RangeError);
+shouldThrow(() => Intl.getCanonicalLocales("en-US-variant0-testing-variant0"), RangeError);
+shouldThrow(() => Intl.getCanonicalLocales("en-US-Variant0-testing-variant0"), RangeError);
+
shouldThrow(() => Intl.getCanonicalLocales("en-US-t-en-GB-variant0-variant0"), RangeError);
+shouldThrow(() => Intl.getCanonicalLocales("en-US-t-en-GB-Variant0-variant0"), RangeError);
+shouldThrow(() => Intl.getCanonicalLocales("en-US-t-en-GB-VARIANt0-VARIANT0"), RangeError);
+shouldThrow(() => Intl.getCanonicalLocales("en-US-t-en-GB-variant0-testing-variant0"), RangeError);
+shouldThrow(() => Intl.getCanonicalLocales("en-US-t-en-GB-Variant0-testing-variant0"), RangeError);
Modified: trunk/Source/_javascript_Core/ChangeLog (268317 => 268318)
--- trunk/Source/_javascript_Core/ChangeLog 2020-10-11 08:48:50 UTC (rev 268317)
+++ trunk/Source/_javascript_Core/ChangeLog 2020-10-11 10:26:11 UTC (rev 268318)
@@ -1,3 +1,16 @@
+2020-10-11 Yusuke Suzuki <ysuz...@apple.com>
+
+ [JSC] LowerCase when LanguageTag checks duplicate variants
+ https://bugs.webkit.org/show_bug.cgi?id=217571
+
+ Reviewed by Ross Kirsling.
+
+ Since Unicode LanguageTag is case insensitive, we need to recognize "VARIANT0" and "variant0" are the same language tag variants.
+ To achieve that, we perform toASCIILower when computing VariantCode.
+
+ * runtime/IntlObject.cpp:
+ (JSC::parseVariantCode):
+
2020-10-09 Yusuke Suzuki <ysuz...@apple.com>
[JSC] Assert Operation and HostFunction are in JITOperationsList
Modified: trunk/Source/_javascript_Core/runtime/IntlObject.cpp (268317 => 268318)
--- trunk/Source/_javascript_Core/runtime/IntlObject.cpp 2020-10-11 08:48:50 UTC (rev 268317)
+++ trunk/Source/_javascript_Core/runtime/IntlObject.cpp 2020-10-11 10:26:11 UTC (rev 268318)
@@ -1015,7 +1015,7 @@
static_assert(sizeof(VariantCode) == sizeof(Code));
Code code { };
for (unsigned index = 0; index < string.length(); ++index)
- code.characters[index] = string[index];
+ code.characters[index] = toASCIILower(string[index]);
VariantCode result = bitwise_cast<VariantCode>(code);
ASSERT(result); // Not possible since some characters exist.
ASSERT(result != static_cast<VariantCode>(-1)); // Not possible since all characters are ASCII (not Latin-1).
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes