mirror of https://github.com/tc39/test262.git
53 lines
1.2 KiB
JavaScript
53 lines
1.2 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 )
|
|
...
|
|
6. If script is not undefined, then
|
|
a. If script does not match the script production, throw a RangeError exception.
|
|
...
|
|
|
|
features: [Intl.Locale]
|
|
---*/
|
|
|
|
/*
|
|
script = 4ALPHA ; ISO 15924 code
|
|
*/
|
|
const invalidScriptOptions = [
|
|
"",
|
|
"a",
|
|
"ab",
|
|
"abc",
|
|
"abc7",
|
|
"notascript",
|
|
"undefined",
|
|
"Bal\u0130",
|
|
"Bal\u0131",
|
|
|
|
// Value contains more than just the 'script' production.
|
|
"ary-Arab",
|
|
"Latn-SA",
|
|
"Latn-vaidika",
|
|
"Latn-a-asdf",
|
|
"Latn-x-private",
|
|
|
|
7,
|
|
];
|
|
for (const script of invalidScriptOptions) {
|
|
assert.throws(RangeError, function() {
|
|
new Intl.Locale("en", {script});
|
|
}, `new Intl.Locale("en", {script: "${script}"}) throws RangeError`);
|
|
}
|