v8/test/intl
Jungshik Shin f24b575d6c Fix canonicalization of grandfathered tags
ICU maps a few grandfathered tags to made-up values even when there
is no preferred value entry in the IANA language tag registry. [1]

1. Check for grandfathered tags without preferred value upfront
   and return them as they're.
2. Lowercase the input before structural validity check to simplify
   check for grandfathered tag without preferred value as well
   as regexps used in the structural validity check.

intl/general/grandfathered_tags_without_preferred_value is added and
intl/general/language_tags_with_preferred_values is changed to check
for case-insensitive matching of grandfathered tags.

[1] https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry

Bug: v8:7669
Test: test262/intl402/Intl/getCanonicalLocales/preferred-grandfathered
Test: intl/general/grandfathered_tags_without_preferred_value
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: Ie0520de8712928300fd71fe152909789483ec256
Reviewed-on: https://chromium-review.googlesource.com/1156529
Commit-Queue: Jungshik Shin <jshin@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54829}
2018-07-31 23:49:45 +00:00
..
break-iterator [intl] Fix default Intl language tag handling 2018-04-21 13:16:20 +00:00
collator [intl] Fix default Intl language tag handling 2018-04-21 13:16:20 +00:00
date-format TimeClip before formatting in Intl.DateTimeFormat 2018-04-25 20:17:29 +00:00
general Fix canonicalization of grandfathered tags 2018-07-31 23:49:45 +00:00
list-format [Intl] Intl.ListFromat - add resolvedOptions(). 2018-07-25 05:25:44 +00:00
locale [Intl] prototype Intl.Locale.prototype.maximize/minimize 2018-07-18 12:48:12 +00:00
number-format Roll ICU to ICU 62.1 2018-07-11 10:24:26 +00:00
overrides Revert "Make intl/overrides/caching.js more 'robust'" 2017-11-13 19:13:13 +00:00
relative-time-format [Intl] Update NumberFormat setting changes RelativeTimeFormat 2018-07-30 21:06:58 +00:00
string Ensure String.prototype.normalize.length is 0 2015-08-05 15:13:45 +00:00
assert.js [intl] Fix default Intl language tag handling 2018-04-21 13:16:20 +00:00
bad-target.js [intl] Remove redundant type checking system 2017-01-09 22:24:57 +00:00
BUILD.gn [build] Add data deps for d8 test suites 2018-03-26 13:44:58 +00:00
intl.status [Intl] Implement Intl.RelativeTimeFormat.prototype.resolvedOptions 2018-07-10 14:24:26 +00:00
not-constructors.js [intl] Remove new.target check in Intl functions and method 2016-12-20 16:06:19 +00:00
OWNERS Add COMPONENT tags to OWNERS files where appropriate 2017-05-22 10:15:28 +00:00
regexp-assert.js [regexp, intl] Intl should not cause side effects to the RegExp object. 2016-03-29 11:57:03 +00:00
regexp-prepare.js [regexp, intl] Intl should not cause side effects to the RegExp object. 2016-03-29 11:57:03 +00:00
regress-4870.js Use stricter type checks in Intl's bound methods 2016-05-18 14:57:58 +00:00
regress-5179.js Avoid calling the builtin String.prototype.split in Intl 2016-07-08 16:53:09 +00:00
testcfg.py [Intl] Implement Intl.RelativeTimeFormat.prototype.resolvedOptions 2018-07-10 14:24:26 +00:00
toStringTag.js [intl] Create the Intl constructors to C++ 2016-12-27 17:10:00 +00:00
utils.js Import intl test suite from v8-i18n project 2013-07-10 10:49:04 +00:00