Source code

Revision control

Copy as Markdown

Other Tools

// Copyright 2020 André Bargull. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-apply-options-to-tag
description: >
ApplyOptionsToTag canonicalises the language tag two times.
info: |
10.1.1 ApplyOptionsToTag( tag, options )
...
9. Set tag to CanonicalizeUnicodeLocaleId(tag).
10. If language is not undefined,
...
b. Set tag to tag with the substring corresponding to the unicode_language_subtag
production of the unicode_language_id replaced by the string language.
...
13. Return CanonicalizeUnicodeLocaleId(tag).
features: [Intl.Locale]
---*/
// ApplyOptionsToTag canonicalises the locale identifier before applying the
// options. That means "und-Armn-SU" is first canonicalised to "und-Armn-AM",
// then the language is changed to "ru". If "ru" were applied first, the result
// would be "ru-Armn-RU" instead.
assert.sameValue(new Intl.Locale("und-Armn-SU", {language: "ru"}).toString(), "ru-Armn-AM");
reportCompare(0, 0);