// 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);