tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

constructor-unicode-ext-valid.js (1376B)


      1 // Copyright 2018 André Bargull; Igalia, S.L. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 /*---
      5 esid: sec-intl.locale
      6 description: >
      7    Verifies canonicalization of specific tags.
      8 info: |
      9    ApplyOptionsToTag( tag, options )
     10    10. Return CanonicalizeLanguageTag(tag).
     11 features: [Intl.Locale]
     12 ---*/
     13 
     14 const validLanguageTags = {
     15    // Duplicate keywords are removed.
     16    "da-u-ca-gregory-ca-buddhist": "da-u-ca-gregory",
     17 
     18    // Keywords currently used in Intl specs are reordered in US-ASCII order.
     19    "zh-u-nu-hans-ca-chinese": "zh-u-ca-chinese-nu-hans",
     20    "zh-u-ca-chinese-nu-hans": "zh-u-ca-chinese-nu-hans",
     21 
     22    // Even keywords currently not used in Intl specs are reordered in US-ASCII order.
     23    "de-u-cu-eur-nu-latn": "de-u-cu-eur-nu-latn",
     24    "de-u-nu-latn-cu-eur": "de-u-cu-eur-nu-latn",
     25 
     26    // Attributes in Unicode extensions are reordered in US-ASCII order.
     27    "pt-u-attr-ca-gregory": "pt-u-attr-ca-gregory",
     28    "pt-u-attr1-attr2-ca-gregory": "pt-u-attr1-attr2-ca-gregory",
     29    "pt-u-attr2-attr1-ca-gregory": "pt-u-attr1-attr2-ca-gregory",
     30 };
     31 
     32 for (const [langtag, canonical] of Object.entries(validLanguageTags)) {
     33    assert.sameValue(
     34      new Intl.Locale(langtag).toString(),
     35      canonical,
     36      `new Intl.Locale("${langtag}").toString() returns "${canonical}"`
     37    );
     38 }
     39 
     40 reportCompare(0, 0);