summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/intl402/Locale/constructor-apply-options-canonicalizes-twice.js
blob: e6d3f9a8b442529f9b944328720346319c48eb9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// 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);