mirror of https://github.com/tc39/test262.git
57 lines
1.3 KiB
JavaScript
57 lines
1.3 KiB
JavaScript
// Copyright 2018 André Bargull; Igalia, S.L. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
|
|
/*---
|
|
esid: sec-intl.locale
|
|
description: >
|
|
Checks error cases for the options argument to the Locale
|
|
constructor.
|
|
info: |
|
|
Intl.Locale( tag [, options] )
|
|
10. If options is undefined, then
|
|
11. Else
|
|
a. Let options be ? ToObject(options).
|
|
12. Set tag to ? ApplyOptionsToTag(tag, options).
|
|
|
|
ApplyOptionsToTag( tag, options )
|
|
...
|
|
8. If region is not undefined, then
|
|
a. If region does not match the region production, throw a RangeError exception.
|
|
...
|
|
|
|
features: [Intl.Locale]
|
|
---*/
|
|
|
|
/*
|
|
region = 2ALPHA ; ISO 3166-1 code
|
|
/ 3DIGIT ; UN M.49 code
|
|
*/
|
|
const invalidRegionOptions = [
|
|
"",
|
|
"a",
|
|
"abc",
|
|
"a7",
|
|
|
|
// Value cannot be parsed as a 'region' production.
|
|
"notaregion",
|
|
|
|
// Value contains more than just the 'region' production.
|
|
"SA-vaidika",
|
|
"SA-a-asdf",
|
|
"SA-x-private",
|
|
|
|
// Value contains more than just the 'script' production.
|
|
"ary-Arab",
|
|
"Latn-SA",
|
|
"Latn-vaidika",
|
|
"Latn-a-asdf",
|
|
"Latn-x-private",
|
|
|
|
7,
|
|
];
|
|
for (const region of invalidRegionOptions) {
|
|
assert.throws(RangeError, function() {
|
|
new Intl.Locale("en", {region});
|
|
}, `new Intl.Locale("en", {region: "${region}"}) throws RangeError`);
|
|
}
|