We're updating the issue view to help you get more done. 

icu::Locale::forLanguageTag should not canonicalize uz-UZ-cyrillic into uz-Cyrl-UZ

Description

This bug break the v8 implementation of Intl.Locale on test262 unit test
https://github.com/tc39/test262/blob/master/test/intl402/Locale/constructor-non-iana-canon.js

The test expect
"uz-UZ-cyrillic" maximized to "uz-Latn-UZ-cyrillic" and minimized to "uz-cyrillic"

Not sure this is a dup of
https://unicode-org.atlassian.net/browse/ICU-20187 or not but surely related.

But ICU forLanguageTag canonicalize uz-UZ-cyrillic into uz-Cyrl-UZ.

cyrillic is well-formed variant and I cannot find it with a preferred value to change it to uz-Cyrl-UZ

the code change it is in
static const CanonicalizationMap CANONICALIZE_MAP[] = {
{ "uz_UZ_CYRILLIC", "uz_Cyrl_UZ", NULL, NULL }, /* Linux name */
https://github.com/unicode-org/icu/blob/b12a927c9365bb38831afbf76fdd0999f8f33deb/icu4c/source/common/uloc.cpp

Environment

Status

Assignee

Markus Scherer

Reporter

Frank Yung-Fong Tang

Labels

Fix versions

Priority

minor