summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/Intl/getCanonicalLocales-weird-cases.js
blob: d67fda355fecac2617016c0dd01221947891db45 (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
// |reftest| skip-if(!this.hasOwnProperty("Intl"))
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

// Locale processing is supposed to internally remove any Unicode extension
// sequences in the locale.  Test that various weird testcases invoking
// algorithmic edge cases don't assert or throw exceptions.

var weirdCases =
  [
   "en-x-u-foo",
   "en-a-bar-x-u-foo",
   "en-x-u-foo-a-bar",
   "en-a-bar-u-baz-x-u-foo",
  ];

for (let weird of weirdCases)
  assertEqArray(Intl.getCanonicalLocales(weird), [weird]);

assertThrowsInstanceOf(() => Intl.getCanonicalLocales("x-u-foo"), RangeError);

if (typeof reportCompare === 'function')
    reportCompare(0, 0);