diff options
Diffstat (limited to 'js/src/tests/test262/intl402/Locale/constructor-options-script-invalid.js')
-rw-r--r-- | js/src/tests/test262/intl402/Locale/constructor-options-script-invalid.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/js/src/tests/test262/intl402/Locale/constructor-options-script-invalid.js b/js/src/tests/test262/intl402/Locale/constructor-options-script-invalid.js new file mode 100644 index 0000000000..01141210d5 --- /dev/null +++ b/js/src/tests/test262/intl402/Locale/constructor-options-script-invalid.js @@ -0,0 +1,54 @@ +// 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`); +} + +reportCompare(0, 0); |