mirror of https://github.com/tc39/test262.git
44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
|
// Copyright (C) 2021 André Bargull. All rights reserved.
|
||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||
|
|
||
|
/*---
|
||
|
esid: sec-intl.supportedvaluesof
|
||
|
description: >
|
||
|
Intl.supportedValuesOf throws a RangeError if the key is invalid.
|
||
|
info: |
|
||
|
Intl.supportedValuesOf ( key )
|
||
|
|
||
|
1. Let key be ? ToString(key).
|
||
|
...
|
||
|
8. Else,
|
||
|
a. Throw a RangeError exception.
|
||
|
...
|
||
|
features: [Intl-enumeration]
|
||
|
---*/
|
||
|
|
||
|
const invalidKeys = [
|
||
|
// Empty string is invalid.
|
||
|
"",
|
||
|
|
||
|
// Various unsupported keys.
|
||
|
"hourCycle", "locale", "language", "script", "region",
|
||
|
|
||
|
// Plural form of supported keys not valid.
|
||
|
"calendars", "collations", "currencies", "numberingSystems", "timeZones", "units",
|
||
|
|
||
|
// Wrong case for supported keys.
|
||
|
"CALENDAR", "Collation", "Currency", "numberingsystem", "timezone", "UNIT",
|
||
|
|
||
|
// NUL character must be handled correctly.
|
||
|
"calendar\0",
|
||
|
|
||
|
// Non-string cases.
|
||
|
undefined, null, false, true, NaN, 0, Math.PI, 123n, {}, [],
|
||
|
];
|
||
|
|
||
|
for (let key of invalidKeys) {
|
||
|
assert.throws(RangeError, function() {
|
||
|
Intl.supportedValuesOf(key);
|
||
|
}, "key: " + key);
|
||
|
}
|