aboutsummaryrefslogtreecommitdiffstats
path: root/website
diff options
context:
space:
mode:
Diffstat (limited to 'website')
-rw-r--r--website/harness/testIntl.js658
-rw-r--r--website/json/intl402.json2
-rw-r--r--website/json/testcases_intl402.json2
3 files changed, 660 insertions, 2 deletions
diff --git a/website/harness/testIntl.js b/website/harness/testIntl.js
new file mode 100644
index 000000000..251f0a2ca
--- /dev/null
+++ b/website/harness/testIntl.js
@@ -0,0 +1,658 @@
+// Copyright 2011-2012 Norbert Lindenberg. All rights reserved.
+// Copyright 2012 Mozilla Corporation. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * This file contains shared functions for the tests in the conformance test
+ * suite for the ECMAScript Internationalization API.
+ * @author Norbert Lindenberg
+ */
+
+
+/**
+ * @description Calls the provided function for every service constructor in
+ * the Intl object, until f returns a falsy value. It returns the result of the
+ * last call to f, mapped to a boolean.
+ * @param {Function} f the function to call for each service constructor in
+ * the Intl object.
+ * @param {Function} Constructor the constructor object to test with.
+ * @result {Boolean} whether the test succeeded.
+ */
+function testWithIntlConstructors(f) {
+ var constructors = ["Collator", "NumberFormat", "DateTimeFormat"];
+ return constructors.every(function (constructor) {
+ var Constructor = Intl[constructor];
+ var result;
+ try {
+ result = f(Constructor);
+ } catch (e) {
+ e.message += " (Testing with " + constructor + ".)";
+ throw e;
+ }
+ return result;
+ });
+}
+
+
+/**
+ * Returns the name of the given constructor object, which must be one of
+ * Intl.Collator, Intl.NumberFormat, or Intl.DateTimeFormat.
+ * @param {object} Constructor a constructor
+ * @return {string} the name of the constructor
+ */
+function getConstructorName(Constructor) {
+ switch (Constructor) {
+ case Intl.Collator:
+ return "Collator";
+ case Intl.NumberFormat:
+ return "NumberFormat";
+ case Intl.DateTimeFormat:
+ return "DateTimeFormat";
+ default:
+ $ERROR("test internal error: unknown Constructor");
+ }
+}
+
+
+/**
+ * Taints a named data property of the given object by installing
+ * a setter that throws an exception.
+ * @param {object} obj the object whose data property to taint
+ * @param {string} property the property to taint
+ */
+function taintDataProperty(obj, property) {
+ Object.defineProperty(obj, property, {
+ set: function(value) {
+ $ERROR("Client code can adversely affect behavior: setter for " + property + ".");
+ },
+ enumerable: false,
+ configurable: true
+ });
+}
+
+
+/**
+ * Taints a named method of the given object by replacing it with a function
+ * that throws an exception.
+ * @param {object} obj the object whose method to taint
+ * @param {string} property the name of the method to taint
+ */
+function taintMethod(obj, property) {
+ Object.defineProperty(obj, property, {
+ value: function() {
+ $ERROR("Client code can adversely affect behavior: method " + property + ".");
+ },
+ writable: true,
+ enumerable: false,
+ configurable: true
+ });
+}
+
+
+/**
+ * Taints the given properties (and similarly named properties) by installing
+ * setters on Object.prototype that throw exceptions.
+ * @param {Array} properties an array of property names to taint
+ */
+function taintProperties(properties) {
+ properties.forEach(function (property) {
+ var adaptedProperties = [property, "__" + property, "_" + property, property + "_", property + "__"];
+ adaptedProperties.forEach(function (property) {
+ taintDataProperty(Object.prototype, property);
+ });
+ });
+}
+
+
+/**
+ * Taints the Array object by creating a setter for the property "0" and
+ * replacing some key methods with functions that throw exceptions.
+ */
+function taintArray() {
+ taintDataProperty(Array.prototype, "0");
+ taintMethod(Array.prototype, "indexOf");
+ taintMethod(Array.prototype, "join");
+ taintMethod(Array.prototype, "push");
+ taintMethod(Array.prototype, "slice");
+ taintMethod(Array.prototype, "sort");
+}
+
+
+// auxiliary data for getLocaleSupportInfo
+var languages = ["zh", "es", "en", "hi", "ur", "ar", "ja", "pa"];
+var scripts = ["Latn", "Hans", "Deva", "Arab", "Jpan", "Hant"];
+var countries = ["CN", "IN", "US", "PK", "JP", "TW", "HK", "SG"];
+var localeSupportInfo = {};
+
+
+/**
+ * Gets locale support info for the given constructor object, which must be one
+ * of Intl.Collator, Intl.NumberFormat, Intl.DateTimeFormat.
+ * @param {object} Constructor the constructor for which to get locale support info
+ * @return {object} locale support info with the following properties:
+ * supported: array of fully supported language tags
+ * byFallback: array of language tags that are supported through fallbacks
+ * unsupported: array of unsupported language tags
+ */
+function getLocaleSupportInfo(Constructor) {
+ var constructorName = getConstructorName(Constructor);
+ if (localeSupportInfo[constructorName] !== undefined) {
+ return localeSupportInfo[constructorName];
+ }
+
+ var allTags = [];
+ var i, j, k;
+ var language, script, country;
+ for (i = 0; i < languages.length; i++) {
+ language = languages[i];
+ allTags.push(language);
+ for (j = 0; j < scripts.length; j++) {
+ script = scripts[j];
+ allTags.push(language + "-" + script);
+ for (k = 0; k < countries.length; k++) {
+ country = countries[k];
+ allTags.push(language + "-" + script + "-" + country);
+ }
+ }
+ for (k = 0; k < countries.length; k++) {
+ country = countries[k];
+ allTags.push(language + "-" + country);
+ }
+ }
+
+ var supported = [];
+ var byFallback = [];
+ var unsupported = [];
+ for (i = 0; i < allTags.length; i++) {
+ var request = allTags[i];
+ var result = new Constructor([request], {localeMatcher: "lookup"}).resolvedOptions().locale;
+ if (request === result) {
+ supported.push(request);
+ } else if (request.indexOf(result) === 0) {
+ byFallback.push(request);
+ } else {
+ unsupported.push(request);
+ }
+ }
+
+ localeSupportInfo[constructorName] = {
+ supported: supported,
+ byFallback: byFallback,
+ unsupported: unsupported
+ };
+
+ return localeSupportInfo[constructorName];
+}
+
+
+/**
+ * @description Tests whether locale is a String value representing a
+ * structurally valid and canonicalized BCP 47 language tag, as defined in
+ * sections 6.2.2 and 6.2.3 of the ECMAScript Internationalization API
+ * Specification.
+ * @param {String} locale the string to be tested.
+ * @result {Boolean} whether the test succeeded.
+ */
+function isCanonicalizedStructurallyValidLanguageTag(locale) {
+
+ /**
+ * Regular expression defining BCP 47 language tags.
+ *
+ * Spec: RFC 5646 section 2.1.
+ */
+ var alpha = "[a-zA-Z]",
+ digit = "[0-9]",
+ alphanum = "(" + alpha + "|" + digit + ")",
+ regular = "(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)",
+ irregular = "(en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)",
+ grandfathered = "(" + irregular + "|" + regular + ")",
+ privateuse = "(x(-[a-z0-9]{1,8})+)",
+ singleton = "(" + digit + "|[A-WY-Za-wy-z])",
+ extension = "(" + singleton + "(-" + alphanum + "{2,8})+)",
+ variant = "(" + alphanum + "{5,8}|(" + digit + alphanum + "{3}))",
+ region = "(" + alpha + "{2}|" + digit + "{3})",
+ script = "(" + alpha + "{4})",
+ extlang = "(" + alpha + "{3}(-" + alpha + "{3}){0,2})",
+ language = "(" + alpha + "{2,3}(-" + extlang + ")?|" + alpha + "{4}|" + alpha + "{5,8})",
+ langtag = language + "(-" + script + ")?(-" + region + ")?(-" + variant + ")*(-" + extension + ")*(-" + privateuse + ")?",
+ languageTag = "^(" + langtag + "|" + privateuse + "|" + grandfathered + ")$",
+ languageTagRE = new RegExp(languageTag, "i");
+ var duplicateSingleton = "-" + singleton + "-(.*-)?\\1(?!" + alphanum + ")",
+ duplicateSingletonRE = new RegExp(duplicateSingleton, "i"),
+ duplicateVariant = "(" + alphanum + "{2,8}-)+" + variant + "-(" + alphanum + "{2,8}-)*\\3(?!" + alphanum + ")",
+ duplicateVariantRE = new RegExp(duplicateVariant, "i");
+
+
+ /**
+ * Verifies that the given string is a well-formed BCP 47 language tag
+ * with no duplicate variant or singleton subtags.
+ *
+ * Spec: ECMAScript Internationalization API Specification, draft, 6.2.2.
+ */
+ function isStructurallyValidLanguageTag(locale) {
+ if (!languageTagRE.test(locale)) {
+ return false;
+ }
+ locale = locale.split(/-x-/)[0];
+ return !duplicateSingletonRE.test(locale) && !duplicateVariantRE.test(locale);
+ }
+
+
+ /**
+ * Mappings from complete tags to preferred values.
+ *
+ * Spec: IANA Language Subtag Registry.
+ */
+ var __tagMappings = {
+ // property names must be in lower case; values in canonical form
+
+ // grandfathered tags from IANA language subtag registry, file date 2011-08-25
+ "art-lojban": "jbo",
+ "cel-gaulish": "cel-gaulish",
+ "en-gb-oed": "en-GB-oed",
+ "i-ami": "ami",
+ "i-bnn": "bnn",
+ "i-default": "i-default",
+ "i-enochian": "i-enochian",
+ "i-hak": "hak",
+ "i-klingon": "tlh",
+ "i-lux": "lb",
+ "i-mingo": "i-mingo",
+ "i-navajo": "nv",
+ "i-pwn": "pwn",
+ "i-tao": "tao",
+ "i-tay": "tay",
+ "i-tsu": "tsu",
+ "no-bok": "nb",
+ "no-nyn": "nn",
+ "sgn-be-fr": "sfb",
+ "sgn-be-nl": "vgt",
+ "sgn-ch-de": "sgg",
+ "zh-guoyu": "cmn",
+ "zh-hakka": "hak",
+ "zh-min": "zh-min",
+ "zh-min-nan": "nan",
+ "zh-xiang": "hsn",
+ // deprecated redundant tags from IANA language subtag registry, file date 2011-08-25
+ "sgn-br": "bzs",
+ "sgn-co": "csn",
+ "sgn-de": "gsg",
+ "sgn-dk": "dsl",
+ "sgn-es": "ssp",
+ "sgn-fr": "fsl",
+ "sgn-gb": "bfi",
+ "sgn-gr": "gss",
+ "sgn-ie": "isg",
+ "sgn-it": "ise",
+ "sgn-jp": "jsl",
+ "sgn-mx": "mfs",
+ "sgn-ni": "ncs",
+ "sgn-nl": "dse",
+ "sgn-no": "nsl",
+ "sgn-pt": "psr",
+ "sgn-se": "swl",
+ "sgn-us": "ase",
+ "sgn-za": "sfs",
+ "zh-cmn": "cmn",
+ "zh-cmn-hans": "cmn-Hans",
+ "zh-cmn-hant": "cmn-Hant",
+ "zh-gan": "gan",
+ "zh-wuu": "wuu",
+ "zh-yue": "yue",
+ // deprecated variant with prefix from IANA language subtag registry, file date 2011-08-25
+ "ja-latn-hepburn-heploc": "ja-Latn-alalc97"
+ };
+
+
+ /**
+ * Mappings from non-extlang subtags to preferred values.
+ *
+ * Spec: IANA Language Subtag Registry.
+ */
+ var __subtagMappings = {
+ // property names and values must be in canonical case
+ // language subtags with Preferred-Value mappings from IANA language subtag registry, file date 2011-08-25
+ "in": "id",
+ "iw": "he",
+ "ji": "yi",
+ "jw": "jv",
+ "mo": "ro",
+ "ayx": "nun",
+ "cjr": "mom",
+ "cmk": "xch",
+ "drh": "khk",
+ "drw": "prs",
+ "gav": "dev",
+ "mst": "mry",
+ "myt": "mry",
+ "tie": "ras",
+ "tkk": "twm",
+ "tnf": "prs",
+ // region subtags with Preferred-Value mappings from IANA language subtag registry, file date 2011-08-25
+ "BU": "MM",
+ "DD": "DE",
+ "FX": "FR",
+ "TP": "TL",
+ "YD": "YE",
+ "ZR": "CD"
+ };
+
+
+ /**
+ * Mappings from extlang subtags to preferred values.
+ *
+ * Spec: IANA Language Subtag Registry.
+ */
+ var __extlangMappings = {
+ // extlang subtags with Preferred-Value mappings from IANA language subtag registry, file date 2011-08-25
+ // values are arrays with [0] the replacement value, [1] (if present) the prefix to be removed
+ "aao": ["aao", "ar"],
+ "abh": ["abh", "ar"],
+ "abv": ["abv", "ar"],
+ "acm": ["acm", "ar"],
+ "acq": ["acq", "ar"],
+ "acw": ["acw", "ar"],
+ "acx": ["acx", "ar"],
+ "acy": ["acy", "ar"],
+ "adf": ["adf", "ar"],
+ "ads": ["ads", "sgn"],
+ "aeb": ["aeb", "ar"],
+ "aec": ["aec", "ar"],
+ "aed": ["aed", "sgn"],
+ "aen": ["aen", "sgn"],
+ "afb": ["afb", "ar"],
+ "afg": ["afg", "sgn"],
+ "ajp": ["ajp", "ar"],
+ "apc": ["apc", "ar"],
+ "apd": ["apd", "ar"],
+ "arb": ["arb", "ar"],
+ "arq": ["arq", "ar"],
+ "ars": ["ars", "ar"],
+ "ary": ["ary", "ar"],
+ "arz": ["arz", "ar"],
+ "ase": ["ase", "sgn"],
+ "asf": ["asf", "sgn"],
+ "asp": ["asp", "sgn"],
+ "asq": ["asq", "sgn"],
+ "asw": ["asw", "sgn"],
+ "auz": ["auz", "ar"],
+ "avl": ["avl", "ar"],
+ "ayh": ["ayh", "ar"],
+ "ayl": ["ayl", "ar"],
+ "ayn": ["ayn", "ar"],
+ "ayp": ["ayp", "ar"],
+ "bbz": ["bbz", "ar"],
+ "bfi": ["bfi", "sgn"],
+ "bfk": ["bfk", "sgn"],
+ "bjn": ["bjn", "ms"],
+ "bog": ["bog", "sgn"],
+ "bqn": ["bqn", "sgn"],
+ "bqy": ["bqy", "sgn"],
+ "btj": ["btj", "ms"],
+ "bve": ["bve", "ms"],
+ "bvl": ["bvl", "sgn"],
+ "bvu": ["bvu", "ms"],
+ "bzs": ["bzs", "sgn"],
+ "cdo": ["cdo", "zh"],
+ "cds": ["cds", "sgn"],
+ "cjy": ["cjy", "zh"],
+ "cmn": ["cmn", "zh"],
+ "coa": ["coa", "ms"],
+ "cpx": ["cpx", "zh"],
+ "csc": ["csc", "sgn"],
+ "csd": ["csd", "sgn"],
+ "cse": ["cse", "sgn"],
+ "csf": ["csf", "sgn"],
+ "csg": ["csg", "sgn"],
+ "csl": ["csl", "sgn"],
+ "csn": ["csn", "sgn"],
+ "csq": ["csq", "sgn"],
+ "csr": ["csr", "sgn"],
+ "czh": ["czh", "zh"],
+ "czo": ["czo", "zh"],
+ "doq": ["doq", "sgn"],
+ "dse": ["dse", "sgn"],
+ "dsl": ["dsl", "sgn"],
+ "dup": ["dup", "ms"],
+ "ecs": ["ecs", "sgn"],
+ "esl": ["esl", "sgn"],
+ "esn": ["esn", "sgn"],
+ "eso": ["eso", "sgn"],
+ "eth": ["eth", "sgn"],
+ "fcs": ["fcs", "sgn"],
+ "fse": ["fse", "sgn"],
+ "fsl": ["fsl", "sgn"],
+ "fss": ["fss", "sgn"],
+ "gan": ["gan", "zh"],
+ "gom": ["gom", "kok"],
+ "gse": ["gse", "sgn"],
+ "gsg": ["gsg", "sgn"],
+ "gsm": ["gsm", "sgn"],
+ "gss": ["gss", "sgn"],
+ "gus": ["gus", "sgn"],
+ "hab": ["hab", "sgn"],
+ "haf": ["haf", "sgn"],
+ "hak": ["hak", "zh"],
+ "hds": ["hds", "sgn"],
+ "hji": ["hji", "ms"],
+ "hks": ["hks", "sgn"],
+ "hos": ["hos", "sgn"],
+ "hps": ["hps", "sgn"],
+ "hsh": ["hsh", "sgn"],
+ "hsl": ["hsl", "sgn"],
+ "hsn": ["hsn", "zh"],
+ "icl": ["icl", "sgn"],
+ "ils": ["ils", "sgn"],
+ "inl": ["inl", "sgn"],
+ "ins": ["ins", "sgn"],
+ "ise": ["ise", "sgn"],
+ "isg": ["isg", "sgn"],
+ "isr": ["isr", "sgn"],
+ "jak": ["jak", "ms"],
+ "jax": ["jax", "ms"],
+ "jcs": ["jcs", "sgn"],
+ "jhs": ["jhs", "sgn"],
+ "jls": ["jls", "sgn"],
+ "jos": ["jos", "sgn"],
+ "jsl": ["jsl", "sgn"],
+ "jus": ["jus", "sgn"],
+ "kgi": ["kgi", "sgn"],
+ "knn": ["knn", "kok"],
+ "kvb": ["kvb", "ms"],
+ "kvk": ["kvk", "sgn"],
+ "kvr": ["kvr", "ms"],
+ "kxd": ["kxd", "ms"],
+ "lbs": ["lbs", "sgn"],
+ "lce": ["lce", "ms"],
+ "lcf": ["lcf", "ms"],
+ "liw": ["liw", "ms"],
+ "lls": ["lls", "sgn"],
+ "lsg": ["lsg", "sgn"],
+ "lsl": ["lsl", "sgn"],
+ "lso": ["lso", "sgn"],
+ "lsp": ["lsp", "sgn"],
+ "lst": ["lst", "sgn"],
+ "lsy": ["lsy", "sgn"],
+ "ltg": ["ltg", "lv"],
+ "lvs": ["lvs", "lv"],
+ "lzh": ["lzh", "zh"],
+ "max": ["max", "ms"],
+ "mdl": ["mdl", "sgn"],
+ "meo": ["meo", "ms"],
+ "mfa": ["mfa", "ms"],
+ "mfb": ["mfb", "ms"],
+ "mfs": ["mfs", "sgn"],
+ "min": ["min", "ms"],
+ "mnp": ["mnp", "zh"],
+ "mqg": ["mqg", "ms"],
+ "mre": ["mre", "sgn"],
+ "msd": ["msd", "sgn"],
+ "msi": ["msi", "ms"],
+ "msr": ["msr", "sgn"],
+ "mui": ["mui", "ms"],
+ "mzc": ["mzc", "sgn"],
+ "mzg": ["mzg", "sgn"],
+ "mzy": ["mzy", "sgn"],
+ "nan": ["nan", "zh"],
+ "nbs": ["nbs", "sgn"],
+ "ncs": ["ncs", "sgn"],
+ "nsi": ["nsi", "sgn"],
+ "nsl": ["nsl", "sgn"],
+ "nsp": ["nsp", "sgn"],
+ "nsr": ["nsr", "sgn"],
+ "nzs": ["nzs", "sgn"],
+ "okl": ["okl", "sgn"],
+ "orn": ["orn", "ms"],
+ "ors": ["ors", "ms"],
+ "pel": ["pel", "ms"],
+ "pga": ["pga", "ar"],
+ "pks": ["pks", "sgn"],
+ "prl": ["prl", "sgn"],
+ "prz": ["prz", "sgn"],
+ "psc": ["psc", "sgn"],
+ "psd": ["psd", "sgn"],
+ "pse": ["pse", "ms"],
+ "psg": ["psg", "sgn"],
+ "psl": ["psl", "sgn"],
+ "pso": ["pso", "sgn"],
+ "psp": ["psp", "sgn"],
+ "psr": ["psr", "sgn"],
+ "pys": ["pys", "sgn"],
+ "rms": ["rms", "sgn"],
+ "rsi": ["rsi", "sgn"],
+ "rsl": ["rsl", "sgn"],
+ "sdl": ["sdl", "sgn"],
+ "sfb": ["sfb", "sgn"],
+ "sfs": ["sfs", "sgn"],
+ "sgg": ["sgg", "sgn"],
+ "sgx": ["sgx", "sgn"],
+ "shu": ["shu", "ar"],
+ "slf": ["slf", "sgn"],
+ "sls": ["sls", "sgn"],
+ "sqs": ["sqs", "sgn"],
+ "ssh": ["ssh", "ar"],
+ "ssp": ["ssp", "sgn"],
+ "ssr": ["ssr", "sgn"],
+ "svk": ["svk", "sgn"],
+ "swc": ["swc", "sw"],
+ "swh": ["swh", "sw"],
+ "swl": ["swl", "sgn"],
+ "syy": ["syy", "sgn"],
+ "tmw": ["tmw", "ms"],
+ "tse": ["tse", "sgn"],
+ "tsm": ["tsm", "sgn"],
+ "tsq": ["tsq", "sgn"],
+ "tss": ["tss", "sgn"],
+ "tsy": ["tsy", "sgn"],
+ "tza": ["tza", "sgn"],
+ "ugn": ["ugn", "sgn"],
+ "ugy": ["ugy", "sgn"],
+ "ukl": ["ukl", "sgn"],
+ "uks": ["uks", "sgn"],
+ "urk": ["urk", "ms"],
+ "uzn": ["uzn", "uz"],
+ "uzs": ["uzs", "uz"],
+ "vgt": ["vgt", "sgn"],
+ "vkk": ["vkk", "ms"],
+ "vkt": ["vkt", "ms"],
+ "vsi": ["vsi", "sgn"],
+ "vsl": ["vsl", "sgn"],
+ "vsv": ["vsv", "sgn"],
+ "wuu": ["wuu", "zh"],
+ "xki": ["xki", "sgn"],
+ "xml": ["xml", "sgn"],
+ "xmm": ["xmm", "ms"],
+ "xms": ["xms", "sgn"],
+ "yds": ["yds", "sgn"],
+ "ysl": ["ysl", "sgn"],
+ "yue": ["yue", "zh"],
+ "zib": ["zib", "sgn"],
+ "zlm": ["zlm", "ms"],
+ "zmi": ["zmi", "ms"],
+ "zsl": ["zsl", "sgn"],
+ "zsm": ["zsm", "ms"]
+ };
+
+
+ /**
+ * Canonicalizes the given well-formed BCP 47 language tag, including regularized case of subtags.
+ *
+ * Spec: ECMAScript Internationalization API Specification, draft, 6.2.3.
+ * Spec: RFC 5646, section 4.5.
+ */
+ function canonicalizeLanguageTag(locale) {
+
+ // start with lower case for easier processing, and because most subtags will need to be lower case anyway
+ locale = locale.toLowerCase();
+
+ // handle mappings for complete tags
+ if (__tagMappings.hasOwnProperty(locale)) {
+ return __tagMappings[locale];
+ }
+
+ var subtags = locale.split("-");
+ var i = 0;
+
+ // handle standard part: all subtags before first singleton or "x"
+ while (i < subtags.length) {
+ var subtag = subtags[i];
+ if (subtag.length === 1 && (i > 0 || subtag === "x")) {
+ break;
+ } else if (i !== 0 && subtag.length === 2) {
+ subtag = subtag.toUpperCase();
+ } else if (subtag.length === 4) {
+ subtag = subtag[0].toUpperCase() + subtag.substring(1).toLowerCase();
+ }
+ if (__subtagMappings.hasOwnProperty(subtag)) {
+ subtag = __subtagMappings[subtag];
+ } else if (__extlangMappings.hasOwnProperty(subtag)) {
+ subtag = __extlangMappings[subtag][0];
+ if (i === 1 && __extlangMappings[subtag][1] === subtags[0]) {
+ subtags.shift();
+ i--;
+ }
+ }
+ subtags[i] = subtag;
+ i++;
+ }
+ var normal = subtags.slice(0, i).join("-");
+
+ // handle extensions
+ var extensions = [];
+ while (i < subtags.length && subtags[i] !== "x") {
+ var extensionStart = i;
+ i++;
+ while (i < subtags.length && subtags[i].length > 1) {
+ i++;
+ }
+ var extension = subtags.slice(extensionStart, i).join("-");
+ extensions.push(extension);
+ }
+ extensions.sort();
+
+ // handle private use
+ var privateUse;
+ if (i < subtags.length) {
+ privateUse = subtags.slice(i).join("-");
+ }
+
+ // put everything back together
+ var canonical = normal;
+ if (extensions.length > 0) {
+ canonical += "-" + extensions.join("-");
+ }
+ if (privateUse !== undefined) {
+ if (canonical.length > 0) {
+ canonical += "-" + privateUse;
+ } else {
+ canonical = privateUse;
+ }
+ }
+
+ return canonical;
+ }
+
+ return typeof locale === "string" && isStructurallyValidLanguageTag(locale) &&
+ canonicalizeLanguageTag(locale) === locale;
+}
+
diff --git a/website/json/intl402.json b/website/json/intl402.json
index 7f6d9f55d..abb678ed3 100644
--- a/website/json/intl402.json
+++ b/website/json/intl402.json
@@ -1 +1 @@
-{"testsCollection":{"name":"Chapter - intl402","numTests":"41","tests":[{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwKICogICAgIG1lZXRzIHRoZSByZXF1aXJlbWVudHMgZm9yIGJ1aWx0LWluIG9iamVjdHMgZGVmaW5lZCBieSB0aGUgaW50cm9kdWN0aW9uIG9mCiAqICAgICBjaGFwdGVyIDE1IG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24uCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RCdWlsdEluT2JqZWN0LmpzIik7Cgp0ZXN0QnVpbHRJbk9iamVjdChJbnRsLCBmYWxzZSwgZmFsc2UsIFsiQ29sbGF0b3IiLCAiTnVtYmVyRm9ybWF0IiwgIkRhdGVUaW1lRm9ybWF0Il0pOwoK","commentary":"","description":"Tests that Intl\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch08/8.0/8.0_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuQ29sbGF0b3IKICogICAgIG1lZXRzIHRoZSByZXF1aXJlbWVudHMgZm9yIGJ1aWx0LWluIG9iamVjdHMgZGVmaW5lZCBieSB0aGUgaW50cm9kdWN0aW9uIG9mCiAqICAgICBjaGFwdGVyIDE1IG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24uCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RCdWlsdEluT2JqZWN0LmpzIik7Cgp0ZXN0QnVpbHRJbk9iamVjdChJbnRsLkNvbGxhdG9yLCB0cnVlLCB0cnVlLCBbInN1cHBvcnRlZExvY2FsZXNPZiJdLCAwKTsKCg==","commentary":"","description":"Tests that Intl.Collator\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch10/10.1/10.1_L15.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLkNvbGxhdG9yIGhhcyBhIHN1cHBvcnRlZExvY2FsZXNPZgogKiBwcm9wZXJ0eSwgYW5kIGl0IHdvcmtzIGFzIHBsYW5uZWQuCiAqLwoKdmFyIGRlZmF1bHRMb2NhbGUgPSBuZXcgSW50bC5Db2xsYXRvcigpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZTsKdmFyIG5vdFN1cHBvcnRlZCA9ICd6eHgnOyAvLyAibm8gbGluZ3Vpc3RpYyBjb250ZW50Igp2YXIgcmVxdWVzdGVkTG9jYWxlcyA9IFtkZWZhdWx0TG9jYWxlLCBub3RTdXBwb3J0ZWRdOwoKdmFyIHN1cHBvcnRlZExvY2FsZXM7CgppZiAoIUludGwuQ29sbGF0b3IuaGFzT3duUHJvcGVydHkoJ3N1cHBvcnRlZExvY2FsZXNPZicpKSB7CiAgICAkRVJST1IoIkludGwuQ29sbGF0b3IgZG9lc24ndCBoYXZlIGEgc3VwcG9ydGVkTG9jYWxlc09mIHByb3BlcnR5LiIpOwp9CgpzdXBwb3J0ZWRMb2NhbGVzID0gSW50bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2NhbGVzT2YocmVxdWVzdGVkTG9jYWxlcyk7CmlmIChzdXBwb3J0ZWRMb2NhbGVzLmxlbmd0aCAhPT0gMSkgewogICAgJEVSUk9SKCdUaGUgbGVuZ3RoIG9mIHN1cHBvcnRlZCBsb2NhbGVzIGxpc3QgaXMgbm90IDEuJyk7Cn0KCmlmIChzdXBwb3J0ZWRMb2NhbGVzWzBdICE9PSBkZWZhdWx0TG9jYWxlKSB7CiAgICAkRVJST1IoJ1RoZSBkZWZhdWx0IGxvY2FsZSBpcyBub3QgcmV0dXJuZWQgaW4gdGhlIHN1cHBvcnRlZCBsaXN0LicpOwp9Cgo=","commentary":"","description":"Tests that Intl.Collator has a supportedLocalesOf\nproperty, and it works as planned.","path":"TestCases/intl402/ch10/10.2/10.2.2.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuQ29sbGF0b3Iuc3VwcG9ydGVkTG9jYWxlc09mCiAqICAgICBtZWV0cyB0aGUgcmVxdWlyZW1lbnRzIGZvciBidWlsdC1pbiBvYmplY3RzIGRlZmluZWQgYnkgdGhlIGludHJvZHVjdGlvbiBvZgogKiAgICAgY2hhcHRlciAxNSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0QnVpbHRJbk9iamVjdC5qcyIpOwoKdGVzdEJ1aWx0SW5PYmplY3QoSW50bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2NhbGVzT2YsIHRydWUsIGZhbHNlLCBbXSwgMSk7Cgo=","commentary":"","description":"Tests that Intl.Collator.supportedLocalesOf\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch10/10.2/10.2.2_L15.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhlIGludGVybmFsIHByb3BlcnRpZXMgb2YgSW50bC5Db2xsYXRvci4KICovCgp2YXIgZGVmYXVsdExvY2FsZSA9IG5ldyBJbnRsLkNvbGxhdG9yKFtdKS5yZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGU7CnZhciBzdXBwb3J0ZWRMb2NhbGVzID0gSW50bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2NhbGVzT2YoW2RlZmF1bHRMb2NhbGVdKTsKCmlmIChzdXBwb3J0ZWRMb2NhbGVzLmxlbmd0aCA8IDEgfHwgc3VwcG9ydGVkTG9jYWxlc1swXSAhPT0gZGVmYXVsdExvY2FsZSkgewogICAgJEVSUk9SKCdUaGUgZGVmYXVsdCBsb2NhbGUgaXMgbm90IHN1cHBvcnRlZCBieSBJbnRsLkNvbGxhdG9yJyk7Cn0KCi8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIGNoZWNrIFtbcmVsZXZhbnRFeHRlbnNpb25LZXlzXV0KCi8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIGNoZWNrIHNwZWNpZmllZCBwcm9wZXJ0aWVzIG9mIFtbbG9jYWxlRGF0YV1dCgo=","commentary":"","description":"Tests the internal properties of Intl.Collator.","path":"TestCases/intl402/ch10/10.2/10.2.3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLkNvbGxhdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciBpcyB0aGUKICogSW50bC5Db2xsYXRvci4KICovCgppZiAoSW50bC5Db2xsYXRvci5wcm90b3R5cGUuY29uc3RydWN0b3IgIT09IEludGwuQ29sbGF0b3IpIHsKICAgICRFUlJPUigiSW50bC5Db2xsYXRvci5wcm90b3R5cGUuY29uc3RydWN0b3IgaXMgbm90IHRoZSBzYW1lIGFzICIgKwogICAgICAgICAgICJJbnRsLkNvbGxhdG9yIik7Cn0KCg==","commentary":"","description":"Tests that Intl.Collator.prototype.constructor is the\nIntl.Collator.","path":"TestCases/intl402/ch10/10.3/10.3.1.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBmdW5jdGlvbiByZXR1cm5lZCBieSBJbnRsLkNvbGxhdG9yLnByb3RvdHlwZS5jb21wYXJlCiAqICAgICBtZWV0cyB0aGUgcmVxdWlyZW1lbnRzIGZvciBidWlsdC1pbiBvYmplY3RzIGRlZmluZWQgYnkgdGhlIGludHJvZHVjdGlvbiBvZgogKiAgICAgY2hhcHRlciAxNSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0QnVpbHRJbk9iamVjdC5qcyIpOwoKdGVzdEJ1aWx0SW5PYmplY3QobmV3IEludGwuQ29sbGF0b3IoKS5jb21wYXJlLCB0cnVlLCBmYWxzZSwgW10sIDIpOwoK","commentary":"","description":"Tests that the function returned by Intl.Collator.prototype.compare\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch10/10.3/10.3.2_1_a_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBnZXR0ZXIgZm9yIEludGwuQ29sbGF0b3IucHJvdG90eXBlLmNvbXBhcmUKICogICAgIG1lZXRzIHRoZSByZXF1aXJlbWVudHMgZm9yIGJ1aWx0LWluIG9iamVjdHMgZGVmaW5lZCBieSB0aGUgaW50cm9kdWN0aW9uIG9mCiAqICAgICBjaGFwdGVyIDE1IG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24uCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RCdWlsdEluT2JqZWN0LmpzIik7Cgp0ZXN0QnVpbHRJbk9iamVjdChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEludGwuQ29sbGF0b3IucHJvdG90eXBlLCAiY29tcGFyZSIpLmdldCAsIHRydWUsIGZhbHNlLCBbXSwgMCk7Cgo=","commentary":"","description":"Tests that the getter for Intl.Collator.prototype.compare\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch10/10.3/10.3.2_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuQ29sbGF0b3IucHJvdG90eXBlLnJlc29sdmVkT3B0aW9ucwogKiAgICAgbWVldHMgdGhlIHJlcXVpcmVtZW50cyBmb3IgYnVpbHQtaW4gb2JqZWN0cyBkZWZpbmVkIGJ5IHRoZSBpbnRyb2R1Y3Rpb24gb2YKICogICAgIGNoYXB0ZXIgMTUgb2YgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbi4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEJ1aWx0SW5PYmplY3QuanMiKTsKCnRlc3RCdWlsdEluT2JqZWN0KEludGwuQ29sbGF0b3IucHJvdG90eXBlLnJlc29sdmVkT3B0aW9ucywgdHJ1ZSwgZmFsc2UsIFtdLCAwKTsKCg==","commentary":"","description":"Tests that Intl.Collator.prototype.resolvedOptions\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch10/10.3/10.3.3_L15.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLkNvbGxhdG9yLnByb3RvdHlwZSBpcyBhbiBvYmplY3QgdGhhdAogKiBoYXMgYmVlbiBpbml0aWFsaXplZCBhcyBhbiBJbnRsLkNvbGxhdG9yLgogKi8KCi8vIHRlc3QgYnkgY2FsbGluZyBhIGZ1bmN0aW9uIHRoYXQgd291bGQgZmFpbCBpZiAidGhpcyIgd2VyZSBub3QgYW4gb2JqZWN0Ci8vIGluaXRpYWxpemVkIGFzIGFuIEludGwuQ29sbGF0b3IKaWYgKEludGwuQ29sbGF0b3IucHJvdG90eXBlLmNvbXBhcmUoImHQsOOBguyVhCIsICJh0LDjgYLslYQiKSAhPT0gMCkgewogICAgJEVSUk9SKCJJbnRsLkNvbGxhdG9yLnByb3RvdHlwZSBpcyBub3QgYW4gb2JqZWN0IHRoYXQgaGFzIGJlZW4gIiArCiAgICAgICAgImluaXRpYWxpemVkIGFzIGFuIEludGwuQ29sbGF0b3IuIik7Cn0KCg==","commentary":"","description":"Tests that Intl.Collator.prototype is an object that\nhas been initialized as an Intl.Collator.","path":"TestCases/intl402/ch10/10.3/10.3.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuQ29sbGF0b3IucHJvdG90eXBlCiAqICAgICBtZWV0cyB0aGUgcmVxdWlyZW1lbnRzIGZvciBidWlsdC1pbiBvYmplY3RzIGRlZmluZWQgYnkgdGhlIGludHJvZHVjdGlvbiBvZgogKiAgICAgY2hhcHRlciAxNSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0QnVpbHRJbk9iamVjdC5qcyIpOwoKdGVzdEJ1aWx0SW5PYmplY3QoSW50bC5Db2xsYXRvci5wcm90b3R5cGUsIGZhbHNlLCBmYWxzZSwgWyJjb25zdHJ1Y3RvciIsICJjb21wYXJlIiwgInJlc29sdmVkT3B0aW9ucyJdKTsKCg==","commentary":"","description":"Tests that Intl.Collator.prototype\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch10/10.3/10.3_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuTnVtYmVyRm9ybWF0CiAqICAgICBtZWV0cyB0aGUgcmVxdWlyZW1lbnRzIGZvciBidWlsdC1pbiBvYmplY3RzIGRlZmluZWQgYnkgdGhlIGludHJvZHVjdGlvbiBvZgogKiAgICAgY2hhcHRlciAxNSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0QnVpbHRJbk9iamVjdC5qcyIpOwoKdGVzdEJ1aWx0SW5PYmplY3QoSW50bC5OdW1iZXJGb3JtYXQsIHRydWUsIHRydWUsIFsic3VwcG9ydGVkTG9jYWxlc09mIl0sIDApOwoK","commentary":"","description":"Tests that Intl.NumberFormat\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch11/11.1/11.1_L15.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLk51bWJlckZvcm1hdCBoYXMgYSBzdXBwb3J0ZWRMb2NhbGVzT2YKICogcHJvcGVydHksIGFuZCBpdCB3b3JrcyBhcyBwbGFubmVkLgogKiBAYXV0aG9yOiBSb296YmVoIFBvdXJuYWRlcgogKi8KCnZhciBkZWZhdWx0TG9jYWxlID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlOwp2YXIgbm90U3VwcG9ydGVkID0gJ3p4eCc7IC8vICJubyBsaW5ndWlzdGljIGNvbnRlbnQiCnZhciByZXF1ZXN0ZWRMb2NhbGVzID0gW2RlZmF1bHRMb2NhbGUsIG5vdFN1cHBvcnRlZF07CiAgICAKdmFyIHN1cHBvcnRlZExvY2FsZXM7CgppZiAoIUludGwuTnVtYmVyRm9ybWF0Lmhhc093blByb3BlcnR5KCdzdXBwb3J0ZWRMb2NhbGVzT2YnKSkgewogICAgJEVSUk9SKCJJbnRsLk51bWJlckZvcm1hdCBkb2Vzbid0IGhhdmUgYSBzdXBwb3J0ZWRMb2NhbGVzT2YgcHJvcGVydHkuIik7Cn0KICAgIApzdXBwb3J0ZWRMb2NhbGVzID0gSW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKHJlcXVlc3RlZExvY2FsZXMpOwppZiAoc3VwcG9ydGVkTG9jYWxlcy5sZW5ndGggIT09IDEpIHsKICAgICRFUlJPUignVGhlIGxlbmd0aCBvZiBzdXBwb3J0ZWQgbG9jYWxlcyBsaXN0IGlzIG5vdCAxLicpOwp9CiAgICAKaWYgKHN1cHBvcnRlZExvY2FsZXNbMF0gIT09IGRlZmF1bHRMb2NhbGUpIHsKICAgICRFUlJPUignVGhlIGRlZmF1bHQgbG9jYWxlIGlzIG5vdCByZXR1cm5lZCBpbiB0aGUgc3VwcG9ydGVkIGxpc3QuJyk7Cn0KCg==","commentary":"","description":"Tests that Intl.NumberFormat has a supportedLocalesOf\nproperty, and it works as planned.","path":"TestCases/intl402/ch11/11.2/11.2.2.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuTnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZgogKiAgICAgbWVldHMgdGhlIHJlcXVpcmVtZW50cyBmb3IgYnVpbHQtaW4gb2JqZWN0cyBkZWZpbmVkIGJ5IHRoZSBpbnRyb2R1Y3Rpb24gb2YKICogICAgIGNoYXB0ZXIgMTUgb2YgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbi4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEJ1aWx0SW5PYmplY3QuanMiKTsKCnRlc3RCdWlsdEluT2JqZWN0KEludGwuTnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZiwgdHJ1ZSwgZmFsc2UsIFtdLCAxKTsKCg==","commentary":"","description":"Tests that Intl.NumberFormat.supportedLocalesOf\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch11/11.2/11.2.2_L15.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhlIGludGVybmFsIHByb3BlcnRpZXMgb2YgSW50bC5OdW1iZXJGb3JtYXQuCiAqIEBhdXRob3I6IFJvb3piZWggUG91cm5hZGVyCiAqLwoKdmFyIGRlZmF1bHRMb2NhbGUgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoW10pLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZTsKdmFyIHN1cHBvcnRlZExvY2FsZXMgPSBJbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoW2RlZmF1bHRMb2NhbGVdKTsKICAKaWYgKHN1cHBvcnRlZExvY2FsZXMubGVuZ3RoIDwgMSB8fCBzdXBwb3J0ZWRMb2NhbGVzWzBdICE9PSBkZWZhdWx0TG9jYWxlKSB7CiAgICAkRVJST1IoJ1RoZSBkZWZhdWx0IGxvY2FsZSBpcyBub3Qgc3VwcG9ydGVkIGJ5IEludGwuTnVtYmVyRm9ybWF0Jyk7Cn0KCi8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIGNoZWNrIHRoYXQgW1tyZWxldmFudEV4dGVuc2lvbktleXNdXSA9PT0gWydudSddCiAgCi8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIGNoZWNrIHNwZWNpZmllZCBwcm9wZXJ0aWVzIG9mIFtbbG9jYWxlRGF0YV1dICAKCg==","commentary":"","description":"Tests the internal properties of Intl.NumberFormat.","path":"TestCases/intl402/ch11/11.2/11.2.3.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuY29uc3RydWN0b3IgaXMgdGhlCiAqIEludGwuTnVtYmVyRm9ybWF0LgogKiBAYXV0aG9yOiBSb296YmVoIFBvdXJuYWRlcgogKi8KCmlmIChJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuY29uc3RydWN0b3IgIT09IEludGwuTnVtYmVyRm9ybWF0KSB7CiAgICAkRVJST1IoIkludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZS5jb25zdHJ1Y3RvciBpcyBub3QgdGhlIHNhbWUgYXMgIiArCiAgICAgICAgICAiSW50bC5OdW1iZXJGb3JtYXQiKTsKfQoK","commentary":"","description":"Tests that Intl.NumberFormat.prototype.constructor is the\nIntl.NumberFormat.","path":"TestCases/intl402/ch11/11.3/11.3.1.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuZm9ybWF0CiAqIGNvbnZlcnRzIG90aGVyIHR5cGVzIHRvIG51bWJlcnMuCiAqIEBhdXRob3I6IFJvb3piZWggUG91cm5hZGVyCiAqLwoKdmFyIGZvcm1hdHRlciA9IG5ldyBJbnRsLk51bWJlckZvcm1hdCgpOwp2YXIgdGVzdERhdGEgPSBbdW5kZWZpbmVkLCBudWxsLCB0cnVlLCAnMC42NjY2NjY2J107CnZhciBudW1iZXI7CnZhciBpLCBpbnB1dCwgY29ycmVjdFJlc3VsdCwgcmVzdWx0OwoKZm9yIChpIGluIHRlc3REYXRhKSB7CiAgICBpbnB1dCA9IHRlc3REYXRhW2ldOwogICAgbnVtYmVyID0gK2lucHV0OwogICAgY29ycmVjdFJlc3VsdCA9IGZvcm1hdHRlci5mb3JtYXQobnVtYmVyKTsKICAgIAogICAgcmVzdWx0ID0gZm9ybWF0dGVyLmZvcm1hdChpbnB1dCk7CiAgICBpZiAocmVzdWx0ICE9PSBjb3JyZWN0UmVzdWx0KSB7CiAgICAgICAgJEVSUk9SKCdJbnRsLk51bWJlckZvcm1hdCBkb2VzIG5vdCBjb252ZXJ0IG90aGVyICcgKwogICAgICAgICAgICAndHlwZXMgdG8gbnVtYmVycy4gSW5wdXQ6ICInK2lucHV0KyciIE91dHB1dDogIicrcmVzdWx0KyciICcrCiAgICAgICAgICAgICdFeHBlY3RlZCBvdXRwdXQ6ICInK2NvcnJlY3RSZXN1bHQrJyInKTsKICAgIH0KfQoK","commentary":"","description":"Tests that Intl.NumberFormat.prototype.format\nconverts other types to numbers.","path":"TestCases/intl402/ch11/11.3/11.3.2_1_a_ii.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBmdW5jdGlvbiByZXR1cm5lZCBieSBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuZm9ybWF0CiAqICAgICBtZWV0cyB0aGUgcmVxdWlyZW1lbnRzIGZvciBidWlsdC1pbiBvYmplY3RzIGRlZmluZWQgYnkgdGhlIGludHJvZHVjdGlvbiBvZgogKiAgICAgY2hhcHRlciAxNSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0QnVpbHRJbk9iamVjdC5qcyIpOwoKdGVzdEJ1aWx0SW5PYmplY3QobmV3IEludGwuTnVtYmVyRm9ybWF0KCkuZm9ybWF0LCB0cnVlLCBmYWxzZSwgW10sIDEpOwoK","commentary":"","description":"Tests that the function returned by Intl.NumberFormat.prototype.format\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch11/11.3/11.3.2_1_a_L15.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuZm9ybWF0CiAqIGRvZXNuJ3QgdHJlYXQgYWxsIG51bWJlcnMgYXMgbmVnYXRpdmUuCiAqIEBhdXRob3I6IFJvb3piZWggUG91cm5hZGVyCiAqLwoKdmFyIGZvcm1hdHRlciA9IG5ldyBJbnRsLk51bWJlckZvcm1hdCgpOwogIAppZiAoZm9ybWF0dGVyLmZvcm1hdCgxKSA9PT0gZm9ybWF0dGVyLmZvcm1hdCgtMSkpIHsKICAgICRFUlJPUignSW50bC5OdW1iZXJGb3JtYXQgaXMgZm9ybWF0dGluZyAxIGFuZCAtMSB0aGUgc2FtZSB3YXkuJyk7Cn0KCmlmIChmb3JtYXR0ZXIuZm9ybWF0KC0wKSAhPT0gZm9ybWF0dGVyLmZvcm1hdCgwKSkgewogICAgJEVSUk9SKCdJbnRsLk51bWJlckZvcm1hdCBpcyBmb3JtYXR0aW5nIHNpZ25lZCB6ZXJvcyBkaWZmZXJlbnRseS4nKTsKfQoK","commentary":"","description":"Tests that Intl.NumberFormat.prototype.format\ndoesn't treat all numbers as negative.","path":"TestCases/intl402/ch11/11.3/11.3.2_FN_1.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuZm9ybWF0CiAqIGhhbmRsZXMgTmFOLCBJbmZpbml0eSwgYW5kIC1JbmZpbml0eSBwcm9wZXJseS4KICogQGF1dGhvcjogUm9vemJlaCBQb3VybmFkZXIKICovCgovLyBGSVhNRTogV2UgYXJlIG9ubHkgbGlzdGluZyBOdW1lcmljX1R5cGU9RGVjaW1hbC4gTWF5IG5lZWQgdG8gYWRkIG1vcmUKLy8gd2hlbiB0aGUgc3BlYyBjbGFyaWZpZXMuIEN1cnJlbnQgYXMgb2YgVW5pY29kZSA2LjEuCnZhciBoYXNVbmljb2RlRGlnaXRzID0gbmV3IFJlZ0V4cCgnLiooWycgKwogICAgJzAtOVx1MDY2MC1cdTA2NjlcdTA2RjAtXHUwNkY5XHUwN0MwLVx1MDdDOVx1MDk2Ni1cdTA5NkYnICsKICAgICdcdTA5RTYtXHUwOUVGXHUwQTY2LVx1MEE2Rlx1MEFFNi1cdTBBRUZcdTBCNjYtXHUwQjZGXHUwQkU2LVx1MEJFRicgKwogICAgJ1x1MEM2Ni1cdTBDNkZcdTBDRTYtXHUwQ0VGXHUwRDY2LVx1MEQ2Rlx1MEU1MC1cdTBFNTlcdTBFRDAtXHUwRUQ5JyArCiAgICAnXHUwRjIwLVx1MEYyOVx1MTA0MC1cdTEwNDlcdTEwOTAtXHUxMDk5XHUxN0UwLVx1MTdFOVx1MTgxMC1cdTE4MTknICsKICAgICdcdTE5NDYtXHUxOTRGXHUxOUQwLVx1MTlEOVx1MUE4MC1cdTFBODlcdTFBOTAtXHUxQTk5XHUxQjUwLVx1MUI1OScgKwogICAgJ1x1MUJCMC1cdTFCQjlcdTFDNDAtXHUxQzQ5XHUxQzUwLVx1MUM1OVx1QTYyMC1cdUE2MjlcdUE4RDAtXHVBOEQ5JyArCiAgICAnXHVBOTAwLVx1QTkwOVx1QTlEMC1cdUE5RDlcdUFBNTAtXHVBQTU5XHVBQkYwLVx1QUJGOVx1RkYxMC1cdUZGMTknICsKICAgICddfCcgKwogICAgJ1x1RDgwMVtcdURDQTAtXHVEQ0E5XXwnICsKICAgICdcdUQ4MDRbXHVEQzY2LVx1REM2Rlx1RENGMC1cdURDRjlcdUREMzYtXHVERDNGXHVEREQwLVx1REREOV18JyArCiAgICAnXHVEODA1W1x1REVDMC1cdURFQzldfCcgKwogICAgJ1x1RDgzNVtcdURGQ0UtXHVERkZGXSknKTsKCnZhciBmb3JtYXR0ZXIgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoKTsKdmFyIGZvcm1hdHRlZE5hTiA9IGZvcm1hdHRlci5mb3JtYXQoTmFOKTsKdmFyIGZvcm1hdHRlZEluZmluaXR5ID0gZm9ybWF0dGVyLmZvcm1hdChJbmZpbml0eSk7CnZhciBmb3JtYXR0ZWROZWdhdGl2ZUluZmluaXR5ID0gZm9ybWF0dGVyLmZvcm1hdCgtSW5maW5pdHkpOwoKaWYgKGZvcm1hdHRlZE5hTiA9PT0gZm9ybWF0dGVkSW5maW5pdHkpIHsKICAgICRFUlJPUignSW50bC5OdW1iZXJGb3JtYXQgZm9ybWF0cyBOYU4gYW5kIEluZmluaXR5IHRoZSAnICsKICAgICAgICAnc2FtZSB3YXkuJyk7Cn0KCmlmIChmb3JtYXR0ZWROYU4gPT09IGZvcm1hdHRlZE5lZ2F0aXZlSW5maW5pdHkpIHsKICAgICRFUlJPUignSW50bC5OdW1iZXJGb3JtYXQgZm9ybWF0cyBOYU4gYW5kIG5lZ2F0aXZlICcgKwogICAgICAgICdJbmZpbml0eSB0aGUgc2FtZSB3YXkuJyk7Cn0KCmlmIChmb3JtYXR0ZWRJbmZpbml0eSA9PT0gZm9ybWF0dGVkTmVnYXRpdmVJbmZpbml0eSkgewogICAgJEVSUk9SKCdJbnRsLk51bWJlckZvcm1hdCBmb3JtYXRzIEluZmluaXR5IGFuZCAnICsKICAgICAgICAnbmVnYXRpdmUgSW5maW5pdHkgdGhlIHNhbWUgd2F5LicpOwp9CgppZiAoaGFzVW5pY29kZURpZ2l0cy50ZXN0KGZvcm1hdHRlZE5hTikpIHsKICAgICRFUlJPUignSW50bC5OdW1iZXJGb3JtYXQgZm9ybWF0cyBOYU4gdXNpbmcgYSBkaWdpdC4nKTsKfQoKaWYgKGhhc1VuaWNvZGVEaWdpdHMudGVzdChmb3JtYXR0ZWRJbmZpbml0eSkpIHsKICAgICRFUlJPUignSW50bC5OdW1iZXJGb3JtYXQgZm9ybWF0cyBJbmZpbml0eSB1c2luZyBhICcgKwogICAgICAgICdkaWdpdC4nKTsKfQoKaWYgKGhhc1VuaWNvZGVEaWdpdHMudGVzdChmb3JtYXR0ZWROZWdhdGl2ZUluZmluaXR5KSkgewogICAgJEVSUk9SKCdJbnRsLk51bWJlckZvcm1hdCBmb3JtYXRzIG5lZ2F0aXZlIEluZmluaXR5ICcgKyAKICAgICAgICAndXNpbmcgYSBkaWdpdC4nKTsKfQoK","commentary":"","description":"Tests that Intl.NumberFormat.prototype.format\nhandles NaN, Infinity, and -Infinity properly.","path":"TestCases/intl402/ch11/11.3/11.3.2_FN_2.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuZm9ybWF0CiAqIGZvcm1hdHMgcGVyY2VudCB2YWx1ZXMgcHJvcGVybHkuCiAqIEBhdXRob3I6IFJvb3piZWggUG91cm5hZGVyCiAqLwoKdmFyIG51bWJlckZvcm1hdHRlciA9IG5ldyBJbnRsLk51bWJlckZvcm1hdCgpOwp2YXIgcGVyY2VudEZvcm1hdHRlciA9IG5ldyBJbnRsLk51bWJlckZvcm1hdCh1bmRlZmluZWQsIHtzdHlsZTogJ3BlcmNlbnQnfSk7Cgp2YXIgZm9ybWF0dGVkVHdlbnR5ID0gbnVtYmVyRm9ybWF0dGVyLmZvcm1hdCgyMCk7CnZhciBmb3JtYXR0ZWRUd2VudHlQZXJjZW50ID0gcGVyY2VudEZvcm1hdHRlci5mb3JtYXQoMC4yMCk7CgovLyBGSVhNRTogTWF5IG5vdCB3b3JrIGZvciBzb21lIHRoZW9yZXRpY2FsIGxvY2FsZXMgd2hlcmUgcGVyY2VudHMgYW5kCi8vIG5vcm1hbCBudW1iZXJzIGFyZSBmb3JtYXR0ZWQgdXNpbmcgZGlmZmVyZW50IG51bWJlcmluZyBzeXN0ZW1zLgppZiAoZm9ybWF0dGVkVHdlbnR5UGVyY2VudC5pbmRleE9mKGZvcm1hdHRlZFR3ZW50eSkgPT09IC0xKSB7CiAgICAkRVJST1IoIkludGwuTnVtYmVyRm9ybWF0J3MgZm9ybWF0dGluZyBvZiAyMCUgZG9lcyBub3QgaW5jbHVkZSBhICIgKwogICAgICAgICJmb3JtYXR0aW5nIG9mIDIwIGFzIGEgc3Vic3RyaW5nLiIpOwp9CgovLyBGSVhNRTogTW92ZSB0aGlzIHRvIHNvbWV3aGVyZSBhcHByb3ByaWF0ZQppZiAocGVyY2VudEZvcm1hdHRlci5mb3JtYXQoMC4wMTEpID09PSBwZXJjZW50Rm9ybWF0dGVyLmZvcm1hdCgwLjAyKSkgewogICAgJEVSUk9SKCdJbnRsLk51bWJlckZvcm1hdCBpcyBmb3JtYXR0aW5nIDEuMSUgYW5kIDIlIHRoZSBzYW1lIHdheS4nKTsKfQoK","commentary":"","description":"Tests that Intl.NumberFormat.prototype.format\nformats percent values properly.","path":"TestCases/intl402/ch11/11.3/11.3.2_FN_3_b.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuZm9ybWF0CiAqIHN1cHBvcnRzIGFsbCBhbHRlcm5hdGl2ZSBudW1iZXJpbmcgc3lzdGVtcy4KICogQGF1dGhvcjogUm9vemJlaCBQb3VybmFkZXIKICovCgp2YXIgbnVtYmVyaW5nU3lzdGVtcyA9IHsKICAgIGFyYWI6IDB4MDY2MCwKICAgIGFyYWJleHQ6IDB4MDZGMCwKICAgIGJlbmc6IDB4MDlFNiwKICAgIGRldmE6IDB4MDk2NiwKICAgIGZ1bGx3aWRlOiAweEZGMTAsCiAgICBndWpyOiAweDBBRTYsCiAgICBndXJ1OiAweDBBNjYsCiAgICBoYW5pZGVjOiBbMHgzMDA3LCAweDRFMDAsIDB4NEU4QywgMHg0RTA5LCAweDU2REIsCiAgICAgICAgICAgICAgMHg0RTk0LCAweDUxNkQsIDB4NEUwMywgMHg1MTZCLCAweDRFNURdLAogICAga2htcjogMHgxN0UwLAogICAga25kYTogMHgwQ0U2LAogICAgbGFvbzogMHgwRUQwLAogICAgbGF0bjogMHgwMDMwLAogICAgbWx5bTogMHgwRDY2LAogICAgbW9uZzogMHgxODEwLAogICAgbXltcjogMHgxMDQwLAogICAgb3J5YTogMHgwQjY2LAogICAgdGFtbGRlYzogMHgwQkU2LAogICAgdGVsdTogMHgwQzY2LAogICAgdGhhaTogMHgwRTUwLAogICAgdGlidDogMHgwRjIwCn07Cgp2YXIgb3B0aW9ucywgZm9ybWF0dGVyOwp2YXIgcywgemVyb0NvZGUsIGRpZ2l0TGlzdDsKCmZvciAocyBpbiBudW1iZXJpbmdTeXN0ZW1zKSB7CiAgICB6ZXJvQ29kZSA9IG51bWJlcmluZ1N5c3RlbXNbc107CiAgICBpZiAodHlwZW9mIHplcm9Db2RlID09PSAnbnVtYmVyJykgewogICAgICAgIGRpZ2l0TGlzdCA9IFt6ZXJvQ29kZSwgemVyb0NvZGUrMSwgemVyb0NvZGUrMiwgemVyb0NvZGUrMywgemVyb0NvZGUrNCwKICAgICAgICAgICAgICAgICAgIHplcm9Db2RlKzUsIHplcm9Db2RlKzYsIHplcm9Db2RlKzcsIHplcm9Db2RlKzgsIHplcm9Db2RlKzldOwogICAgICAgIG51bWJlcmluZ1N5c3RlbXNbc10gPSBkaWdpdExpc3Q7CiAgICB9Cn0KCi8vIEZJWE1FOiBVbmZpbmlzaGVkCgo=","commentary":"","description":"Tests that Intl.NumberFormat.prototype.format\nsupports all alternative numbering systems.","path":"TestCases/intl402/ch11/11.3/11.3.2_FN_3_e.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBnZXR0ZXIgZm9yIEludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZS5mb3JtYXQKICogICAgIG1lZXRzIHRoZSByZXF1aXJlbWVudHMgZm9yIGJ1aWx0LWluIG9iamVjdHMgZGVmaW5lZCBieSB0aGUgaW50cm9kdWN0aW9uIG9mCiAqICAgICBjaGFwdGVyIDE1IG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24uCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RCdWlsdEluT2JqZWN0LmpzIik7Cgp0ZXN0QnVpbHRJbk9iamVjdChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZSwgImZvcm1hdCIpLmdldCAsIHRydWUsIGZhbHNlLCBbXSwgMCk7Cgo=","commentary":"","description":"Tests that the getter for Intl.NumberFormat.prototype.format\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch11/11.3/11.3.2_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZS5yZXNvbHZlZE9wdGlvbnMKICogICAgIG1lZXRzIHRoZSByZXF1aXJlbWVudHMgZm9yIGJ1aWx0LWluIG9iamVjdHMgZGVmaW5lZCBieSB0aGUgaW50cm9kdWN0aW9uIG9mCiAqICAgICBjaGFwdGVyIDE1IG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24uCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RCdWlsdEluT2JqZWN0LmpzIik7Cgp0ZXN0QnVpbHRJbk9iamVjdChJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUucmVzb2x2ZWRPcHRpb25zLCB0cnVlLCBmYWxzZSwgW10sIDApOwoK","commentary":"","description":"Tests that Intl.NumberFormat.prototype.resolvedOptions\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch11/11.3/11.3.3_L15.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUgaXMgYW4gb2JqZWN0IHRoYXQKICogaGFzIGJlZW4gaW5pdGlhbGl6ZWQgYXMgYW4gSW50bC5OdW1iZXJGb3JtYXQuCiAqIEBhdXRob3I6IFJvb3piZWggUG91cm5hZGVyCiAqLwoKLy8gdGVzdCBieSBjYWxsaW5nIGEgZnVuY3Rpb24gdGhhdCB3b3VsZCBmYWlsIGlmICJ0aGlzIiB3ZXJlIG5vdCBhbiBvYmplY3QKLy8gaW5pdGlhbGl6ZWQgYXMgYW4gSW50bC5OdW1iZXJGb3JtYXQKaWYgKHR5cGVvZiBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuZm9ybWF0KDApICE9PSAic3RyaW5nIikgewogICAgJEVSUk9SKCJJbnRsLk51bWJlckZvcm1hdCdzIHByb3RvdHlwZSBpcyBub3QgYW4gb2JqZWN0IHRoYXQgaGFzIGJlZW4gIiArCiAgICAgICAgImluaXRpYWxpemVkIGFzIGFuIEludGwuTnVtYmVyRm9ybWF0Iik7Cn0KCg==","commentary":"","description":"Tests that Intl.NumberFormat.prototype is an object that\nhas been initialized as an Intl.NumberFormat.","path":"TestCases/intl402/ch11/11.3/11.3.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZQogKiAgICAgbWVldHMgdGhlIHJlcXVpcmVtZW50cyBmb3IgYnVpbHQtaW4gb2JqZWN0cyBkZWZpbmVkIGJ5IHRoZSBpbnRyb2R1Y3Rpb24gb2YKICogICAgIGNoYXB0ZXIgMTUgb2YgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbi4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEJ1aWx0SW5PYmplY3QuanMiKTsKCnRlc3RCdWlsdEluT2JqZWN0KEludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZSwgZmFsc2UsIGZhbHNlLCBbImNvbnN0cnVjdG9yIiwgImZvcm1hdCIsICJyZXNvbHZlZE9wdGlvbnMiXSk7Cgo=","commentary":"","description":"Tests that Intl.NumberFormat.prototype\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch11/11.3/11.3_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuRGF0ZVRpbWVGb3JtYXQKICogICAgIG1lZXRzIHRoZSByZXF1aXJlbWVudHMgZm9yIGJ1aWx0LWluIG9iamVjdHMgZGVmaW5lZCBieSB0aGUgaW50cm9kdWN0aW9uIG9mCiAqICAgICBjaGFwdGVyIDE1IG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24uCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RCdWlsdEluT2JqZWN0LmpzIik7Cgp0ZXN0QnVpbHRJbk9iamVjdChJbnRsLkRhdGVUaW1lRm9ybWF0LCB0cnVlLCB0cnVlLCBbInN1cHBvcnRlZExvY2FsZXNPZiJdLCAwKTsKCg==","commentary":"","description":"Tests that Intl.DateTimeFormat\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch12/12.1/12.1_L15.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLkRhdGVUaW1lRm9ybWF0IGhhcyBhIHN1cHBvcnRlZExvY2FsZXNPZgogKiBwcm9wZXJ0eSwgYW5kIGl0IHdvcmtzIGFzIHBsYW5uZWQuCiAqIEBhdXRob3I6IFJvb3piZWggUG91cm5hZGVyCiAqLwoKdmFyIGRlZmF1bHRMb2NhbGUgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZTsKdmFyIG5vdFN1cHBvcnRlZCA9ICd6eHgnOyAvLyAibm8gbGluZ3Vpc3RpYyBjb250ZW50Igp2YXIgcmVxdWVzdGVkTG9jYWxlcyA9IFtkZWZhdWx0TG9jYWxlLCBub3RTdXBwb3J0ZWRdOwogICAgCnZhciBzdXBwb3J0ZWRMb2NhbGVzOwoKaWYgKCFJbnRsLkRhdGVUaW1lRm9ybWF0Lmhhc093blByb3BlcnR5KCdzdXBwb3J0ZWRMb2NhbGVzT2YnKSkgewogICAgJEVSUk9SKCJJbnRsLkRhdGVUaW1lRm9ybWF0IGRvZXNuJ3QgaGF2ZSBhIHN1cHBvcnRlZExvY2FsZXNPZiBwcm9wZXJ0eS4iKTsKfQogICAgCnN1cHBvcnRlZExvY2FsZXMgPSBJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZihyZXF1ZXN0ZWRMb2NhbGVzKTsKaWYgKHN1cHBvcnRlZExvY2FsZXMubGVuZ3RoICE9PSAxKSB7CiAgICAkRVJST1IoJ1RoZSBsZW5ndGggb2Ygc3VwcG9ydGVkIGxvY2FsZXMgbGlzdCBpcyBub3QgMS4nKTsKfQogICAgCmlmIChzdXBwb3J0ZWRMb2NhbGVzWzBdICE9PSBkZWZhdWx0TG9jYWxlKSB7CiAgICAkRVJST1IoJ1RoZSBkZWZhdWx0IGxvY2FsZSBpcyBub3QgcmV0dXJuZWQgaW4gdGhlIHN1cHBvcnRlZCBsaXN0LicpOwp9Cgo=","commentary":"","description":"Tests that Intl.DateTimeFormat has a supportedLocalesOf\nproperty, and it works as planned.","path":"TestCases/intl402/ch12/12.2/12.2.2.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuRGF0ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mCiAqICAgICBtZWV0cyB0aGUgcmVxdWlyZW1lbnRzIGZvciBidWlsdC1pbiBvYmplY3RzIGRlZmluZWQgYnkgdGhlIGludHJvZHVjdGlvbiBvZgogKiAgICAgY2hhcHRlciAxNSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0QnVpbHRJbk9iamVjdC5qcyIpOwoKdGVzdEJ1aWx0SW5PYmplY3QoSW50bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YsIHRydWUsIGZhbHNlLCBbXSwgMSk7Cgo=","commentary":"","description":"Tests that Intl.DateTimeFormat.supportedLocalesOf\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch12/12.2/12.2.2_L15.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhlIGludGVybmFsIHByb3BlcnRpZXMgb2YgSW50bC5EYXRlVGltZUZvcm1hdC4KICogQGF1dGhvcjogUm9vemJlaCBQb3VybmFkZXIKICovCgp2YXIgZGVmYXVsdExvY2FsZSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFtdKS5yZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGU7CnZhciBzdXBwb3J0ZWRMb2NhbGVzID0gSW50bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoW2RlZmF1bHRMb2NhbGVdKTsKICAKaWYgKHN1cHBvcnRlZExvY2FsZXMubGVuZ3RoIDwgMSB8fCBzdXBwb3J0ZWRMb2NhbGVzWzBdICE9PSBkZWZhdWx0TG9jYWxlKSB7CiAgICAkRVJST1IoJ1RoZSBkZWZhdWx0IGxvY2FsZSBpcyBub3Qgc3VwcG9ydGVkIGJ5IEludGwuRGF0ZVRpbWVGb3JtYXQnKTsKfQoKLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gY2hlY2sgdGhhdCBbW3JlbGV2YW50RXh0ZW5zaW9uS2V5c11dID09PSBbJ2NhJywgJ251J10KICAKLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gY2hlY2sgc3BlY2lmaWVkIHByb3BlcnRpZXMgb2YgW1tsb2NhbGVEYXRhXV0KCg==","commentary":"","description":"Tests the internal properties of Intl.DateTimeFormat.","path":"TestCases/intl402/ch12/12.2/12.2.3.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLkRhdGVUaW1lRm9ybWF0LnByb3RvdHlwZS5jb25zdHJ1Y3RvciBpcyB0aGUKICogSW50bC5EYXRlVGltZUZvcm1hdC4KICogQGF1dGhvcjogUm9vemJlaCBQb3VybmFkZXIKICovCgppZiAoSW50bC5EYXRlVGltZUZvcm1hdC5wcm90b3R5cGUuY29uc3RydWN0b3IgIT09IEludGwuRGF0ZVRpbWVGb3JtYXQpIHsKICAgICRFUlJPUigiSW50bC5EYXRlVGltZUZvcm1hdC5wcm90b3R5cGUuY29uc3RydWN0b3IgaXMgbm90IHRoZSBzYW1lIGFzICIgKwogICAgICAgICAgIkludGwuRGF0ZVRpbWVGb3JtYXQiKTsKfQoK","commentary":"","description":"Tests that Intl.DateTimeFormat.prototype.constructor is the\nIntl.DateTimeFormat.","path":"TestCases/intl402/ch12/12.3/12.3.1.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBmdW5jdGlvbiByZXR1cm5lZCBieSBJbnRsLkRhdGVUaW1lRm9ybWF0LnByb3RvdHlwZS5mb3JtYXQKICogICAgIG1lZXRzIHRoZSByZXF1aXJlbWVudHMgZm9yIGJ1aWx0LWluIG9iamVjdHMgZGVmaW5lZCBieSB0aGUgaW50cm9kdWN0aW9uIG9mCiAqICAgICBjaGFwdGVyIDE1IG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24uCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RCdWlsdEluT2JqZWN0LmpzIik7Cgp0ZXN0QnVpbHRJbk9iamVjdChuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgpLmZvcm1hdCwgdHJ1ZSwgZmFsc2UsIFtdLCAwKTsKCg==","commentary":"","description":"Tests that the function returned by Intl.DateTimeFormat.prototype.format\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch12/12.3/12.3.2_1_a_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBnZXR0ZXIgZm9yIEludGwuRGF0ZVRpbWVGb3JtYXQucHJvdG90eXBlLmZvcm1hdAogKiAgICAgbWVldHMgdGhlIHJlcXVpcmVtZW50cyBmb3IgYnVpbHQtaW4gb2JqZWN0cyBkZWZpbmVkIGJ5IHRoZSBpbnRyb2R1Y3Rpb24gb2YKICogICAgIGNoYXB0ZXIgMTUgb2YgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbi4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEJ1aWx0SW5PYmplY3QuanMiKTsKCnRlc3RCdWlsdEluT2JqZWN0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSW50bC5EYXRlVGltZUZvcm1hdC5wcm90b3R5cGUsICJmb3JtYXQiKS5nZXQgLCB0cnVlLCBmYWxzZSwgW10sIDApOwoK","commentary":"","description":"Tests that the getter for Intl.DateTimeFormat.prototype.format\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch12/12.3/12.3.2_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuRGF0ZVRpbWVGb3JtYXQucHJvdG90eXBlLnJlc29sdmVkT3B0aW9ucwogKiAgICAgbWVldHMgdGhlIHJlcXVpcmVtZW50cyBmb3IgYnVpbHQtaW4gb2JqZWN0cyBkZWZpbmVkIGJ5IHRoZSBpbnRyb2R1Y3Rpb24gb2YKICogICAgIGNoYXB0ZXIgMTUgb2YgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbi4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEJ1aWx0SW5PYmplY3QuanMiKTsKCnRlc3RCdWlsdEluT2JqZWN0KEludGwuRGF0ZVRpbWVGb3JtYXQucHJvdG90eXBlLnJlc29sdmVkT3B0aW9ucywgdHJ1ZSwgZmFsc2UsIFtdLCAwKTsKCg==","commentary":"","description":"Tests that Intl.DateTimeFormat.prototype.resolvedOptions\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch12/12.3/12.3.3_L15.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLkRhdGVUaW1lRm9ybWF0LnByb3RvdHlwZSBpcyBhbiBvYmplY3QgdGhhdAogKiBoYXMgYmVlbiBpbml0aWFsaXplZCBhcyBhbiBJbnRsLkRhdGVUaW1lRm9ybWF0LgogKiBAYXV0aG9yOiBSb296YmVoIFBvdXJuYWRlcgogKi8KCi8vIHRlc3QgYnkgY2FsbGluZyBhIGZ1bmN0aW9uIHRoYXQgd291bGQgZmFpbCBpZiAidGhpcyIgd2VyZSBub3QgYW4gb2JqZWN0Ci8vIGluaXRpYWxpemVkIGFzIGFuIEludGwuRGF0ZVRpbWVGb3JtYXQKaWYgKHR5cGVvZiBJbnRsLkRhdGVUaW1lRm9ybWF0LnByb3RvdHlwZS5mb3JtYXQoMCkgIT09ICJzdHJpbmciKSB7CiAgICAkRVJST1IoIkludGwuRGF0ZVRpbWVGb3JtYXQncyBwcm90b3R5cGUgaXMgbm90IGFuIG9iamVjdCB0aGF0IGhhcyBiZWVuICIgKwogICAgICAgICJpbml0aWFsaXplZCBhcyBhbiBJbnRsLkRhdGVUaW1lRm9ybWF0Iik7Cn0KCg==","commentary":"","description":"Tests that Intl.DateTimeFormat.prototype is an object that\nhas been initialized as an Intl.DateTimeFormat.","path":"TestCases/intl402/ch12/12.3/12.3.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuRGF0ZVRpbWVGb3JtYXQucHJvdG90eXBlCiAqICAgICBtZWV0cyB0aGUgcmVxdWlyZW1lbnRzIGZvciBidWlsdC1pbiBvYmplY3RzIGRlZmluZWQgYnkgdGhlIGludHJvZHVjdGlvbiBvZgogKiAgICAgY2hhcHRlciAxNSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0QnVpbHRJbk9iamVjdC5qcyIpOwoKdGVzdEJ1aWx0SW5PYmplY3QoSW50bC5EYXRlVGltZUZvcm1hdC5wcm90b3R5cGUsIGZhbHNlLCBmYWxzZSwgWyJjb25zdHJ1Y3RvciIsICJmb3JtYXQiLCAicmVzb2x2ZWRPcHRpb25zIl0pOwoK","commentary":"","description":"Tests that Intl.DateTimeFormat.prototype\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch12/12.3/12.3_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IFN0cmluZy5wcm90b3R5cGUubG9jYWxlQ29tcGFyZQogKiAgICAgbWVldHMgdGhlIHJlcXVpcmVtZW50cyBmb3IgYnVpbHQtaW4gb2JqZWN0cyBkZWZpbmVkIGJ5IHRoZSBpbnRyb2R1Y3Rpb24gb2YKICogICAgIGNoYXB0ZXIgMTUgb2YgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbi4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEJ1aWx0SW5PYmplY3QuanMiKTsKCnRlc3RCdWlsdEluT2JqZWN0KFN0cmluZy5wcm90b3R5cGUubG9jYWxlQ29tcGFyZSwgdHJ1ZSwgZmFsc2UsIFtdLCAxKTsKCg==","commentary":"","description":"Tests that String.prototype.localeCompare\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch13/13.1/13.1.1_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IE51bWJlci5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcKICogICAgIG1lZXRzIHRoZSByZXF1aXJlbWVudHMgZm9yIGJ1aWx0LWluIG9iamVjdHMgZGVmaW5lZCBieSB0aGUgaW50cm9kdWN0aW9uIG9mCiAqICAgICBjaGFwdGVyIDE1IG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24uCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RCdWlsdEluT2JqZWN0LmpzIik7Cgp0ZXN0QnVpbHRJbk9iamVjdChOdW1iZXIucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLCB0cnVlLCBmYWxzZSwgW10sIDApOwoK","commentary":"","description":"Tests that Number.prototype.toLocaleString\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch13/13.2/13.2.1_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IERhdGUucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nCiAqICAgICBtZWV0cyB0aGUgcmVxdWlyZW1lbnRzIGZvciBidWlsdC1pbiBvYmplY3RzIGRlZmluZWQgYnkgdGhlIGludHJvZHVjdGlvbiBvZgogKiAgICAgY2hhcHRlciAxNSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0QnVpbHRJbk9iamVjdC5qcyIpOwoKdGVzdEJ1aWx0SW5PYmplY3QoRGF0ZS5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcsIHRydWUsIGZhbHNlLCBbXSwgMCk7Cgo=","commentary":"","description":"Tests that Date.prototype.toLocaleString\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch13/13.3/13.3.1_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IERhdGUucHJvdG90eXBlLnRvTG9jYWxlRGF0ZVN0cmluZwogKiAgICAgbWVldHMgdGhlIHJlcXVpcmVtZW50cyBmb3IgYnVpbHQtaW4gb2JqZWN0cyBkZWZpbmVkIGJ5IHRoZSBpbnRyb2R1Y3Rpb24gb2YKICogICAgIGNoYXB0ZXIgMTUgb2YgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbi4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEJ1aWx0SW5PYmplY3QuanMiKTsKCnRlc3RCdWlsdEluT2JqZWN0KERhdGUucHJvdG90eXBlLnRvTG9jYWxlRGF0ZVN0cmluZywgdHJ1ZSwgZmFsc2UsIFtdLCAwKTsKCg==","commentary":"","description":"Tests that Date.prototype.toLocaleDateString\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch13/13.3/13.3.2_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IERhdGUucHJvdG90eXBlLnRvTG9jYWxlVGltZVN0cmluZwogKiAgICAgbWVldHMgdGhlIHJlcXVpcmVtZW50cyBmb3IgYnVpbHQtaW4gb2JqZWN0cyBkZWZpbmVkIGJ5IHRoZSBpbnRyb2R1Y3Rpb24gb2YKICogICAgIGNoYXB0ZXIgMTUgb2YgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbi4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEJ1aWx0SW5PYmplY3QuanMiKTsKCnRlc3RCdWlsdEluT2JqZWN0KERhdGUucHJvdG90eXBlLnRvTG9jYWxlVGltZVN0cmluZywgdHJ1ZSwgZmFsc2UsIFtdLCAwKTsKCg==","commentary":"","description":"Tests that Date.prototype.toLocaleTimeString\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch13/13.3/13.3.3_L15.js"}]}} \ No newline at end of file
+{"testsCollection":{"name":"Chapter - intl402","numTests":"66","tests":[{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHN0cnVjdHVyYWxseSB2YWxpZCBsYW5ndWFnZSB0YWdzIGFyZSBhY2NlcHRlZC4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEludGwuanMiKTsKCnZhciB2YWxpZExhbmd1YWdlVGFncyA9IFsKICAgICJkZSIsIC8vIElTTyA2MzkgbGFuZ3VhZ2UgY29kZQogICAgImRlLURFIiwgLy8gKyBJU08gMzE2Ni0xIGNvdW50cnkgY29kZQogICAgIkRFLWRlIiwgLy8gdGFncyBhcmUgY2FzZS1pbnNlbnNpdGl2ZQogICAgImNtbiIsIC8vIElTTyA2MzkgbGFuZ3VhZ2UgY29kZQogICAgImNtbi1IYW5zIiwgLy8gKyBzY3JpcHQgY29kZQogICAgIkNNTi1oQU5TIiwgLy8gdGFncyBhcmUgY2FzZS1pbnNlbnNpdGl2ZQogICAgImNtbi1oYW5zLWNuIiwgLy8gKyBJU08gMzE2Ni0xIGNvdW50cnkgY29kZQogICAgImVzLTQxOSIsIC8vICsgVU4gTS40OSByZWdpb24gY29kZQogICAgImVzLTQxOS11LW51LWxhdG4tY3UtYm9iIiwgLy8gKyBVbmljb2RlIGxvY2FsZSBleHRlbnNpb24gc2VxdWVuY2UKICAgICJpLWtsaW5nb24iLCAvLyBncmFuZGZhdGhlcmVkIHRhZwogICAgImNtbi1oYW5zLWNuLXQtY2EtdS1jYS14LXQtdSIsIC8vIHNpbmdsZXRvbiBzdWJ0YWdzIGNhbiBhbHNvIGJlIHVzZWQgYXMgcHJpdmF0ZSB1c2Ugc3VidGFncwogICAgImVub2NoaWFuLWVub2NoaWFuIiwgLy8gbGFuZ3VhZ2UgYW5kIHZhcmlhbnQgc3VidGFncyBtYXkgYmUgdGhlIHNhbWUKICAgICJkZS1ncmVnb3J5LXUtY2EtZ3JlZ29yeSIgLy8gdmFyaWFudCBhbmQgZXh0ZW5zaW9uIHN1YnRhZ3MgbWF5IGJlIHRoZSBzYW1lCl07Cgp0ZXN0V2l0aEludGxDb25zdHJ1Y3RvcnMoZnVuY3Rpb24gKENvbnN0cnVjdG9yKSB7CiAgICB2YWxpZExhbmd1YWdlVGFncy5mb3JFYWNoKGZ1bmN0aW9uICh0YWcpIHsKICAgICAgICAvLyB0aGlzIG11c3Qgbm90IHRocm93IGFuIGV4Y2VwdGlvbiBmb3IgYSB2YWxpZCBsYW5ndWFnZSB0YWcKICAgICAgICB2YXIgb2JqID0gbmV3IENvbnN0cnVjdG9yKFt0YWddKTsKICAgIH0pOwogICAgcmV0dXJuIHRydWU7Cn0pOwoK","commentary":"","description":"Tests that structurally valid language tags are accepted.","path":"TestCases/intl402/ch06/6.2/6.2.2_a.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IGxhbmd1YWdlIHRhZ3Mgd2l0aCAiXyIgYXJlIG5vdCBhY2NlcHRlZC4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEludGwuanMiKTsKCnZhciBpbnZhbGlkTGFuZ3VhZ2VUYWdzID0gWwogICAgImRlX0RFIiwKICAgICJERV9kZSIsCiAgICAiY21uX0hhbnMiLAogICAgImNtbi1oYW5zX2NuIiwKICAgICJlc180MTkiLAogICAgImVzLTQxOS11LW51LWxhdG4tY3VfYm9iIiwKICAgICJpX2tsaW5nb24iLAogICAgImNtbi1oYW5zLWNuLXQtY2EtdS1jYS14X3QtdSIsCiAgICAiZW5vY2hpYW5fZW5vY2hpYW4iLAogICAgImRlLWdyZWdvcnlfdS1jYS1ncmVnb3J5IgpdOwoKdGVzdFdpdGhJbnRsQ29uc3RydWN0b3JzKGZ1bmN0aW9uIChDb25zdHJ1Y3RvcikgewogICAgaW52YWxpZExhbmd1YWdlVGFncy5mb3JFYWNoKGZ1bmN0aW9uICh0YWcpIHsKICAgICAgICB2YXIgZXJyb3I7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgLy8gdGhpcyBtdXN0IHRocm93IGFuIGV4Y2VwdGlvbiBmb3IgYW4gaW52YWxpZCBsYW5ndWFnZSB0YWcKICAgICAgICAgICAgdmFyIG9iaiA9IG5ldyBDb25zdHJ1Y3RvcihbdGFnXSk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBlcnJvciA9IGU7CiAgICAgICAgfQogICAgICAgIGlmIChlcnJvciA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICRFUlJPUigiSW52YWxpZCBsYW5ndWFnZSB0YWcgIiArIHRhZyArICIgd2FzIG5vdCByZWplY3RlZC4iKTsKICAgICAgICB9IGVsc2UgaWYgKGVycm9yLm5hbWUgIT09ICJSYW5nZUVycm9yIikgewogICAgICAgICAgICAkRVJST1IoIkludmFsaWQgbGFuZ3VhZ2UgdGFnICIgKyB0YWcgKyAiIHdhcyByZWplY3RlZCB3aXRoIHdyb25nIGVycm9yICIgKyBlcnJvci5uYW1lICsgIi4iKTsKICAgICAgICB9CiAgICB9KTsKICAgIHJldHVybiB0cnVlOwp9KTsKCg==","commentary":"","description":"Tests that language tags with \"_\" are not accepted.","path":"TestCases/intl402/ch06/6.2/6.2.2_b.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IGxhbmd1YWdlIHRhZ3Mgd2l0aCBpbnZhbGlkIHN1YnRhZyBzZXF1ZW5jZXMgYXJlIG5vdCBhY2NlcHRlZC4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEludGwuanMiKTsKCnZhciBpbnZhbGlkTGFuZ3VhZ2VUYWdzID0gWwogICAgIiIsIC8vIGVtcHR5IHRhZwogICAgImkiLCAvLyBzaW5nbGV0b24gYWxvbmUKICAgICJ4IiwgLy8gcHJpdmF0ZSB1c2Ugd2l0aG91dCBzdWJ0YWcKICAgICJ1IiwgLy8gZXh0ZW5zaW9uIHNpbmdsZXRvbiBpbiBmaXJzdCBwbGFjZQogICAgIjQxOSIsIC8vIHJlZ2lvbiBjb2RlIGluIGZpcnN0IHBsYWNlCiAgICAidS1udS1sYXRuLWN1LWJvYiIsIC8vIGV4dGVuc2lvbiBzZXF1ZW5jZSB3aXRob3V0IGxhbmd1YWdlCiAgICAiaGFucy1jbW4tY24iLCAvLyAiaGFucyIgY291bGQgdGhlb3JldGljYWxseSBiZSBhIDQtbGV0dGVyIGxhbmd1YWdlIGNvZGUsCiAgICAgICAgICAgICAgICAgICAvLyBidXQgdGhvc2UgY2FuJ3QgYmUgZm9sbG93ZWQgYnkgZXh0bGFuZyBjb2Rlcy4KICAgICJjbW4taGFucy1jbi11LXUiLCAvLyBkdXBsaWNhdGUgc2luZ2xldG9uCiAgICAiY21uLWhhbnMtY24tdC11LWNhLXUiLCAvLyBkdXBsaWNhdGUgc2luZ2xldG9uCiAgICAiZGUtZ3JlZ29yeS1ncmVnb3J5IiwgLy8gZHVwbGljYXRlIHZhcmlhbnQKICAgICLkuK3mlociLCAvLyBub24tQVNDSUkgbGV0dGVycwogICAgImVuLcOfIiwgLy8gbm9uLUFTQ0lJIGxldHRlcnMKICAgICLEsWQiIC8vIG5vbi1BU0NJSSBsZXR0ZXJzCl07Cgp0ZXN0V2l0aEludGxDb25zdHJ1Y3RvcnMoZnVuY3Rpb24gKENvbnN0cnVjdG9yKSB7CiAgICBpbnZhbGlkTGFuZ3VhZ2VUYWdzLmZvckVhY2goZnVuY3Rpb24gKHRhZykgewogICAgICAgIHZhciBlcnJvcjsKICAgICAgICB0cnkgewogICAgICAgICAgICAvLyB0aGlzIG11c3QgdGhyb3cgYW4gZXhjZXB0aW9uIGZvciBhbiBpbnZhbGlkIGxhbmd1YWdlIHRhZwogICAgICAgICAgICB2YXIgb2JqID0gbmV3IENvbnN0cnVjdG9yKFt0YWddKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGVycm9yID0gZTsKICAgICAgICB9CiAgICAgICAgaWYgKGVycm9yID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgJEVSUk9SKCJJbnZhbGlkIGxhbmd1YWdlIHRhZyAiICsgdGFnICsgIiB3YXMgbm90IHJlamVjdGVkLiIpOwogICAgICAgIH0gZWxzZSBpZiAoZXJyb3IubmFtZSAhPT0gIlJhbmdlRXJyb3IiKSB7CiAgICAgICAgICAgICRFUlJPUigiSW52YWxpZCBsYW5ndWFnZSB0YWcgIiArIHRhZyArICIgd2FzIHJlamVjdGVkIHdpdGggd3JvbmcgZXJyb3IgIiArIGVycm9yLm5hbWUgKyAiLiIpOwogICAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIHRydWU7Cn0pOwoK","commentary":"","description":"Tests that language tags with invalid subtag sequences are not accepted.","path":"TestCases/intl402/ch06/6.2/6.2.2_c.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTEtMjAxMiBOb3JiZXJ0IExpbmRlbmJlcmcuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBsYW5ndWFnZSB0YWdzIGFyZSBjYW5vbmljYWxpemVkIGluIHJldHVybiB2YWx1ZXMuCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RJbnRsLmpzIik7Cgp2YXIgY2Fub25pY2FsaXplZFRhZ3MgPSB7CiAgICAiZGUiOiBbImRlIl0sCiAgICAiZGUtREUiOiBbImRlLURFIiwgImRlIl0sCiAgICAiREUtZGUiOiBbImRlLURFIiwgImRlIl0sCiAgICAiY21uIjogWyJjbW4iXSwKICAgICJDTU4taEFOUyI6IFsiY21uLUhhbnMiLCAiY21uIl0sCiAgICAiY21uLWhhbnMtY24iOiBbImNtbi1IYW5zLUNOIiwgImNtbi1IYW5zIiwgImNtbiJdLAogICAgImVzLTQxOSI6IFsiZXMtNDE5IiwgImVzIl0sCiAgICAiZXMtNDE5LXUtbnUtbGF0biI6IFsiZXMtNDE5LXUtbnUtbGF0biIsICJlcy00MTkiLCAiZXMiLCAiZXMtdS1udS1sYXRuIl0sCiAgICAvLyAtdS1jYSBpcyBpbmNvbXBsZXRlLCBzbyBpdCB3aWxsIG5vdCBzaG93IHVwIGluIHJlc29sdmVkT3B0aW9ucygpLmxvY2FsZQogICAgImNtbi1oYW5zLWNuLXUtY2EtdC1jYS14LXQtdSI6IFsiY21uLUhhbnMtQ04tdC1jYS11LWNhLXgtdC11IiwgImNtbi1IYW5zLUNOLXQtY2EteC10LXUiLCAiY21uLUhhbnMtQ04tdC1jYS14LXQiLCAiY21uLUhhbnMtQ04tdC1jYSIsICJjbW4tSGFucy1DTiIsICJjbW4tSGFucyIsICJjbW4iXSwKICAgICJlbm9jaGlhbi1lbm9jaGlhbiI6IFsiZW5vY2hpYW4tZW5vY2hpYW4iLCAiZW5vY2hpYW4iXSwKICAgICJkZS1ncmVnb3J5LXUtY2EtZ3JlZ29yeSI6IFsiZGUtZ3JlZ29yeS11LWNhLWdyZWdvcnkiLCAiZGUtZ3JlZ29yeSIsICJkZS11LWNhLWdyZWdvcnkiLCAiZGUiXSwKICAgICJuby1ueW4iOiBbIm5uIl0sCiAgICAiaS1rbGluZ29uIjogWyJ0bGgiXSwKICAgICJzZ24tR1IiOiBbImdzcyJdLAogICAgImppIjogWyJ5aSJdLAogICAgImRlLUREIjogWyJkZS1ERSIsICJkZSJdLAogICAgInpoLWhhay1DTiI6IFsiaGFrLUNOIiwgImhhayJdLAogICAgInNnbi1pbHMiOiBbImlscyJdLAogICAgImluIjogWyJpZCJdCn07CgovLyBtYWtlIHN1cmUgdGhlIGRhdGEgYWJvdmUgaXMgY29ycmVjdApPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjYW5vbmljYWxpemVkVGFncykuZm9yRWFjaChmdW5jdGlvbiAodGFnKSB7CiAgICBjYW5vbmljYWxpemVkVGFnc1t0YWddLmZvckVhY2goZnVuY3Rpb24gKGNhbm9uaWNhbFRhZykgewogICAgICAgIGlmICghaXNDYW5vbmljYWxpemVkU3RydWN0dXJhbGx5VmFsaWRMYW5ndWFnZVRhZyhjYW5vbmljYWxUYWcpKSB7CiAgICAgICAgICAgICRFUlJPUigiVGVzdCBkYXRhIFwiIiArIGNhbm9uaWNhbFRhZyArICJcIiBpcyBub3QgY2Fub25pY2FsaXplZCBhbmQgc3RydWN0dXJhbGx5IHZhbGlkIGxhbmd1YWdlIHRhZy4iKTsKICAgICAgICB9CiAgICB9KTsKfSk7CgovLyBub3cgdGhlIGFjdHVhbCB0ZXN0CnRlc3RXaXRoSW50bENvbnN0cnVjdG9ycyhmdW5jdGlvbiAoQ29uc3RydWN0b3IpIHsKICAgIHZhciBkZWZhdWx0TG9jYWxlID0gbmV3IENvbnN0cnVjdG9yKCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlOwogICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoY2Fub25pY2FsaXplZFRhZ3MpLmZvckVhY2goZnVuY3Rpb24gKHRhZykgewogICAgICAgIC8vIHVzZSBsb29rdXAgbG9jYWxlIG1hdGNoZXIgdG8ga2VlcCB0aGUgc2V0IG9mIHBvc3NpYmxlIHJldHVybiB2YWx1ZXMgcHJlZGljdGFibGUKCiAgICAgICAgLy8gVmFyaWFudCAxOiBjb25zdHJ1Y3QgYW4gb2JqZWN0IGFuZCBzZWUgd2hldGhlciBpdHMgbG9jYWxlIGlzIGNhbm9uaWNhbGl6ZWQuCiAgICAgICAgLy8gSW4gdGhpcyB2YXJpYW50LCBzaG9ydGVuZWQgZm9ybXMgb3IgdGhlIGRlZmF1bHQgbG9jYWxlIG1heSBiZSByZXR1cm5lZAogICAgICAgIHZhciBvYmplY3QgPSBuZXcgQ29uc3RydWN0b3IoW3RhZ10sIHtsb2NhbGVNYXRjaGVyOiAibG9va3VwIn0pOwogICAgICAgIHZhciBsb2NhbGUgPSBvYmplY3QucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlOwogICAgICAgIGlmIChjYW5vbmljYWxpemVkVGFnc1t0YWddLmluZGV4T2YobG9jYWxlKSA9PT0gLTEgJiYgbG9jYWxlICE9PSBkZWZhdWx0TG9jYWxlKSB7CiAgICAgICAgICAgICRFUlJPUigiRm9yICIgKyB0YWcgKyAiIGdvdCAiICsgbG9jYWxlICsgIjsgZXhwZWN0ZWQgb25lIG9mICIgKwogICAgICAgICAgICAgICAgY2Fub25pY2FsaXplZFRhZ3NbdGFnXS5qb2luKCIsICIpICsgIi4iKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gVmFyaWFudCAyOiBnZXQgdGhlIHN1cHBvcnRlZCBsb2NhbGVzLiBJZiB0aGUgdGFnIGlzIHN1cHBvcnRlZCwgaXQgc2hvdWxkIGJlIHJldHVybmVkIGNhbm9uaWNhbGl6ZWQgYnV0IHVuc2hvcnRlbmVkCiAgICAgICAgdmFyIHN1cHBvcnRlZCA9IENvbnN0cnVjdG9yLnN1cHBvcnRlZExvY2FsZXNPZihbdGFnXSk7CiAgICAgICAgaWYgKHN1cHBvcnRlZC5sZW5ndGggPiAwICYmIHN1cHBvcnRlZFswXSAhPT0gY2Fub25pY2FsaXplZFRhZ3NbdGFnXVswXSkgewogICAgICAgICAgICAkRVJST1IoIkZvciAiICsgdGFnICsgIiBnb3QgIiArIHN1cHBvcnRlZFswXSArICI7IGV4cGVjdGVkICIgKwogICAgICAgICAgICAgICAgY2Fub25pY2FsaXplZFRhZ3NbdGFnXVswXSArICIuIik7CiAgICAgICAgfSAgICAgICAgICAgIAogICAgfSk7CiAgICByZXR1cm4gdHJ1ZTsKfSk7Cgo=","commentary":"","description":"Tests that language tags are canonicalized in return values.","path":"TestCases/intl402/ch06/6.2/6.2.3.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBpcyBhIFN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlCiAqIHN0cnVjdHVyYWxseSB2YWxpZCBhbmQgY2Fub25pY2FsaXplZCBCQ1AgNDcgbGFuZ3VhZ2UgdGFnLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0SW50bC5qcyIpOwoKdGVzdFdpdGhJbnRsQ29uc3RydWN0b3JzKGZ1bmN0aW9uIChDb25zdHJ1Y3RvcikgewogICAgdmFyIGRlZmF1bHRMb2NhbGUgPSBuZXcgQ29uc3RydWN0b3IoKS5yZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGU7CiAgICBpZiAoIWlzQ2Fub25pY2FsaXplZFN0cnVjdHVyYWxseVZhbGlkTGFuZ3VhZ2VUYWcoZGVmYXVsdExvY2FsZSkpIHsKICAgICAgICAkRVJST1IoIkRlZmF1bHQgbG9jYWxlIFwiIiArIGRlZmF1bHRMb2NhbGUgKyAiXCIgaXMgbm90IGNhbm9uaWNhbGl6ZWQgYW5kIHN0cnVjdHVyYWxseSB2YWxpZCBsYW5ndWFnZSB0YWcuIik7CiAgICB9CiAgICByZXR1cm4gdHJ1ZTsKfSk7Cgo=","commentary":"","description":"Tests that the default locale is a String value representing the\nstructurally valid and canonicalized BCP 47 language tag.","path":"TestCases/intl402/ch06/6.2/6.2.4.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHdlbGwtZm9ybWVkIGN1cnJlbmN5IGNvZGVzIGFyZSBhY2NlcHRlZC4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgp2YXIgd2VsbEZvcm1lZEN1cnJlbmN5Q29kZXMgPSBbCiAgICAiQk9CIiwKICAgICJFVVIiLAogICAgInVzZCIsIC8vIGN1cnJlbmN5IGNvZGVzIGFyZSBjYXNlLWluc2Vuc2l0aXZlCiAgICAiWGRSIiwKICAgICJ4VHMiCl07Cgp3ZWxsRm9ybWVkQ3VycmVuY3lDb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChjb2RlKSB7CiAgICAvLyB0aGlzIG11c3Qgbm90IHRocm93IGFuIGV4Y2VwdGlvbiBmb3IgYSB2YWxpZCBjdXJyZW5jeSBjb2RlCiAgICB2YXIgZm9ybWF0ID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KFsiZGUtZGUiXSwge3N0eWxlOiAiY3VycmVuY3kiLCBjdXJyZW5jeTogY29kZX0pOwogICAgaWYgKGZvcm1hdC5yZXNvbHZlZE9wdGlvbnMoKS5jdXJyZW5jeSAhPT0gY29kZS50b1VwcGVyQ2FzZSgpKSB7CiAgICAgICAgJEVSUk9SKCJDdXJyZW5jeSAiICsgY29kZSArICIgd2FzIG5vdCBjb3JyZWN0bHkgYWNjZXB0ZWQ7IHR1cm5lZCBpbnRvICIgKwogICAgICAgICAgICBmb3JtYXQucmVzb2x2ZWRPcHRpb25zKCkuY3VycmVuY3kgKyAiLiIpOwogICAgfQp9KTsKCg==","commentary":"","description":"Tests that well-formed currency codes are accepted.","path":"TestCases/intl402/ch06/6.3/6.3.1_a.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IGludmFsaWQgY3VycmVuY3kgY29kZXMgYXJlIG5vdCBhY2NlcHRlZC4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgp2YXIgaW52YWxpZEN1cnJlbmN5Q29kZXMgPSBbCiAgICAi4oKsIiwKICAgICIkIiwKICAgICJTRnIuIiwKICAgICJETSIsCiAgICAiS1LigqkiLAogICAgIjcwMiIsCiAgICAiw59QIiwKICAgICLEsW5yIgpdOwoKaW52YWxpZEN1cnJlbmN5Q29kZXMuZm9yRWFjaChmdW5jdGlvbiAoY29kZSkgewogICAgdmFyIGVycm9yOwogICAgdHJ5IHsKICAgICAgICAvLyB0aGlzIG11c3QgdGhyb3cgYW4gZXhjZXB0aW9uIGZvciBhbiBpbnZhbGlkIGN1cnJlbmN5IGNvZGUKICAgICAgICB2YXIgZm9ybWF0ID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KFsiZGUtZGUiXSwge3N0eWxlOiAiY3VycmVuY3kiLCBjdXJyZW5jeTogY29kZX0pOwogICAgfSBjYXRjaCAoZSkgewogICAgICAgIGVycm9yID0gZTsKICAgIH0KICAgIGlmIChlcnJvciA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgJEVSUk9SKCJJbnZhbGlkIGN1cnJlbmN5IGNvZGUgIiArIGNvZGUgKyAiIHdhcyBub3QgcmVqZWN0ZWQuIik7CiAgICB9IGVsc2UgaWYgKGVycm9yLm5hbWUgIT09ICJSYW5nZUVycm9yIikgewogICAgICAgICRFUlJPUigiSW52YWxpZCBjdXJyZW5jeSBjb2RlICIgKyBjb2RlICsgIiB3YXMgcmVqZWN0ZWQgd2l0aCB3cm9uZyBlcnJvciAiICsgZXJyb3IubmFtZSArICIuIik7CiAgICB9Cn0pOwoK","commentary":"","description":"Tests that invalid currency codes are not accepted.","path":"TestCases/intl402/ch06/6.3/6.3.1_b.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHZhbGlkIHRpbWUgem9uZSBuYW1lcyBhcmUgYWNjZXB0ZWQuCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKdmFyIHZhbGlkVGltZVpvbmVOYW1lcyA9IFsKICAgICJVVEMiLAogICAgInV0YyIgLy8gdGltZSB6b25lIG5hbWVzIGFyZSBjYXNlLWluc2Vuc2l0aXZlCl07Cgp2YWxpZFRpbWVab25lTmFtZXMuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkgewogICAgLy8gdGhpcyBtdXN0IG5vdCB0aHJvdyBhbiBleGNlcHRpb24gZm9yIGEgdmFsaWQgdGltZSB6b25lIG5hbWUKICAgIHZhciBmb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChbImRlLWRlIl0sIHt0aW1lWm9uZTogbmFtZX0pOwogICAgaWYgKGZvcm1hdC5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSAhPT0gbmFtZS50b1VwcGVyQ2FzZSgpKSB7CiAgICAgICAgJEVSUk9SKCJUaW1lIHpvbmUgbmFtZSAiICsgbmFtZSArICIgd2FzIG5vdCBjb3JyZWN0bHkgYWNjZXB0ZWQ7IHR1cm5lZCBpbnRvICIgKwogICAgICAgICAgICBmb3JtYXQucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmUgKyAiLiIpOwogICAgfQp9KTsKCg==","commentary":"","description":"Tests that valid time zone names are accepted.","path":"TestCases/intl402/ch06/6.4/6.4_a.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IGludmFsaWQgdGltZSB6b25lIG5hbWVzIGFyZSBub3QgYWNjZXB0ZWQuCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKdmFyIGludmFsaWRUaW1lWm9uZU5hbWVzID0gWwogICAgIiIsCiAgICAiTUVaIiwgLy8gbG9jYWxpemVkIGFiYnJldmlhdGlvbgogICAgIlBhY2lmaWMgVGltZSIsIC8vIGxvY2FsaXplZCBsb25nIGZvcm0KICAgICJjbnNoYSIsIC8vIEJDUCA0NyB0aW1lIHpvbmUgY29kZQogICAgImludmFsaWQiLCAvLyBhcyB0aGUgbmFtZSBzYXlzCiAgICAiRXVyb3BlL8Swc3RhbmJ1bCIsIC8vIG5vbi1BU0NJSSBsZXR0ZXIKICAgICJhc8SxYS9iYWt1IiwgLy8gbm9uLUFTQ0lJIGxldHRlcgogICAgImV1cm9wZS9icnXDn2VscyIgIC8vIG5vbi1BU0NJSSBsZXR0ZXIKXTsKCmludmFsaWRUaW1lWm9uZU5hbWVzLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHsKICAgIHZhciBlcnJvcjsKICAgIHRyeSB7CiAgICAgICAgLy8gdGhpcyBtdXN0IHRocm93IGFuIGV4Y2VwdGlvbiBmb3IgYW4gaW52YWxpZCB0aW1lIHpvbmUgbmFtZQogICAgICAgIHZhciBmb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChbImRlLWRlIl0sIHt0aW1lWm9uZTogbmFtZX0pOwogICAgfSBjYXRjaCAoZSkgewogICAgICAgIGVycm9yID0gZTsKICAgIH0KICAgIGlmIChlcnJvciA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgJEVSUk9SKCJJbnZhbGlkIHRpbWUgem9uZSBuYW1lICIgKyBuYW1lICsgIiB3YXMgbm90IHJlamVjdGVkLiIpOwogICAgfSBlbHNlIGlmIChlcnJvci5uYW1lICE9PSAiUmFuZ2VFcnJvciIpIHsKICAgICAgICAkRVJST1IoIkludmFsaWQgdGltZSB6b25lIG5hbWUgIiArIG5hbWUgKyAiIHdhcyByZWplY3RlZCB3aXRoIHdyb25nIGVycm9yICIgKyBlcnJvci5uYW1lICsgIi4iKTsKICAgIH0KfSk7Cgo=","commentary":"","description":"Tests that invalid time zone names are not accepted.","path":"TestCases/intl402/ch06/6.4/6.4_b.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IGFkZGl0aW9uYWwgdGltZSB6b25lIG5hbWVzLCBpZiBhY2NlcHRlZCwgYXJlIGhhbmRsZWQgY29ycmVjdGx5LgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCi8vIGNhbm9uaWNhbGl6YXRpb24gc3BlY2lmaWVkIGluIGNvbmZvcm1hbmNlIGNsYXVzZQp2YXIgYWRkaXRpb25hbFRpbWVab25lTmFtZXMgPSB7CiAgICAiRXRjL0dNVCI6ICJVVEMiLAogICAgIkdyZWVud2ljaCI6ICJVVEMiLAogICAgIlBSQyI6ICJBc2lhL1NoYW5naGFpIiwKICAgICJBbUVySWNBL0xvU19hTmdFbEVzIjogIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLAogICAgImV0Yy9nbXQrNyI6ICJFdGMvR01UKzciCn07CgpPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhhZGRpdGlvbmFsVGltZVpvbmVOYW1lcykuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkgewogICAgdmFyIGZvcm1hdCwgZXJyb3I7CiAgICB0cnkgewogICAgICAgIGZvcm1hdCA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFtdLCB7dGltZVpvbmU6IG5hbWV9KTsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICBlcnJvciA9IGU7CiAgICB9CiAgICBpZiAoZXJyb3IgPT09IHVuZGVmaW5lZCkgewogICAgICAgIHZhciBhY3R1YWwgPSBmb3JtYXQucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmU7CiAgICAgICAgdmFyIGV4cGVjdGVkID0gYWRkaXRpb25hbFRpbWVab25lTmFtZXMubmFtZTsKICAgICAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkgewogICAgICAgICAgICAkRVJST1IoIlRpbWUgem9uZSBuYW1lICIgKyBuYW1lICsgIiB3YXMgYWNjZXB0ZWQsIGJ1dCBpbmNvcnJlY3RseSBjYW5vbmljYWxpemVkIHRvICIgKwogICAgICAgICAgICAgICAgYWN0dWFsICsgIjsgZXhwZWN0ZWQgIiArIGV4cGVjdGVkICsgIi4iKTsKICAgICAgICB9CiAgICB9IGVsc2UgaWYgKGVycm9yLm5hbWUgIT09ICJSYW5nZUVycm9yIikgewogICAgICAgICRFUlJPUigiVGltZSB6b25lIG5hbWUgIiArIG5hbWUgKyAiIHdhcyByZWplY3RlZCB3aXRoIHdyb25nIGVycm9yICIgKyBlcnJvci5uYW1lICsgIi4iKTsKICAgIH0KfSk7Cgo=","commentary":"","description":"Tests that additional time zone names, if accepted, are handled correctly.","path":"TestCases/intl402/ch06/6.4/6.4_c.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwKICogICAgIG1lZXRzIHRoZSByZXF1aXJlbWVudHMgZm9yIGJ1aWx0LWluIG9iamVjdHMgZGVmaW5lZCBieSB0aGUgaW50cm9kdWN0aW9uIG9mCiAqICAgICBjaGFwdGVyIDE1IG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24uCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RCdWlsdEluT2JqZWN0LmpzIik7Cgp0ZXN0QnVpbHRJbk9iamVjdChJbnRsLCBmYWxzZSwgZmFsc2UsIFsiQ29sbGF0b3IiLCAiTnVtYmVyRm9ybWF0IiwgIkRhdGVUaW1lRm9ybWF0Il0pOwoK","commentary":"","description":"Tests that Intl\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch08/8.0/8.0_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IGRlZmF1bHQgbG9jYWxlIGlzIGF2YWlsYWJsZS4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEludGwuanMiKTsKCnRlc3RXaXRoSW50bENvbnN0cnVjdG9ycyhmdW5jdGlvbiAoQ29uc3RydWN0b3IpIHsKICAgIHZhciBkZWZhdWx0TG9jYWxlID0gbmV3IENvbnN0cnVjdG9yKCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlOwogICAgdmFyIHN1cHBvcnRlZExvY2FsZXMgPSBDb25zdHJ1Y3Rvci5zdXBwb3J0ZWRMb2NhbGVzT2YoW2RlZmF1bHRMb2NhbGVdKTsKICAgIGlmIChzdXBwb3J0ZWRMb2NhbGVzLmluZGV4T2YoZGVmYXVsdExvY2FsZSkgPT09IC0xKSB7CiAgICAgICAgJEVSUk9SKCJEZWZhdWx0IGxvY2FsZSBpcyBub3QgcmVwb3J0ZWQgYXMgYXZhaWxhYmxlLiIpOwogICAgfQp9KTsKCg==","commentary":"","description":"Tests that default locale is available.","path":"TestCases/intl402/ch09/9.1/9.1_a.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IGFwcHJvcHJpYXRlIGZhbGxiYWNrIGxvY2FsZXMgYXJlIHByb3ZpZGVkIGZvcgogKiAgICAgc3VwcG9ydGVkIGxvY2FsZXMuCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RJbnRsLmpzIik7Cgp0ZXN0V2l0aEludGxDb25zdHJ1Y3RvcnMoZnVuY3Rpb24gKENvbnN0cnVjdG9yKSB7CiAgICB2YXIgaW5mbyA9IGdldExvY2FsZVN1cHBvcnRJbmZvKENvbnN0cnVjdG9yKTsKICAgIHZhciBmYWxsYmFjazsKICAgIGluZm8uc3VwcG9ydGVkLmZvckVhY2goZnVuY3Rpb24gKGxvY2FsZSkgewogICAgICAgIHZhciBwb3MgPSBsb2NhbGUubGFzdEluZGV4T2YoIi0iKTsKICAgICAgICBpZiAocG9zICE9PSAtMSkgewogICAgICAgICAgICBmYWxsYmFjayA9IGxvY2FsZS5zdWJzdHJpbmcoMCwgcG9zKTsKICAgICAgICAgICAgaWYgKGluZm8uc3VwcG9ydGVkLmluZGV4T2YoZmFsbGJhY2spID09PSAtMSkgewogICAgICAgICAgICAgICAgJEVSUk9SKCJMb2NhbGUgIiArIGxvY2FsZSArICIgaXMgc3VwcG9ydGVkLCBidXQgZmFsbGJhY2sgIiArIGZhbGxiYWNrICsgIiBpc24ndC4iKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB2YXIgbWF0Y2ggPSAvKFthLXpdezIsM30pKC1bQS1aXVthLXpdezN9KSgtW0EtWl17Mn0pLy5leGVjKGxvY2FsZSk7CiAgICAgICAgaWYgKG1hdGNoICE9PSBudWxsKSB7CiAgICAgICAgICAgIGZhbGxiYWNrID0gbWF0Y2hbMV0gKyBtYXRjaFszXTsKICAgICAgICAgICAgaWYgKGluZm8uc3VwcG9ydGVkLmluZGV4T2YoZmFsbGJhY2spID09PSAtMSkgewogICAgICAgICAgICAgICAgJEVSUk9SKCJMb2NhbGUgIiArIGxvY2FsZSArICIgaXMgc3VwcG9ydGVkLCBidXQgZmFsbGJhY2sgIiArIGZhbGxiYWNrICsgIiBpc24ndC4iKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0pOwp9KTsKCg==","commentary":"","description":"Tests that appropriate fallback locales are provided for\n supported locales.","path":"TestCases/intl402/ch09/9.1/9.1_b.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IGNhbm9uaWNhbGl6YXRpb24gb2YgbG9jYWxlIGxpc3RzIHRyZWF0cyB1bmRlZmluZWQgYW5kIGVtcHR5IGxpc3RzIHRoZSBzYW1lLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0SW50bC5qcyIpOwoKdGVzdFdpdGhJbnRsQ29uc3RydWN0b3JzKGZ1bmN0aW9uIChDb25zdHJ1Y3RvcikgewogICAgdmFyIHN1cHBvcnRlZEZvclVuZGVmaW5lZCA9IENvbnN0cnVjdG9yLnN1cHBvcnRlZExvY2FsZXNPZih1bmRlZmluZWQpOwogICAgdmFyIHN1cHBvcnRlZEZvckVtcHR5TGlzdCA9IENvbnN0cnVjdG9yLnN1cHBvcnRlZExvY2FsZXNPZihbXSk7CiAgICBpZiAoc3VwcG9ydGVkRm9yVW5kZWZpbmVkLmxlbmd0aCAhPT0gc3VwcG9ydGVkRm9yRW1wdHlMaXN0Lmxlbmd0aCkgewogICAgICAgICRFUlJPUigiU3VwcG9ydGVkIGxvY2FsZXMgZGlmZmVyIGJldHdlZW4gdW5kZWZpbmVkIGFuZCBlbXB0eSBsaXN0IGlucHV0LiIpOwogICAgfQogICAgLy8gd2UgZG9uJ3QgY29tcGFyZSB0aGUgZWxlbWVudHMgYmVjYXVzZSBsZW5ndGggc2hvdWxkIGJlIDAgLSBsZXQncyBqdXN0IHZlcmlmeSB0aGF0CiAgICBpZiAoc3VwcG9ydGVkRm9yVW5kZWZpbmVkLmxlbmd0aCAhPT0gMCkgewogICAgICAgICRFUlJPUigiSW50ZXJuYWwgdGVzdCBlcnJvcjogQXNzdW1wdGlvbiBhYm91dCBsZW5ndGggYmVpbmcgMCBpcyBpbnZhbGlkLiIpOwogICAgfQogICAgcmV0dXJuIHRydWU7Cn0pOwoK","commentary":"","description":"Tests that canonicalization of locale lists treats undefined and empty lists the same.","path":"TestCases/intl402/ch09/9.2/9.2.1_1.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBiZWhhdmlvciBvZiBhIExpc3QgaXMgbm90IGFmZmVjdGVkIGJ5IGFkdmVyc2FyaWFsCiAqICAgICBjaGFuZ2VzIHRvIEFycmF5LnByb3RvdHlwZS4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEludGwuanMiKTsKCnRhaW50QXJyYXkoKTsKCnRlc3RXaXRoSW50bENvbnN0cnVjdG9ycyhmdW5jdGlvbiAoQ29uc3RydWN0b3IpIHsKICAgIHZhciBkZWZhdWx0TG9jYWxlID0gbmV3IENvbnN0cnVjdG9yKCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlOwogICAgdmFyIGNhbm9uaWNhbGl6ZWQgPSBDb25zdHJ1Y3Rvci5zdXBwb3J0ZWRMb2NhbGVzT2YoW2RlZmF1bHRMb2NhbGUsIGRlZmF1bHRMb2NhbGVdKTsKICAgIGlmIChjYW5vbmljYWxpemVkLmxlbmd0aCA+IDEpIHsKICAgICAgICAkRVJST1IoIkNhbm9uaWNhbGl6YXRpb24gZGlkbid0IHJlbW92ZSBkdXBsaWNhdGUgbGFuZ3VhZ2UgdGFncyBmcm9tIGxvY2FsZSBsaXN0LiIpOwogICAgfQp9KTsKCg==","commentary":"","description":"Tests that the behavior of a List is not affected by adversarial\n changes to Array.prototype.","path":"TestCases/intl402/ch09/9.2/9.2.1_2.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IGEgc2luZ2xlIHN0cmluZyBpbnN0ZWFkIG9mIGEgbG9jYWxlIGxpc3QgaXMgdHJlYXRlZAogKiAgICAgYXMgdGhlIGxvY2FsZSBsaXN0IGNvbnRhaW5pbmcgdGhhdCBzdHJpbmcuCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RJbnRsLmpzIik7Cgp2YXIgdmFsaWRBbmRJbnZhbGlkTGFuZ3VhZ2VUYWdzID0gWwogICAgImRlIiwgLy8gSVNPIDYzOSBsYW5ndWFnZSBjb2RlCiAgICAiZGUtREUiLCAvLyArIElTTyAzMTY2LTEgY291bnRyeSBjb2RlCiAgICAiREUtZGUiLCAvLyB0YWdzIGFyZSBjYXNlLWluc2Vuc2l0aXZlCiAgICAiY21uIiwgLy8gSVNPIDYzOSBsYW5ndWFnZSBjb2RlCiAgICAiY21uLUhhbnMiLCAvLyArIHNjcmlwdCBjb2RlCiAgICAiQ01OLWhBTlMiLCAvLyB0YWdzIGFyZSBjYXNlLWluc2Vuc2l0aXZlCiAgICAiY21uLWhhbnMtY24iLCAvLyArIElTTyAzMTY2LTEgY291bnRyeSBjb2RlCiAgICAiZXMtNDE5IiwgLy8gKyBVTiBNLjQ5IHJlZ2lvbiBjb2RlCiAgICAiZXMtNDE5LXUtbnUtbGF0bi1jdS1ib2IiLCAvLyArIFVuaWNvZGUgbG9jYWxlIGV4dGVuc2lvbiBzZXF1ZW5jZQogICAgImkta2xpbmdvbiIsIC8vIGdyYW5kZmF0aGVyZWQgdGFnCiAgICAiY21uLWhhbnMtY24tdC1jYS11LWNhLXgtdC11IiwgLy8gc2luZ2xldG9uIHN1YnRhZ3MgY2FuIGFsc28gYmUgdXNlZCBhcyBwcml2YXRlIHVzZSBzdWJ0YWdzCiAgICAiZW5vY2hpYW4tZW5vY2hpYW4iLCAvLyBsYW5ndWFnZSBhbmQgdmFyaWFudCBzdWJ0YWdzIG1heSBiZSB0aGUgc2FtZQogICAgImRlLWdyZWdvcnktdS1jYS1ncmVnb3J5IiwgLy8gdmFyaWFudCBhbmQgZXh0ZW5zaW9uIHN1YnRhZ3MgbWF5IGJlIHRoZSBzYW1lCiAgICAiZGVfREUiLAogICAgIkRFX2RlIiwKICAgICJjbW5fSGFucyIsCiAgICAiY21uLWhhbnNfY24iLAogICAgImVzXzQxOSIsCiAgICAiZXMtNDE5LXUtbnUtbGF0bi1jdV9ib2IiLAogICAgImlfa2xpbmdvbiIsCiAgICAiY21uLWhhbnMtY24tdC1jYS11LWNhLXhfdC11IiwKICAgICJlbm9jaGlhbl9lbm9jaGlhbiIsCiAgICAiZGUtZ3JlZ29yeV91LWNhLWdyZWdvcnkiLAogICAgImkiLCAvLyBzaW5nbGV0b24gYWxvbmUKICAgICJ4IiwgLy8gcHJpdmF0ZSB1c2Ugd2l0aG91dCBzdWJ0YWcKICAgICJ1IiwgLy8gZXh0ZW5zaW9uIHNpbmdsZXRvbiBpbiBmaXJzdCBwbGFjZQogICAgIjQxOSIsIC8vIHJlZ2lvbiBjb2RlIGluIGZpcnN0IHBsYWNlCiAgICAidS1udS1sYXRuLWN1LWJvYiIsIC8vIGV4dGVuc2lvbiBzZXF1ZW5jZSB3aXRob3V0IGxhbmd1YWdlCiAgICAiaGFucy1jbW4tY24iLCAvLyAiaGFucyIgY291bGQgdGhlb3JldGljYWxseSBiZSBhIDQtbGV0dGVyIGxhbmd1YWdlIGNvZGUsCiAgICAgICAgICAgICAgICAgICAvLyBidXQgdGhvc2UgY2FuJ3QgYmUgZm9sbG93ZWQgYnkgZXh0bGFuZyBjb2Rlcy4KICAgICJjbW4taGFucy1jbi11LXUiLCAvLyBkdXBsaWNhdGUgc2luZ2xldG9uCiAgICAiY21uLWhhbnMtY24tdC11LWNhLXUiLCAvLyBkdXBsaWNhdGUgc2luZ2xldG9uCiAgICAiZGUtZ3JlZ29yeS1ncmVnb3J5IiAvLyBkdXBsaWNhdGUgdmFyaWFudApdOwoKdGVzdFdpdGhJbnRsQ29uc3RydWN0b3JzKGZ1bmN0aW9uIChDb25zdHJ1Y3RvcikgewogICAgdmFsaWRBbmRJbnZhbGlkTGFuZ3VhZ2VUYWdzLmZvckVhY2goZnVuY3Rpb24gKGxvY2FsZSkgewogICAgICAgIHZhciBvYmoxLCBvYmoyLCBsb2NhbGUxLCBsb2NhbGUyLCBlcnJvcjEsIGVycm9yMjsKICAgICAgICB0cnkgewogICAgICAgICAgICBvYmoxID0gbmV3IENvbnN0cnVjdG9yKGxvY2FsZSk7CiAgICAgICAgICAgIGxvY2FsZTEgPSBvYmoxLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGVycm9yMSA9IGU7CiAgICAgICAgfQogICAgICAgIHRyeSB7CiAgICAgICAgICAgIG9iajIgPSBuZXcgQ29uc3RydWN0b3IoW2xvY2FsZV0pOwogICAgICAgICAgICBsb2NhbGUyID0gb2JqMi5yZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGU7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBlcnJvcjIgPSBlOwogICAgICAgIH0KCiAgICAgICAgaWYgKChlcnJvcjEgPT09IHVuZGVmaW5lZCkgIT09IChlcnJvcjIgPT09IHVuZGVmaW5lZCkpIHsKICAgICAgICAgICAgaWYgKGVycm9yMSA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAkRVJST1IoIlNpbmdsZSBsb2NhbGUgc3RyaW5nICIgKyBsb2NhbGUgKwogICAgICAgICAgICAgICAgICAgICIgd2FzIGFjY2VwdGVkLCBidXQgbG9jYWxlIGxpc3QgY29udGFpbmluZyB0aGF0IHN0cmluZyB3YXNuJ3QuIik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkRVJST1IoIlNpbmdsZSBsb2NhbGUgc3RyaW5nICIgKyBsb2NhbGUgKwogICAgICAgICAgICAgICAgICAgICIgd2FzIHJlamVjdGVkLCBidXQgbG9jYWxlIGxpc3QgY29udGFpbmluZyB0aGF0IHN0cmluZyB3YXNuJ3QuIik7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKGVycm9yMSA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICBpZiAobG9jYWxlMSAhPT0gbG9jYWxlMikgewogICAgICAgICAgICAgICAgJEVSUk9SKCJTaW5nbGUgbG9jYWxlIHN0cmluZyAiICsgbG9jYWxlICsgIiByZXN1bHRzIGluICIgKyBsb2NhbGUxICsKICAgICAgICAgICAgICAgICAgICAiLCBidXQgbG9jYWxlIGxpc3QgWyIgKyBsb2NhbGUgKyAiXSByZXN1bHRzIGluICIgKyBsb2NhbGUyICsgIi4iKTsKICAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoZXJyb3IxLm5hbWUgIT09IGVycm9yMi5uYW1lKSB7CiAgICAgICAgICAgICAgICAkRVJST1IoIlNpbmdsZSBsb2NhbGUgc3RyaW5nICIgKyBsb2NhbGUgKyAiIHJlc3VsdHMgaW4gZXJyb3IgIiArIGVycm9yMS5uYW1lICsKICAgICAgICAgICAgICAgICAgICAiLCBidXQgbG9jYWxlIGxpc3QgWyIgKyBsb2NhbGUgKyAiXSByZXN1bHRzIGluIGVycm9yICIgKyBlcnJvcjIubmFtZSArICIuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgfQogICAgfSk7CiAgICAKICAgIHJldHVybiB0cnVlOwp9KTsKCg==","commentary":"","description":"Tests that a single string instead of a locale list is treated\n as the locale list containing that string.","path":"TestCases/intl402/ch09/9.2/9.2.1_3.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IG5vbi1vYmplY3RzIGFyZSBjb252ZXJ0ZWQgdG8gb2JqZWN0cyBiZWZvcmUgY2Fub25pY2FsaXphdGlvbi4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEludGwuanMiKTsKCnRlc3RXaXRoSW50bENvbnN0cnVjdG9ycyhmdW5jdGlvbiAoQ29uc3RydWN0b3IpIHsKICAgIC8vIHVuZGVmaW5lZCBpcyBoYW5kbGVkIHNlcGFyYXRlbHkKICAgIAogICAgLy8gbnVsbCBzaG91bGQgcmVzdWx0IGluIGEgVHlwZUVycm9yCiAgICB2YXIgZXJyb3I7CiAgICB0cnkgewogICAgICAgIHZhciBzdXBwb3J0ZWRGb3JOdWxsID0gQ29uc3RydWN0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKG51bGwpOwogICAgfSBjYXRjaCAoZSkgewogICAgICAgIGVycm9yID0gZTsKICAgIH0KICAgIGlmIChlcnJvciA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgJEVSUk9SKCJOdWxsIGFzIGxvY2FsZSBsaXN0IHdhcyBub3QgcmVqZWN0ZWQuIik7CiAgICB9IGVsc2UgaWYgKGVycm9yLm5hbWUgIT09ICJUeXBlRXJyb3IiKSB7CiAgICAgICAgJEVSUk9SKCJOdWxsIGFzIGxvY2FsZSBsaXN0IHdhcyByZWplY3RlZCB3aXRoIHdyb25nIGVycm9yICIgKyBlcnJvci5uYW1lICsgIi4iKTsKICAgIH0gICAgCiAgICAKICAgIC8vIGxldCdzIHVzZSBhbiBlbXB0eSBsaXN0IGZvciBjb21wYXJpc29uCiAgICB2YXIgc3VwcG9ydGVkRm9yRW1wdHlMaXN0ID0gQ29uc3RydWN0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKFtdKTsKICAgIC8vIHdlIGRvbid0IGNvbXBhcmUgdGhlIGVsZW1lbnRzIGJlY2F1c2UgbGVuZ3RoIHNob3VsZCBiZSAwIC0gbGV0J3MganVzdCB2ZXJpZnkgdGhhdAogICAgaWYgKHN1cHBvcnRlZEZvckVtcHR5TGlzdC5sZW5ndGggIT09IDApIHsKICAgICAgICAkRVJST1IoIkludGVybmFsIHRlc3QgZXJyb3I6IEFzc3VtcHRpb24gYWJvdXQgbGVuZ3RoIGJlaW5nIDAgaXMgaW52YWxpZC4iKTsKICAgIH0KCiAgICAvLyBtb3N0IG5vbi1vYmplY3RzIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgZW1wdHkgbGlzdHMgYmVjYXVzZSBhIG1pc3NpbmcgbGVuZ3RoIHByb3BlcnR5IGlzIGludGVycHJldGVkIGFzIDAKICAgIHZhciBzdXBwb3J0ZWRGb3JOdW1iZXIgPSBDb25zdHJ1Y3Rvci5zdXBwb3J0ZWRMb2NhbGVzT2YoNSk7CiAgICBpZiAoc3VwcG9ydGVkRm9yTnVtYmVyLmxlbmd0aCAhPT0gc3VwcG9ydGVkRm9yRW1wdHlMaXN0Lmxlbmd0aCkgewogICAgICAgICRFUlJPUigiU3VwcG9ydGVkIGxvY2FsZXMgZGlmZmVyIGJldHdlZW4gbnVtZXJpYyBhbmQgZW1wdHkgbGlzdCBpbnB1dC4iKTsKICAgIH0KICAgIHZhciBzdXBwb3J0ZWRGb3JCb29sZWFuID0gQ29uc3RydWN0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKHRydWUpOwogICAgaWYgKHN1cHBvcnRlZEZvckJvb2xlYW4ubGVuZ3RoICE9PSBzdXBwb3J0ZWRGb3JFbXB0eUxpc3QubGVuZ3RoKSB7CiAgICAgICAgJEVSUk9SKCJTdXBwb3J0ZWQgbG9jYWxlcyBkaWZmZXIgYmV0d2VlbiBib29sZWFuIGFuZCBlbXB0eSBsaXN0IGlucHV0LiIpOwogICAgfQogICAgCiAgICByZXR1cm4gdHJ1ZTsKfSk7Cgo=","commentary":"","description":"Tests that non-objects are converted to objects before canonicalization.","path":"TestCases/intl402/ch09/9.2/9.2.1_4.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHZhbHVlcyBvdGhlciB0aGFuIHN0cmluZ3MgYXJlIG5vdCBhY2NlcHRlZCBhcyBsb2NhbGVzLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0SW50bC5qcyIpOwoKdmFyIG5vdFN0cmluZ09yT2JqZWN0ID0gW3VuZGVmaW5lZCwgbnVsbCwgdHJ1ZSwgZmFsc2UsIDAsIDUsIC01LCBOYU5dOwoKdGVzdFdpdGhJbnRsQ29uc3RydWN0b3JzKGZ1bmN0aW9uIChDb25zdHJ1Y3RvcikgewogICAgbm90U3RyaW5nT3JPYmplY3QuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUpIHsKICAgICAgICB2YXIgZXJyb3I7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdmFyIHN1cHBvcnRlZCA9IENvbnN0cnVjdG9yLnN1cHBvcnRlZExvY2FsZXNPZihbdmFsdWVdKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGVycm9yID0gZTsKICAgICAgICB9CiAgICAgICAgaWYgKGVycm9yID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgJEVSUk9SKCIiICsgdmFsdWUgKyAiIGFzIGxvY2FsZSB3YXMgbm90IHJlamVjdGVkLiIpOwogICAgICAgIH0gZWxzZSBpZiAoZXJyb3IubmFtZSAhPT0gIlR5cGVFcnJvciIpIHsKICAgICAgICAgICAgJEVSUk9SKCIiICsgdmFsdWUgKyAiIGFzIGxvY2FsZSB3YXMgcmVqZWN0ZWQgd2l0aCB3cm9uZyBlcnJvciAiICsgZXJyb3IubmFtZSArICIuIik7CiAgICAgICAgfQogICAgfSk7CiAgICAKICAgIHJldHVybiB0cnVlOwp9KTsKCg==","commentary":"","description":"Tests that values other than strings are not accepted as locales.","path":"TestCases/intl402/ch09/9.2/9.2.1_8_c_ii.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IGNhbm9uaWNhbGl6YXRpb24gb2YgbG9jYWxlIGxpc3RzIHJlbW92ZXMgZHVwbGljYXRlIGxhbmd1YWdlIHRhZ3MuCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RJbnRsLmpzIik7Cgp0ZXN0V2l0aEludGxDb25zdHJ1Y3RvcnMoZnVuY3Rpb24gKENvbnN0cnVjdG9yKSB7CiAgICB2YXIgZGVmYXVsdExvY2FsZSA9IG5ldyBDb25zdHJ1Y3RvcigpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZTsKICAgIHZhciBjYW5vbmljYWxpemVkID0gQ29uc3RydWN0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKFtkZWZhdWx0TG9jYWxlLCBkZWZhdWx0TG9jYWxlXSk7CiAgICBpZiAoY2Fub25pY2FsaXplZC5sZW5ndGggPiAxKSB7CiAgICAgICAgJEVSUk9SKCJDYW5vbmljYWxpemF0aW9uIGRpZG4ndCByZW1vdmUgZHVwbGljYXRlIGxhbmd1YWdlIHRhZ3MgZnJvbSBsb2NhbGUgbGlzdC4iKTsKICAgIH0KfSk7Cgo=","commentary":"","description":"Tests that canonicalization of locale lists removes duplicate language tags.","path":"TestCases/intl402/ch09/9.2/9.2.1_8_c_vi.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IGxvY2FsZXMgdGhhdCBhcmUgcmVwb3J0ZWQgYnkgcmVzb2x2ZWRPcHRpb25zCiAqICAgICBhcmUgYWxzbyByZXBvcnRlZCBieSBzdXBwb3J0ZWRMb2NhbGVzT2YuCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RJbnRsLmpzIik7Cgp0ZXN0V2l0aEludGxDb25zdHJ1Y3RvcnMoZnVuY3Rpb24gKENvbnN0cnVjdG9yKSB7CiAgICB2YXIgaW5mbyA9IGdldExvY2FsZVN1cHBvcnRJbmZvKENvbnN0cnVjdG9yKTsKICAgIC8vIHRoaXMgdGVzdCBzaG91bGQgd29yayBlcXVhbGx5IGZvciBib3RoIG1hdGNoaW5nIGFsZ29yaXRobXMKICAgIFsibG9va3VwIiwgImJlc3QgZml0Il0uZm9yRWFjaChmdW5jdGlvbiAobWF0Y2hlcikgewogICAgICAgIHZhciBzdXBwb3J0ZWRCeUNvbnN0cnVjdG9yID0gaW5mby5zdXBwb3J0ZWQuY29uY2F0KGluZm8uYnlGYWxsYmFjayk7CiAgICAgICAgdmFyIHN1cHBvcnRlZCA9IENvbnN0cnVjdG9yLnN1cHBvcnRlZExvY2FsZXNPZihzdXBwb3J0ZWRCeUNvbnN0cnVjdG9yLAogICAgICAgICAgICB7bG9jYWxlTWF0Y2hlcjogbWF0Y2hlcn0pOwogICAgICAgIC8vIHdlIGNvdWxkIGNoZWNrIHRoZSBsZW5ndGggZmlyc3QsIGJ1dCBpdCdzIHByb2JhYmx5IG1vcmUgaW50ZXJlc3Rpbmcgd2hpY2ggbG9jYWxlcyBhcmUgbWlzc2luZwogICAgICAgIHZhciBpID0gMDsKICAgICAgICB2YXIgbGltaXQgPSBNYXRoLm1pbihzdXBwb3J0ZWRCeUNvbnN0cnVjdG9yLmxlbmd0aCwgc3VwcG9ydGVkLmxlbmd0aCk7CiAgICAgICAgd2hpbGUgKGkgPCBsaW1pdCAmJiBzdXBwb3J0ZWRCeUNvbnN0cnVjdG9yW2ldID09PSBzdXBwb3J0ZWRbaV0pIHsKICAgICAgICAgICAgaSsrOwogICAgICAgIH0KICAgICAgICBpZiAoaSA8IHN1cHBvcnRlZEJ5Q29uc3RydWN0b3IubGVuZ3RoKSB7CiAgICAgICAgICAgICRFUlJPUigiTG9jYWxlICIgKyBzdXBwb3J0ZWRCeUNvbnN0cnVjdG9yW2ldICsKICAgICAgICAgICAgICAgICIgaXMgcmV0dXJuZWQgYnkgcmVzb2x2ZWRPcHRpb25zIGJ1dCBub3QgYnkgc3VwcG9ydGVkTG9jYWxlc09mLiIpOwogICAgICAgIH0gZWxzZSBpZiAoaSA8IHN1cHBvcnRlZC5sZW5ndGgpIHsKICAgICAgICAgICAgJEVSUk9SKCJMb2NhbGUgIiArIHN1cHBvcnRlZFtpXSArCiAgICAgICAgICAgICAgICAiIGlzIHJldHVybmVkIGJ5IHN1cHBvcnRlZExvY2FsZXNPZiBidXQgbm90IGJ5IHJlc29sdmVkT3B0aW9ucy4iKTsKICAgICAgICB9CiAgICB9KTsKICAgIAogICAgLy8gdGhpcyB0ZXN0IGlzIG9ubHkgdmFsaWQgZm9yIGxvb2t1cCAtIGJlc3QgZml0IG1heSBmaW5kIGFkZGl0aW9uYWwgbG9jYWxlcyBzdXBwb3J0ZWQKICAgIHZhciB1bnN1cHBvcnRlZEJ5Q29uc3RydWN0b3IgPSBpbmZvLnVuc3VwcG9ydGVkOwogICAgdmFyIHN1cHBvcnRlZCA9IENvbnN0cnVjdG9yLnN1cHBvcnRlZExvY2FsZXNPZih1bnN1cHBvcnRlZEJ5Q29uc3RydWN0b3IsCiAgICAgICAgICAgIHtsb2NhbGVNYXRjaGVyOiAibG9va3VwIn0pOwogICAgaWYgKHN1cHBvcnRlZC5sZW5ndGggPiAwKSB7CiAgICAgICAgJEVSUk9SKCJMb2NhbGUgIiArIHN1cHBvcnRlZFswXSArCiAgICAgICAgICAgICIgaXMgcmV0dXJuZWQgYnkgc3VwcG9ydGVkTG9jYWxlc09mIGJ1dCBub3QgYnkgcmVzb2x2ZWRPcHRpb25zLiIpOwogICAgfQoKICAgIHJldHVybiB0cnVlOwp9KTsKCg==","commentary":"","description":"Tests that locales that are reported by resolvedOptions\n are also reported by supportedLocalesOf.","path":"TestCases/intl402/ch09/9.2/9.2.2.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBiZWhhdmlvciBvZiBhIFJlY29yZCBpcyBub3QgYWZmZWN0ZWQgYnkgYWR2ZXJzYXJpYWwKICogICAgIGNoYW5nZXMgdG8gT2JqZWN0LnByb3RvdHlwZS4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEludGwuanMiKTsKCnRhaW50UHJvcGVydGllcyhbImxvY2FsZSIsICJleHRlbnNpb24iLCAiZXh0ZW5zaW9uSW5kZXgiXSk7Cgp0ZXN0V2l0aEludGxDb25zdHJ1Y3RvcnMoZnVuY3Rpb24gKENvbnN0cnVjdG9yKSB7CiAgICB2YXIgbG9jYWxlID0gbmV3IENvbnN0cnVjdG9yKHVuZGVmaW5lZCwge2xvY2FsZU1hdGNoZXI6ICJsb29rdXAifSkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlOwogICAgaWYgKCFpc0Nhbm9uaWNhbGl6ZWRTdHJ1Y3R1cmFsbHlWYWxpZExhbmd1YWdlVGFnKGxvY2FsZSkpIHsKICAgICAgICAkRVJST1IoIkNvbnN0cnVjdG9yIHJldHVybnMgaW52YWxpZCBsb2NhbGUgIiArIGxvY2FsZSArICIuIik7CiAgICB9CgogICAgcmV0dXJuIHRydWU7Cn0pOwoK","commentary":"","description":"Tests that the behavior of a Record is not affected by adversarial\n changes to Object.prototype.","path":"TestCases/intl402/ch09/9.2/9.2.3_5.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTEtMjAxMiBOb3JiZXJ0IExpbmRlbmJlcmcuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBtaXNzaW5nIFVuaWNvZGUgZXh0ZW5zaW9uIHZhbHVlcyBkZWZhdWx0IHRvIHRydWUgZm9yCiAqICAgICBib29sZWFuIGtleXMuCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKdmFyIGV4dGVuc2lvbnMgPSBbIi11LWNvLXBob25lYmsta24iLCAiLXUta24tY28tcGhvbmViayJdOwpleHRlbnNpb25zLmZvckVhY2goZnVuY3Rpb24gKGV4dGVuc2lvbikgewogICAgdmFyIGRlZmF1bHRMb2NhbGUgPSBuZXcgSW50bC5Db2xsYXRvcigpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZTsKICAgIHZhciBjb2xsYXRvciA9IG5ldyBJbnRsLkNvbGxhdG9yKFtkZWZhdWx0TG9jYWxlICsgZXh0ZW5zaW9uXSwge3VzYWdlOiAic29ydCJ9KTsKICAgIHZhciBsb2NhbGUgPSBjb2xsYXRvci5yZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGU7CiAgICB2YXIgbnVtZXJpYyA9IGNvbGxhdG9yLnJlc29sdmVkT3B0aW9ucygpLm51bWVyaWM7CiAgICBpZiAobnVtZXJpYyAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgaWYgKG51bWVyaWMgIT09IHRydWUpIHsKICAgICAgICAgICAgJEVSUk9SKCJEZWZhdWx0IHZhbHVlIGZvciBcImtuXCIgc2hvdWxkIGJlIHRydWUsIGJ1dCBpcyAiICsgbnVtZXJpYyArICIuIik7CiAgICAgICAgfQogICAgICAgIGlmIChsb2NhbGUuaW5kZXhPZigiLWtuIikgIT09IC0xKSB7CiAgICAgICAgICAgICRFUlJPUigiXCJrblwiIGlzIHJldHVybmVkIGluIGxvY2FsZSwgYnV0IHNob3VsZG4ndCBiZS4iKTsKICAgICAgICB9CiAgICB9Cn0pOwoK","commentary":"","description":"Tests that missing Unicode extension values default to true for\n boolean keys.","path":"TestCases/intl402/ch09/9.2/9.2.5_11_g_ii_2.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBiZWhhdmlvciBvZiBhIFJlY29yZCBpcyBub3QgYWZmZWN0ZWQgYnkgYWR2ZXJzYXJpYWwKICogICAgIGNoYW5nZXMgdG8gT2JqZWN0LnByb3RvdHlwZS4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEludGwuanMiKTsKCnRhaW50UHJvcGVydGllcyhbImRhdGFMb2NhbGUiLCAibnUiLCAiY2EiLCAiY28iLCAibG9jYWxlIl0pOwoKdGVzdFdpdGhJbnRsQ29uc3RydWN0b3JzKGZ1bmN0aW9uIChDb25zdHJ1Y3RvcikgewogICAgdmFyIGxvY2FsZSA9IG5ldyBDb25zdHJ1Y3Rvcih1bmRlZmluZWQsIHtsb2NhbGVNYXRjaGVyOiAibG9va3VwIn0pLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZTsKICAgIGlmICghaXNDYW5vbmljYWxpemVkU3RydWN0dXJhbGx5VmFsaWRMYW5ndWFnZVRhZyhsb2NhbGUpKSB7CiAgICAgICAgJEVSUk9SKCJDb25zdHJ1Y3RvciByZXR1cm5zIGludmFsaWQgbG9jYWxlICIgKyBsb2NhbGUgKyAiLiIpOwogICAgfQoKICAgIHJldHVybiB0cnVlOwp9KTsKCg==","commentary":"","description":"Tests that the behavior of a Record is not affected by adversarial\n changes to Object.prototype.","path":"TestCases/intl402/ch09/9.2/9.2.5_6.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBiZWhhdmlvciBvZiBhIExpc3QgaXMgbm90IGFmZmVjdGVkIGJ5IGFkdmVyc2FyaWFsCiAqICAgICBjaGFuZ2VzIHRvIEFycmF5LnByb3RvdHlwZS4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEludGwuanMiKTsKCnRhaW50QXJyYXkoKTsKCnRlc3RXaXRoSW50bENvbnN0cnVjdG9ycyhmdW5jdGlvbiAoQ29uc3RydWN0b3IpIHsKICAgIC8vIHRoaXMgdGVzdCBzaG91bGQgd29yayBlcXVhbGx5IGZvciBib3RoIG1hdGNoaW5nIGFsZ29yaXRobXMKICAgIFsibG9va3VwIiwgImJlc3QgZml0Il0uZm9yRWFjaChmdW5jdGlvbiAobWF0Y2hlcikgewogICAgICAgIHZhciBkZWZhdWx0TG9jYWxlID0gbmV3IENvbnN0cnVjdG9yKCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlOwogICAgICAgIHZhciBjYW5vbmljYWxpemVkID0gQ29uc3RydWN0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKFtkZWZhdWx0TG9jYWxlLCBkZWZhdWx0TG9jYWxlXSwKICAgICAgICAgICAge2xvY2FsZU1hdGNoZXI6IG1hdGNoZXJ9KTsKICAgICAgICBpZiAoY2Fub25pY2FsaXplZC5sZW5ndGggPiAxKSB7CiAgICAgICAgICAgICRFUlJPUigiQ2Fub25pY2FsaXphdGlvbiB3aXRoIG1hdGNoZXIgIiArIG1hdGNoZXIgKyAiIGRpZG4ndCByZW1vdmUgZHVwbGljYXRlIGxhbmd1YWdlIHRhZ3MgZnJvbSBsb2NhbGUgbGlzdC4iKTsKICAgICAgICB9CiAgICB9KTsKCiAgICByZXR1cm4gdHJ1ZTsKfSk7Cgo=","commentary":"","description":"Tests that the behavior of a List is not affected by adversarial\n changes to Array.prototype.","path":"TestCases/intl402/ch09/9.2/9.2.6_2.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IExvb2t1cFN1cHBvcnRlZExvY2FsZXMgcmV0dXJucyBhbiBlbXB0eSBsaXN0IHdoZW4KICogICAgIGdpdmVuIGFuIGVtcHR5IGxpc3QuCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RJbnRsLmpzIik7Cgp0ZXN0V2l0aEludGxDb25zdHJ1Y3RvcnMoZnVuY3Rpb24gKENvbnN0cnVjdG9yKSB7CiAgICAvLyB0aGlzIHRlc3Qgc2hvdWxkIHdvcmsgZXF1YWxseSBmb3IgYm90aCBtYXRjaGluZyBhbGdvcml0aG1zCiAgICBbImxvb2t1cCIsICJiZXN0IGZpdCJdLmZvckVhY2goZnVuY3Rpb24gKG1hdGNoZXIpIHsKICAgICAgICB2YXIgc3VwcG9ydGVkID0gQ29uc3RydWN0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKFtdLCB7bG9jYWxlTWF0Y2hlcjogbWF0Y2hlcn0pOwogICAgICAgIGlmIChzdXBwb3J0ZWQubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICAgICRFUlJPUigiU3VwcG9ydGVkTG9jYWxlcyB3aXRoIG1hdGNoZXIgIiArIG1hdGNoZXIgKyAiIHJldHVybmVkIGEgbm9uLWVtcHR5IGxpc3QgZm9yIGFuIGVtcHR5IGxpc3QuIik7CiAgICAgICAgfQogICAgfSk7CgogICAgcmV0dXJuIHRydWU7Cn0pOwoK","commentary":"","description":"Tests that LookupSupportedLocales returns an empty list when\n given an empty list.","path":"TestCases/intl402/ch09/9.2/9.2.6_4.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IFVuaWNvZGUgbG9jYWxlIGV4dGVuc2lvbiBzZXF1ZW5jZXMgZG8gbm90IGFmZmVjdAogKiAgICB3aGV0aGVyIGEgbG9jYWxlIGlzIGNvbnNpZGVyZWQgc3VwcG9ydGVkLCBidXQgYXJlIHJlcG9ydGVkIGJhY2suCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RJbnRsLmpzIik7Cgp0ZXN0V2l0aEludGxDb25zdHJ1Y3RvcnMoZnVuY3Rpb24gKENvbnN0cnVjdG9yKSB7CiAgICAvLyB0aGlzIHRlc3Qgc2hvdWxkIHdvcmsgZXF1YWxseSBmb3IgYm90aCBtYXRjaGluZyBhbGdvcml0aG1zCiAgICBbImxvb2t1cCIsICJiZXN0IGZpdCJdLmZvckVhY2goZnVuY3Rpb24gKG1hdGNoZXIpIHsKICAgICAgICB2YXIgaW5mbyA9IGdldExvY2FsZVN1cHBvcnRJbmZvKENvbnN0cnVjdG9yKTsKICAgICAgICB2YXIgYWxsTG9jYWxlcyA9IGluZm8uc3VwcG9ydGVkLmNvbmNhdChpbmZvLmJ5RmFsbGJhY2ssIGluZm8udW5zdXBwb3J0ZWQpOwogICAgICAgIGFsbExvY2FsZXMuZm9yRWFjaChmdW5jdGlvbiAobG9jYWxlKSB7CiAgICAgICAgICAgIHZhciB2YWxpZEV4dGVuc2lvbiA9ICItdS1jby1waG9uZWJrLW51LWxhdG4iOwogICAgICAgICAgICB2YXIgaW52YWxpZEV4dGVuc2lvbiA9ICItdS1udS1pbnZhbGlkIjsKICAgICAgICAgICAgdmFyIHN1cHBvcnRlZDEgPSBDb25zdHJ1Y3Rvci5zdXBwb3J0ZWRMb2NhbGVzT2YoW2xvY2FsZV0sCiAgICAgICAgICAgICAgICB7bG9jYWxlTWF0Y2hlcjogbWF0Y2hlcn0pOwogICAgICAgICAgICB2YXIgc3VwcG9ydGVkMiA9IENvbnN0cnVjdG9yLnN1cHBvcnRlZExvY2FsZXNPZihbbG9jYWxlICsgdmFsaWRFeHRlbnNpb25dLAogICAgICAgICAgICAgICAge2xvY2FsZU1hdGNoZXI6IG1hdGNoZXJ9KTsKICAgICAgICAgICAgdmFyIHN1cHBvcnRlZDMgPSBDb25zdHJ1Y3Rvci5zdXBwb3J0ZWRMb2NhbGVzT2YoW2xvY2FsZSArIGludmFsaWRFeHRlbnNpb25dLAogICAgICAgICAgICAgICAge2xvY2FsZU1hdGNoZXI6IG1hdGNoZXJ9KTsKICAgICAgICAgICAgaWYgKHN1cHBvcnRlZDEubGVuZ3RoID09PSAxKSB7CiAgICAgICAgICAgICAgICBpZiAoc3VwcG9ydGVkMi5sZW5ndGggIT09IDEgfHwgc3VwcG9ydGVkMy5sZW5ndGggIT09IDEpIHsKICAgICAgICAgICAgICAgICAgICAkRVJST1IoIlByZXNlbmNlIG9mIFVuaWNvZGUgbG9jYWxlIGV4dGVuc2lvbiBzZXF1ZW5jZSBhZmZlY3RzIHdoZXRoZXIgbG9jYWxlICIgKwogICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGUgKyAiIGlzIGNvbnNpZGVyZWQgc3VwcG9ydGVkIHdpdGggbWF0Y2hlciAiICsgbWF0Y2hlciArICIuIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoc3VwcG9ydGVkMlswXSAhPT0gbG9jYWxlICsgdmFsaWRFeHRlbnNpb24gfHwgc3VwcG9ydGVkM1swXSAhPT0gbG9jYWxlICsgaW52YWxpZEV4dGVuc2lvbikgewogICAgICAgICAgICAgICAgICAgIGFsZXJ0KGxvY2FsZSArICI7ICIgKyBzdXBwb3J0ZWQyWzBdICsgIjsgIiArIHN1cHBvcnRlZDNbMF0pOwogICAgICAgICAgICAgICAgICAgICRFUlJPUigiVW5pY29kZSBsb2NhbGUgZXh0ZW5zaW9uIHNlcXVlbmNlIGlzIG5vdCBjb3JyZWN0bHkgcmV0dXJuZWQgZm9yIGxvY2FsZSAiICsKICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlICsgIiB3aXRoIG1hdGNoZXIgIiArIG1hdGNoZXIgKyAiLiIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKHN1cHBvcnRlZDIubGVuZ3RoICE9PSAwIHx8IHN1cHBvcnRlZDMubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgJEVSUk9SKCJQcmVzZW5jZSBvZiBVbmljb2RlIGxvY2FsZSBleHRlbnNpb24gc2VxdWVuY2UgYWZmZWN0cyB3aGV0aGVyIGxvY2FsZSAiICsKICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlICsgIiBpcyBjb25zaWRlcmVkIHN1cHBvcnRlZCB3aXRoIG1hdGNoZXIgIiArIG1hdGNoZXIgKyAiLiIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9KTsKCiAgICByZXR1cm4gdHJ1ZTsKfSk7Cgo=","commentary":"","description":"Tests that Unicode locale extension sequences do not affect\n whether a locale is considered supported, but are reported back.","path":"TestCases/intl402/ch09/9.2/9.2.6_4_b.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IExvb2t1cFN1cHBvcnRlZExvY2FsZXMgaW5jbHVkZXMgdGhlIGRlZmF1bHQgbG9jYWxlCiAqICAgICBhbmQgZG9lc24ndCBpbmNsdWRlIHRoZSAibm8gbGluZ3Vpc3RpYyBjb250ZW50IiBsb2NhbGUuCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RJbnRsLmpzIik7Cgp0ZXN0V2l0aEludGxDb25zdHJ1Y3RvcnMoZnVuY3Rpb24gKENvbnN0cnVjdG9yKSB7CiAgICAvLyB0aGlzIHRlc3Qgc2hvdWxkIHdvcmsgZXF1YWxseSBmb3IgYm90aCBtYXRjaGluZyBhbGdvcml0aG1zCiAgICBbImxvb2t1cCIsICJiZXN0IGZpdCJdLmZvckVhY2goZnVuY3Rpb24gKG1hdGNoZXIpIHsKICAgICAgICB2YXIgZGVmYXVsdExvY2FsZSA9IG5ldyBDb25zdHJ1Y3RvcigpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZTsKICAgICAgICB2YXIgbm9MaW5ndWlzdGljQ29udGVudCA9ICJ6eHgiOwogICAgICAgIHZhciBzdXBwb3J0ZWQgPSBDb25zdHJ1Y3Rvci5zdXBwb3J0ZWRMb2NhbGVzT2YoW2RlZmF1bHRMb2NhbGUsIG5vTGluZ3Vpc3RpY0NvbnRlbnRdLAogICAgICAgICAgICB7bG9jYWxlTWF0Y2hlcjogbWF0Y2hlcn0pOwogICAgICAgIGlmIChzdXBwb3J0ZWQuaW5kZXhPZihkZWZhdWx0TG9jYWxlKSA9PT0gLTEpIHsKICAgICAgICAgICAgJEVSUk9SKCJTdXBwb3J0ZWRMb2NhbGVzIGRpZG4ndCByZXR1cm4gZGVmYXVsdCBsb2NhbGUgd2l0aCBtYXRjaGVyICIgKyBtYXRjaGVyICsgIi4iKTsKICAgICAgICB9CiAgICAgICAgaWYgKHN1cHBvcnRlZC5pbmRleE9mKG5vTGluZ3Vpc3RpY0NvbnRlbnQpICE9PSAtMSkgewogICAgICAgICAgICAkRVJST1IoIlN1cHBvcnRlZExvY2FsZXMgcmV0dXJuZWQgdGhlIFwibm8gbGluZ3Vpc3RpYyBjb250ZW50XCIgbG9jYWxlIHdpdGggbWF0Y2hlciAiICsgbWF0Y2hlciArICIuIik7CiAgICAgICAgfQogICAgICAgIGlmIChzdXBwb3J0ZWQubGVuZ3RoID4gMSkgewogICAgICAgICAgICAkRVJST1IoIlN1cHBvcnRlZExvY2FsZXMgcmV0dXJuZWQgc3RyYXkgbG9jYWxlczogIiArIHN1cHBvcnRlZC5qb2luKCIsICIpICsgIiB3aXRoIG1hdGNoZXIgIiArIG1hdGNoZXIgKyAiLiIpOwogICAgICAgIH0KICAgIH0pOwoKICAgIHJldHVybiB0cnVlOwp9KTsKCg==","commentary":"","description":"Tests that LookupSupportedLocales includes the default locale\n and doesn't include the \"no linguistic content\" locale.","path":"TestCases/intl402/ch09/9.2/9.2.6_4_c.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBvcHRpb24gbG9jYWxlTWF0Y2hlciBpcyBwcm9jZXNzZWQgY29ycmVjdGx5LgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0SW50bC5qcyIpOwoKdGVzdFdpdGhJbnRsQ29uc3RydWN0b3JzKGZ1bmN0aW9uIChDb25zdHJ1Y3RvcikgewogICAgdmFyIGRlZmF1bHRMb2NhbGUgPSBuZXcgQ29uc3RydWN0b3IoKS5yZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGU7CiAgICAKICAgIHZhciB2YWxpZFZhbHVlcyA9IFt1bmRlZmluZWQsICJsb29rdXAiLCAiYmVzdCBmaXQiLCB7dG9TdHJpbmc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuICJsb29rdXAiOyB9fV07CiAgICB2YWxpZFZhbHVlcy5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSkgewogICAgICAgIHZhciBzdXBwb3J0ZWQgPSBDb25zdHJ1Y3Rvci5zdXBwb3J0ZWRMb2NhbGVzT2YoW2RlZmF1bHRMb2NhbGVdLCB7bG9jYWxlTWF0Y2hlcjogdmFsdWV9KTsKICAgIH0pOwogICAgCiAgICB2YXIgaW52YWxpZFZhbHVlcyA9IFtudWxsLCAwLCA1LCBOYU4sIHRydWUsIGZhbHNlLCAiaW52YWxpZCJdOwogICAgaW52YWxpZFZhbHVlcy5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSkgewogICAgICAgIHZhciBlcnJvcjsKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIgc3VwcG9ydGVkID0gQ29uc3RydWN0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKFtkZWZhdWx0TG9jYWxlXSwge2xvY2FsZU1hdGNoZXI6IHZhbHVlfSk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBlcnJvciA9IGU7CiAgICAgICAgfQogICAgICAgIGlmIChlcnJvciA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICRFUlJPUigiSW52YWxpZCBsb2NhbGVNYXRjaGVyIHZhbHVlICIgKyB2YWx1ZSArICIgd2FzIG5vdCByZWplY3RlZC4iKTsKICAgICAgICB9IGVsc2UgaWYgKGVycm9yLm5hbWUgIT09ICJSYW5nZUVycm9yIikgewogICAgICAgICAgICAkRVJST1IoIkludmFsaWQgbG9jYWxlTWF0Y2hlciB2YWx1ZSAiICsgdmFsdWUgKyAiIHdhcyByZWplY3RlZCB3aXRoIHdyb25nIGVycm9yICIgKyBlcnJvci5uYW1lICsgIi4iKTsKICAgICAgICB9CiAgICB9KTsKICAgIAogICAgcmV0dXJuIHRydWU7Cn0pOwoK","commentary":"","description":"Tests that the option localeMatcher is processed correctly.","path":"TestCases/intl402/ch09/9.2/9.2.8_1_c.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBhcnJheSByZXR1cm5lZCBieSBTdXBwb3J0ZWRMb2NhbGVzIGlzIGV4dGVuc2libGUsCiAqICAgICBidXQgaXRzIHByb3BlcnRpZXMgYXJlIG5vbi13cml0YWJsZS9ub24tY29uZmlndXJhYmxlLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0SW50bC5qcyIpOwoKZnVuY3Rpb24gdGVzdEZyb3plblByb3BlcnR5KG9iaiwgcHJvcGVydHkpIHsKICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIHByb3BlcnR5KTsKICAgIGlmIChkZXNjLndyaXRhYmxlKSB7CiAgICAgICAgJEVSUk9SKCJQcm9wZXJ0eSAiICsgcHJvcGVydHkgKyAiIG9mIG9iamVjdCByZXR1cm5lZCBieSBTdXBwb3J0ZWRMb2NhbGVzIGlzIHdyaXRhYmxlLiIpOwogICAgfQogICAgaWYgKGRlc2MuY29uZmlndXJhYmxlKSB7CiAgICAgICAgJEVSUk9SKCJQcm9wZXJ0eSAiICsgcHJvcGVydHkgKyAiIG9mIG9iamVjdCByZXR1cm5lZCBieSBTdXBwb3J0ZWRMb2NhbGVzIGlzIGNvbmZpZ3VyYWJsZS4iKTsKICAgIH0KfQoKdGVzdFdpdGhJbnRsQ29uc3RydWN0b3JzKGZ1bmN0aW9uIChDb25zdHJ1Y3RvcikgewogICAgdmFyIGRlZmF1bHRMb2NhbGUgPSBuZXcgQ29uc3RydWN0b3IoKS5yZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGU7CiAgICB2YXIgc3VwcG9ydGVkID0gQ29uc3RydWN0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKFtkZWZhdWx0TG9jYWxlXSk7CiAgICBpZiAoIU9iamVjdC5pc0V4dGVuc2libGUoc3VwcG9ydGVkKSkgewogICAgICAgICRFUlJPUigiT2JqZWN0IHJldHVybmVkIGJ5IFN1cHBvcnRlZExvY2FsZXMgaXMgbm90IGV4dGVuc2libGUuIik7CiAgICB9CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN1cHBvcnRlZC5sZW5ndGg7IGkrKykgewogICAgICAgIHRlc3RGcm96ZW5Qcm9wZXJ0eShzdXBwb3J0ZWQsIGkpOwogICAgfQogICAgdGVzdEZyb3plblByb3BlcnR5KHN1cHBvcnRlZCwgImxlbmd0aCIpOwoKICAgIHJldHVybiB0cnVlOwp9KTsKCg==","commentary":"","description":"Tests that the array returned by SupportedLocales is extensible,\n but its properties are non-writable/non-configurable.","path":"TestCases/intl402/ch09/9.2/9.2.8_4.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuQ29sbGF0b3IKICogICAgIG1lZXRzIHRoZSByZXF1aXJlbWVudHMgZm9yIGJ1aWx0LWluIG9iamVjdHMgZGVmaW5lZCBieSB0aGUgaW50cm9kdWN0aW9uIG9mCiAqICAgICBjaGFwdGVyIDE1IG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24uCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RCdWlsdEluT2JqZWN0LmpzIik7Cgp0ZXN0QnVpbHRJbk9iamVjdChJbnRsLkNvbGxhdG9yLCB0cnVlLCB0cnVlLCBbInN1cHBvcnRlZExvY2FsZXNPZiJdLCAwKTsKCg==","commentary":"","description":"Tests that Intl.Collator\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch10/10.1/10.1_L15.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLkNvbGxhdG9yIGhhcyBhIHN1cHBvcnRlZExvY2FsZXNPZgogKiBwcm9wZXJ0eSwgYW5kIGl0IHdvcmtzIGFzIHBsYW5uZWQuCiAqLwoKdmFyIGRlZmF1bHRMb2NhbGUgPSBuZXcgSW50bC5Db2xsYXRvcigpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZTsKdmFyIG5vdFN1cHBvcnRlZCA9ICd6eHgnOyAvLyAibm8gbGluZ3Vpc3RpYyBjb250ZW50Igp2YXIgcmVxdWVzdGVkTG9jYWxlcyA9IFtkZWZhdWx0TG9jYWxlLCBub3RTdXBwb3J0ZWRdOwoKdmFyIHN1cHBvcnRlZExvY2FsZXM7CgppZiAoIUludGwuQ29sbGF0b3IuaGFzT3duUHJvcGVydHkoJ3N1cHBvcnRlZExvY2FsZXNPZicpKSB7CiAgICAkRVJST1IoIkludGwuQ29sbGF0b3IgZG9lc24ndCBoYXZlIGEgc3VwcG9ydGVkTG9jYWxlc09mIHByb3BlcnR5LiIpOwp9CgpzdXBwb3J0ZWRMb2NhbGVzID0gSW50bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2NhbGVzT2YocmVxdWVzdGVkTG9jYWxlcyk7CmlmIChzdXBwb3J0ZWRMb2NhbGVzLmxlbmd0aCAhPT0gMSkgewogICAgJEVSUk9SKCdUaGUgbGVuZ3RoIG9mIHN1cHBvcnRlZCBsb2NhbGVzIGxpc3QgaXMgbm90IDEuJyk7Cn0KCmlmIChzdXBwb3J0ZWRMb2NhbGVzWzBdICE9PSBkZWZhdWx0TG9jYWxlKSB7CiAgICAkRVJST1IoJ1RoZSBkZWZhdWx0IGxvY2FsZSBpcyBub3QgcmV0dXJuZWQgaW4gdGhlIHN1cHBvcnRlZCBsaXN0LicpOwp9Cgo=","commentary":"","description":"Tests that Intl.Collator has a supportedLocalesOf\nproperty, and it works as planned.","path":"TestCases/intl402/ch10/10.2/10.2.2.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuQ29sbGF0b3Iuc3VwcG9ydGVkTG9jYWxlc09mCiAqICAgICBtZWV0cyB0aGUgcmVxdWlyZW1lbnRzIGZvciBidWlsdC1pbiBvYmplY3RzIGRlZmluZWQgYnkgdGhlIGludHJvZHVjdGlvbiBvZgogKiAgICAgY2hhcHRlciAxNSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0QnVpbHRJbk9iamVjdC5qcyIpOwoKdGVzdEJ1aWx0SW5PYmplY3QoSW50bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2NhbGVzT2YsIHRydWUsIGZhbHNlLCBbXSwgMSk7Cgo=","commentary":"","description":"Tests that Intl.Collator.supportedLocalesOf\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch10/10.2/10.2.2_L15.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLkNvbGxhdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciBpcyB0aGUKICogSW50bC5Db2xsYXRvci4KICovCgppZiAoSW50bC5Db2xsYXRvci5wcm90b3R5cGUuY29uc3RydWN0b3IgIT09IEludGwuQ29sbGF0b3IpIHsKICAgICRFUlJPUigiSW50bC5Db2xsYXRvci5wcm90b3R5cGUuY29uc3RydWN0b3IgaXMgbm90IHRoZSBzYW1lIGFzICIgKwogICAgICAgICAgICJJbnRsLkNvbGxhdG9yIik7Cn0KCg==","commentary":"","description":"Tests that Intl.Collator.prototype.constructor is the\nIntl.Collator.","path":"TestCases/intl402/ch10/10.3/10.3.1.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBmdW5jdGlvbiByZXR1cm5lZCBieSBJbnRsLkNvbGxhdG9yLnByb3RvdHlwZS5jb21wYXJlCiAqICAgICBtZWV0cyB0aGUgcmVxdWlyZW1lbnRzIGZvciBidWlsdC1pbiBvYmplY3RzIGRlZmluZWQgYnkgdGhlIGludHJvZHVjdGlvbiBvZgogKiAgICAgY2hhcHRlciAxNSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0QnVpbHRJbk9iamVjdC5qcyIpOwoKdGVzdEJ1aWx0SW5PYmplY3QobmV3IEludGwuQ29sbGF0b3IoKS5jb21wYXJlLCB0cnVlLCBmYWxzZSwgW10sIDIpOwoK","commentary":"","description":"Tests that the function returned by Intl.Collator.prototype.compare\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch10/10.3/10.3.2_1_a_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBnZXR0ZXIgZm9yIEludGwuQ29sbGF0b3IucHJvdG90eXBlLmNvbXBhcmUKICogICAgIG1lZXRzIHRoZSByZXF1aXJlbWVudHMgZm9yIGJ1aWx0LWluIG9iamVjdHMgZGVmaW5lZCBieSB0aGUgaW50cm9kdWN0aW9uIG9mCiAqICAgICBjaGFwdGVyIDE1IG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24uCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RCdWlsdEluT2JqZWN0LmpzIik7Cgp0ZXN0QnVpbHRJbk9iamVjdChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEludGwuQ29sbGF0b3IucHJvdG90eXBlLCAiY29tcGFyZSIpLmdldCAsIHRydWUsIGZhbHNlLCBbXSwgMCk7Cgo=","commentary":"","description":"Tests that the getter for Intl.Collator.prototype.compare\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch10/10.3/10.3.2_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuQ29sbGF0b3IucHJvdG90eXBlLnJlc29sdmVkT3B0aW9ucwogKiAgICAgbWVldHMgdGhlIHJlcXVpcmVtZW50cyBmb3IgYnVpbHQtaW4gb2JqZWN0cyBkZWZpbmVkIGJ5IHRoZSBpbnRyb2R1Y3Rpb24gb2YKICogICAgIGNoYXB0ZXIgMTUgb2YgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbi4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEJ1aWx0SW5PYmplY3QuanMiKTsKCnRlc3RCdWlsdEluT2JqZWN0KEludGwuQ29sbGF0b3IucHJvdG90eXBlLnJlc29sdmVkT3B0aW9ucywgdHJ1ZSwgZmFsc2UsIFtdLCAwKTsKCg==","commentary":"","description":"Tests that Intl.Collator.prototype.resolvedOptions\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch10/10.3/10.3.3_L15.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLkNvbGxhdG9yLnByb3RvdHlwZSBpcyBhbiBvYmplY3QgdGhhdAogKiBoYXMgYmVlbiBpbml0aWFsaXplZCBhcyBhbiBJbnRsLkNvbGxhdG9yLgogKi8KCi8vIHRlc3QgYnkgY2FsbGluZyBhIGZ1bmN0aW9uIHRoYXQgd291bGQgZmFpbCBpZiAidGhpcyIgd2VyZSBub3QgYW4gb2JqZWN0Ci8vIGluaXRpYWxpemVkIGFzIGFuIEludGwuQ29sbGF0b3IKaWYgKEludGwuQ29sbGF0b3IucHJvdG90eXBlLmNvbXBhcmUoImHQsOOBguyVhCIsICJh0LDjgYLslYQiKSAhPT0gMCkgewogICAgJEVSUk9SKCJJbnRsLkNvbGxhdG9yLnByb3RvdHlwZSBpcyBub3QgYW4gb2JqZWN0IHRoYXQgaGFzIGJlZW4gIiArCiAgICAgICAgImluaXRpYWxpemVkIGFzIGFuIEludGwuQ29sbGF0b3IuIik7Cn0KCg==","commentary":"","description":"Tests that Intl.Collator.prototype is an object that\nhas been initialized as an Intl.Collator.","path":"TestCases/intl402/ch10/10.3/10.3.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuQ29sbGF0b3IucHJvdG90eXBlCiAqICAgICBtZWV0cyB0aGUgcmVxdWlyZW1lbnRzIGZvciBidWlsdC1pbiBvYmplY3RzIGRlZmluZWQgYnkgdGhlIGludHJvZHVjdGlvbiBvZgogKiAgICAgY2hhcHRlciAxNSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0QnVpbHRJbk9iamVjdC5qcyIpOwoKdGVzdEJ1aWx0SW5PYmplY3QoSW50bC5Db2xsYXRvci5wcm90b3R5cGUsIGZhbHNlLCBmYWxzZSwgWyJjb25zdHJ1Y3RvciIsICJjb21wYXJlIiwgInJlc29sdmVkT3B0aW9ucyJdKTsKCg==","commentary":"","description":"Tests that Intl.Collator.prototype\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch10/10.3/10.3_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuTnVtYmVyRm9ybWF0CiAqICAgICBtZWV0cyB0aGUgcmVxdWlyZW1lbnRzIGZvciBidWlsdC1pbiBvYmplY3RzIGRlZmluZWQgYnkgdGhlIGludHJvZHVjdGlvbiBvZgogKiAgICAgY2hhcHRlciAxNSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0QnVpbHRJbk9iamVjdC5qcyIpOwoKdGVzdEJ1aWx0SW5PYmplY3QoSW50bC5OdW1iZXJGb3JtYXQsIHRydWUsIHRydWUsIFsic3VwcG9ydGVkTG9jYWxlc09mIl0sIDApOwoK","commentary":"","description":"Tests that Intl.NumberFormat\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch11/11.1/11.1_L15.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLk51bWJlckZvcm1hdCBoYXMgYSBzdXBwb3J0ZWRMb2NhbGVzT2YKICogcHJvcGVydHksIGFuZCBpdCB3b3JrcyBhcyBwbGFubmVkLgogKiBAYXV0aG9yOiBSb296YmVoIFBvdXJuYWRlcgogKi8KCnZhciBkZWZhdWx0TG9jYWxlID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlOwp2YXIgbm90U3VwcG9ydGVkID0gJ3p4eCc7IC8vICJubyBsaW5ndWlzdGljIGNvbnRlbnQiCnZhciByZXF1ZXN0ZWRMb2NhbGVzID0gW2RlZmF1bHRMb2NhbGUsIG5vdFN1cHBvcnRlZF07CiAgICAKdmFyIHN1cHBvcnRlZExvY2FsZXM7CgppZiAoIUludGwuTnVtYmVyRm9ybWF0Lmhhc093blByb3BlcnR5KCdzdXBwb3J0ZWRMb2NhbGVzT2YnKSkgewogICAgJEVSUk9SKCJJbnRsLk51bWJlckZvcm1hdCBkb2Vzbid0IGhhdmUgYSBzdXBwb3J0ZWRMb2NhbGVzT2YgcHJvcGVydHkuIik7Cn0KICAgIApzdXBwb3J0ZWRMb2NhbGVzID0gSW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKHJlcXVlc3RlZExvY2FsZXMpOwppZiAoc3VwcG9ydGVkTG9jYWxlcy5sZW5ndGggIT09IDEpIHsKICAgICRFUlJPUignVGhlIGxlbmd0aCBvZiBzdXBwb3J0ZWQgbG9jYWxlcyBsaXN0IGlzIG5vdCAxLicpOwp9CiAgICAKaWYgKHN1cHBvcnRlZExvY2FsZXNbMF0gIT09IGRlZmF1bHRMb2NhbGUpIHsKICAgICRFUlJPUignVGhlIGRlZmF1bHQgbG9jYWxlIGlzIG5vdCByZXR1cm5lZCBpbiB0aGUgc3VwcG9ydGVkIGxpc3QuJyk7Cn0KCg==","commentary":"","description":"Tests that Intl.NumberFormat has a supportedLocalesOf\nproperty, and it works as planned.","path":"TestCases/intl402/ch11/11.2/11.2.2.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuTnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZgogKiAgICAgbWVldHMgdGhlIHJlcXVpcmVtZW50cyBmb3IgYnVpbHQtaW4gb2JqZWN0cyBkZWZpbmVkIGJ5IHRoZSBpbnRyb2R1Y3Rpb24gb2YKICogICAgIGNoYXB0ZXIgMTUgb2YgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbi4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEJ1aWx0SW5PYmplY3QuanMiKTsKCnRlc3RCdWlsdEluT2JqZWN0KEludGwuTnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZiwgdHJ1ZSwgZmFsc2UsIFtdLCAxKTsKCg==","commentary":"","description":"Tests that Intl.NumberFormat.supportedLocalesOf\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch11/11.2/11.2.2_L15.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuY29uc3RydWN0b3IgaXMgdGhlCiAqIEludGwuTnVtYmVyRm9ybWF0LgogKiBAYXV0aG9yOiBSb296YmVoIFBvdXJuYWRlcgogKi8KCmlmIChJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuY29uc3RydWN0b3IgIT09IEludGwuTnVtYmVyRm9ybWF0KSB7CiAgICAkRVJST1IoIkludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZS5jb25zdHJ1Y3RvciBpcyBub3QgdGhlIHNhbWUgYXMgIiArCiAgICAgICAgICAiSW50bC5OdW1iZXJGb3JtYXQiKTsKfQoK","commentary":"","description":"Tests that Intl.NumberFormat.prototype.constructor is the\nIntl.NumberFormat.","path":"TestCases/intl402/ch11/11.3/11.3.1.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuZm9ybWF0CiAqIGNvbnZlcnRzIG90aGVyIHR5cGVzIHRvIG51bWJlcnMuCiAqIEBhdXRob3I6IFJvb3piZWggUG91cm5hZGVyCiAqLwoKdmFyIGZvcm1hdHRlciA9IG5ldyBJbnRsLk51bWJlckZvcm1hdCgpOwp2YXIgdGVzdERhdGEgPSBbdW5kZWZpbmVkLCBudWxsLCB0cnVlLCAnMC42NjY2NjY2J107CnZhciBudW1iZXI7CnZhciBpLCBpbnB1dCwgY29ycmVjdFJlc3VsdCwgcmVzdWx0OwoKZm9yIChpIGluIHRlc3REYXRhKSB7CiAgICBpbnB1dCA9IHRlc3REYXRhW2ldOwogICAgbnVtYmVyID0gK2lucHV0OwogICAgY29ycmVjdFJlc3VsdCA9IGZvcm1hdHRlci5mb3JtYXQobnVtYmVyKTsKICAgIAogICAgcmVzdWx0ID0gZm9ybWF0dGVyLmZvcm1hdChpbnB1dCk7CiAgICBpZiAocmVzdWx0ICE9PSBjb3JyZWN0UmVzdWx0KSB7CiAgICAgICAgJEVSUk9SKCdJbnRsLk51bWJlckZvcm1hdCBkb2VzIG5vdCBjb252ZXJ0IG90aGVyICcgKwogICAgICAgICAgICAndHlwZXMgdG8gbnVtYmVycy4gSW5wdXQ6ICInK2lucHV0KyciIE91dHB1dDogIicrcmVzdWx0KyciICcrCiAgICAgICAgICAgICdFeHBlY3RlZCBvdXRwdXQ6ICInK2NvcnJlY3RSZXN1bHQrJyInKTsKICAgIH0KfQoK","commentary":"","description":"Tests that Intl.NumberFormat.prototype.format\nconverts other types to numbers.","path":"TestCases/intl402/ch11/11.3/11.3.2_1_a_ii.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBmdW5jdGlvbiByZXR1cm5lZCBieSBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuZm9ybWF0CiAqICAgICBtZWV0cyB0aGUgcmVxdWlyZW1lbnRzIGZvciBidWlsdC1pbiBvYmplY3RzIGRlZmluZWQgYnkgdGhlIGludHJvZHVjdGlvbiBvZgogKiAgICAgY2hhcHRlciAxNSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0QnVpbHRJbk9iamVjdC5qcyIpOwoKdGVzdEJ1aWx0SW5PYmplY3QobmV3IEludGwuTnVtYmVyRm9ybWF0KCkuZm9ybWF0LCB0cnVlLCBmYWxzZSwgW10sIDEpOwoK","commentary":"","description":"Tests that the function returned by Intl.NumberFormat.prototype.format\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch11/11.3/11.3.2_1_a_L15.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuZm9ybWF0CiAqIGRvZXNuJ3QgdHJlYXQgYWxsIG51bWJlcnMgYXMgbmVnYXRpdmUuCiAqIEBhdXRob3I6IFJvb3piZWggUG91cm5hZGVyCiAqLwoKdmFyIGZvcm1hdHRlciA9IG5ldyBJbnRsLk51bWJlckZvcm1hdCgpOwogIAppZiAoZm9ybWF0dGVyLmZvcm1hdCgxKSA9PT0gZm9ybWF0dGVyLmZvcm1hdCgtMSkpIHsKICAgICRFUlJPUignSW50bC5OdW1iZXJGb3JtYXQgaXMgZm9ybWF0dGluZyAxIGFuZCAtMSB0aGUgc2FtZSB3YXkuJyk7Cn0KCmlmIChmb3JtYXR0ZXIuZm9ybWF0KC0wKSAhPT0gZm9ybWF0dGVyLmZvcm1hdCgwKSkgewogICAgJEVSUk9SKCdJbnRsLk51bWJlckZvcm1hdCBpcyBmb3JtYXR0aW5nIHNpZ25lZCB6ZXJvcyBkaWZmZXJlbnRseS4nKTsKfQoK","commentary":"","description":"Tests that Intl.NumberFormat.prototype.format\ndoesn't treat all numbers as negative.","path":"TestCases/intl402/ch11/11.3/11.3.2_FN_1.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuZm9ybWF0CiAqIGhhbmRsZXMgTmFOLCBJbmZpbml0eSwgYW5kIC1JbmZpbml0eSBwcm9wZXJseS4KICogQGF1dGhvcjogUm9vemJlaCBQb3VybmFkZXIKICovCgovLyBGSVhNRTogV2UgYXJlIG9ubHkgbGlzdGluZyBOdW1lcmljX1R5cGU9RGVjaW1hbC4gTWF5IG5lZWQgdG8gYWRkIG1vcmUKLy8gd2hlbiB0aGUgc3BlYyBjbGFyaWZpZXMuIEN1cnJlbnQgYXMgb2YgVW5pY29kZSA2LjEuCnZhciBoYXNVbmljb2RlRGlnaXRzID0gbmV3IFJlZ0V4cCgnLiooWycgKwogICAgJzAtOVx1MDY2MC1cdTA2NjlcdTA2RjAtXHUwNkY5XHUwN0MwLVx1MDdDOVx1MDk2Ni1cdTA5NkYnICsKICAgICdcdTA5RTYtXHUwOUVGXHUwQTY2LVx1MEE2Rlx1MEFFNi1cdTBBRUZcdTBCNjYtXHUwQjZGXHUwQkU2LVx1MEJFRicgKwogICAgJ1x1MEM2Ni1cdTBDNkZcdTBDRTYtXHUwQ0VGXHUwRDY2LVx1MEQ2Rlx1MEU1MC1cdTBFNTlcdTBFRDAtXHUwRUQ5JyArCiAgICAnXHUwRjIwLVx1MEYyOVx1MTA0MC1cdTEwNDlcdTEwOTAtXHUxMDk5XHUxN0UwLVx1MTdFOVx1MTgxMC1cdTE4MTknICsKICAgICdcdTE5NDYtXHUxOTRGXHUxOUQwLVx1MTlEOVx1MUE4MC1cdTFBODlcdTFBOTAtXHUxQTk5XHUxQjUwLVx1MUI1OScgKwogICAgJ1x1MUJCMC1cdTFCQjlcdTFDNDAtXHUxQzQ5XHUxQzUwLVx1MUM1OVx1QTYyMC1cdUE2MjlcdUE4RDAtXHVBOEQ5JyArCiAgICAnXHVBOTAwLVx1QTkwOVx1QTlEMC1cdUE5RDlcdUFBNTAtXHVBQTU5XHVBQkYwLVx1QUJGOVx1RkYxMC1cdUZGMTknICsKICAgICddfCcgKwogICAgJ1x1RDgwMVtcdURDQTAtXHVEQ0E5XXwnICsKICAgICdcdUQ4MDRbXHVEQzY2LVx1REM2Rlx1RENGMC1cdURDRjlcdUREMzYtXHVERDNGXHVEREQwLVx1REREOV18JyArCiAgICAnXHVEODA1W1x1REVDMC1cdURFQzldfCcgKwogICAgJ1x1RDgzNVtcdURGQ0UtXHVERkZGXSknKTsKCnZhciBmb3JtYXR0ZXIgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoKTsKdmFyIGZvcm1hdHRlZE5hTiA9IGZvcm1hdHRlci5mb3JtYXQoTmFOKTsKdmFyIGZvcm1hdHRlZEluZmluaXR5ID0gZm9ybWF0dGVyLmZvcm1hdChJbmZpbml0eSk7CnZhciBmb3JtYXR0ZWROZWdhdGl2ZUluZmluaXR5ID0gZm9ybWF0dGVyLmZvcm1hdCgtSW5maW5pdHkpOwoKaWYgKGZvcm1hdHRlZE5hTiA9PT0gZm9ybWF0dGVkSW5maW5pdHkpIHsKICAgICRFUlJPUignSW50bC5OdW1iZXJGb3JtYXQgZm9ybWF0cyBOYU4gYW5kIEluZmluaXR5IHRoZSAnICsKICAgICAgICAnc2FtZSB3YXkuJyk7Cn0KCmlmIChmb3JtYXR0ZWROYU4gPT09IGZvcm1hdHRlZE5lZ2F0aXZlSW5maW5pdHkpIHsKICAgICRFUlJPUignSW50bC5OdW1iZXJGb3JtYXQgZm9ybWF0cyBOYU4gYW5kIG5lZ2F0aXZlICcgKwogICAgICAgICdJbmZpbml0eSB0aGUgc2FtZSB3YXkuJyk7Cn0KCmlmIChmb3JtYXR0ZWRJbmZpbml0eSA9PT0gZm9ybWF0dGVkTmVnYXRpdmVJbmZpbml0eSkgewogICAgJEVSUk9SKCdJbnRsLk51bWJlckZvcm1hdCBmb3JtYXRzIEluZmluaXR5IGFuZCAnICsKICAgICAgICAnbmVnYXRpdmUgSW5maW5pdHkgdGhlIHNhbWUgd2F5LicpOwp9CgppZiAoaGFzVW5pY29kZURpZ2l0cy50ZXN0KGZvcm1hdHRlZE5hTikpIHsKICAgICRFUlJPUignSW50bC5OdW1iZXJGb3JtYXQgZm9ybWF0cyBOYU4gdXNpbmcgYSBkaWdpdC4nKTsKfQoKaWYgKGhhc1VuaWNvZGVEaWdpdHMudGVzdChmb3JtYXR0ZWRJbmZpbml0eSkpIHsKICAgICRFUlJPUignSW50bC5OdW1iZXJGb3JtYXQgZm9ybWF0cyBJbmZpbml0eSB1c2luZyBhICcgKwogICAgICAgICdkaWdpdC4nKTsKfQoKaWYgKGhhc1VuaWNvZGVEaWdpdHMudGVzdChmb3JtYXR0ZWROZWdhdGl2ZUluZmluaXR5KSkgewogICAgJEVSUk9SKCdJbnRsLk51bWJlckZvcm1hdCBmb3JtYXRzIG5lZ2F0aXZlIEluZmluaXR5ICcgKyAKICAgICAgICAndXNpbmcgYSBkaWdpdC4nKTsKfQoK","commentary":"","description":"Tests that Intl.NumberFormat.prototype.format\nhandles NaN, Infinity, and -Infinity properly.","path":"TestCases/intl402/ch11/11.3/11.3.2_FN_2.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuZm9ybWF0CiAqIGZvcm1hdHMgcGVyY2VudCB2YWx1ZXMgcHJvcGVybHkuCiAqIEBhdXRob3I6IFJvb3piZWggUG91cm5hZGVyCiAqLwoKdmFyIG51bWJlckZvcm1hdHRlciA9IG5ldyBJbnRsLk51bWJlckZvcm1hdCgpOwp2YXIgcGVyY2VudEZvcm1hdHRlciA9IG5ldyBJbnRsLk51bWJlckZvcm1hdCh1bmRlZmluZWQsIHtzdHlsZTogJ3BlcmNlbnQnfSk7Cgp2YXIgZm9ybWF0dGVkVHdlbnR5ID0gbnVtYmVyRm9ybWF0dGVyLmZvcm1hdCgyMCk7CnZhciBmb3JtYXR0ZWRUd2VudHlQZXJjZW50ID0gcGVyY2VudEZvcm1hdHRlci5mb3JtYXQoMC4yMCk7CgovLyBGSVhNRTogTWF5IG5vdCB3b3JrIGZvciBzb21lIHRoZW9yZXRpY2FsIGxvY2FsZXMgd2hlcmUgcGVyY2VudHMgYW5kCi8vIG5vcm1hbCBudW1iZXJzIGFyZSBmb3JtYXR0ZWQgdXNpbmcgZGlmZmVyZW50IG51bWJlcmluZyBzeXN0ZW1zLgppZiAoZm9ybWF0dGVkVHdlbnR5UGVyY2VudC5pbmRleE9mKGZvcm1hdHRlZFR3ZW50eSkgPT09IC0xKSB7CiAgICAkRVJST1IoIkludGwuTnVtYmVyRm9ybWF0J3MgZm9ybWF0dGluZyBvZiAyMCUgZG9lcyBub3QgaW5jbHVkZSBhICIgKwogICAgICAgICJmb3JtYXR0aW5nIG9mIDIwIGFzIGEgc3Vic3RyaW5nLiIpOwp9CgovLyBGSVhNRTogTW92ZSB0aGlzIHRvIHNvbWV3aGVyZSBhcHByb3ByaWF0ZQppZiAocGVyY2VudEZvcm1hdHRlci5mb3JtYXQoMC4wMTEpID09PSBwZXJjZW50Rm9ybWF0dGVyLmZvcm1hdCgwLjAyKSkgewogICAgJEVSUk9SKCdJbnRsLk51bWJlckZvcm1hdCBpcyBmb3JtYXR0aW5nIDEuMSUgYW5kIDIlIHRoZSBzYW1lIHdheS4nKTsKfQoK","commentary":"","description":"Tests that Intl.NumberFormat.prototype.format\nformats percent values properly.","path":"TestCases/intl402/ch11/11.3/11.3.2_FN_3_b.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuZm9ybWF0CiAqIHN1cHBvcnRzIGFsbCBhbHRlcm5hdGl2ZSBudW1iZXJpbmcgc3lzdGVtcy4KICogQGF1dGhvcjogUm9vemJlaCBQb3VybmFkZXIKICovCgp2YXIgbnVtYmVyaW5nU3lzdGVtcyA9IHsKICAgIGFyYWI6IDB4MDY2MCwKICAgIGFyYWJleHQ6IDB4MDZGMCwKICAgIGJlbmc6IDB4MDlFNiwKICAgIGRldmE6IDB4MDk2NiwKICAgIGZ1bGx3aWRlOiAweEZGMTAsCiAgICBndWpyOiAweDBBRTYsCiAgICBndXJ1OiAweDBBNjYsCiAgICBoYW5pZGVjOiBbMHgzMDA3LCAweDRFMDAsIDB4NEU4QywgMHg0RTA5LCAweDU2REIsCiAgICAgICAgICAgICAgMHg0RTk0LCAweDUxNkQsIDB4NEUwMywgMHg1MTZCLCAweDRFNURdLAogICAga2htcjogMHgxN0UwLAogICAga25kYTogMHgwQ0U2LAogICAgbGFvbzogMHgwRUQwLAogICAgbGF0bjogMHgwMDMwLAogICAgbWx5bTogMHgwRDY2LAogICAgbW9uZzogMHgxODEwLAogICAgbXltcjogMHgxMDQwLAogICAgb3J5YTogMHgwQjY2LAogICAgdGFtbGRlYzogMHgwQkU2LAogICAgdGVsdTogMHgwQzY2LAogICAgdGhhaTogMHgwRTUwLAogICAgdGlidDogMHgwRjIwCn07Cgp2YXIgb3B0aW9ucywgZm9ybWF0dGVyOwp2YXIgcywgemVyb0NvZGUsIGRpZ2l0TGlzdDsKCmZvciAocyBpbiBudW1iZXJpbmdTeXN0ZW1zKSB7CiAgICB6ZXJvQ29kZSA9IG51bWJlcmluZ1N5c3RlbXNbc107CiAgICBpZiAodHlwZW9mIHplcm9Db2RlID09PSAnbnVtYmVyJykgewogICAgICAgIGRpZ2l0TGlzdCA9IFt6ZXJvQ29kZSwgemVyb0NvZGUrMSwgemVyb0NvZGUrMiwgemVyb0NvZGUrMywgemVyb0NvZGUrNCwKICAgICAgICAgICAgICAgICAgIHplcm9Db2RlKzUsIHplcm9Db2RlKzYsIHplcm9Db2RlKzcsIHplcm9Db2RlKzgsIHplcm9Db2RlKzldOwogICAgICAgIG51bWJlcmluZ1N5c3RlbXNbc10gPSBkaWdpdExpc3Q7CiAgICB9Cn0KCi8vIEZJWE1FOiBVbmZpbmlzaGVkCgo=","commentary":"","description":"Tests that Intl.NumberFormat.prototype.format\nsupports all alternative numbering systems.","path":"TestCases/intl402/ch11/11.3/11.3.2_FN_3_e.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBnZXR0ZXIgZm9yIEludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZS5mb3JtYXQKICogICAgIG1lZXRzIHRoZSByZXF1aXJlbWVudHMgZm9yIGJ1aWx0LWluIG9iamVjdHMgZGVmaW5lZCBieSB0aGUgaW50cm9kdWN0aW9uIG9mCiAqICAgICBjaGFwdGVyIDE1IG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24uCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RCdWlsdEluT2JqZWN0LmpzIik7Cgp0ZXN0QnVpbHRJbk9iamVjdChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZSwgImZvcm1hdCIpLmdldCAsIHRydWUsIGZhbHNlLCBbXSwgMCk7Cgo=","commentary":"","description":"Tests that the getter for Intl.NumberFormat.prototype.format\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch11/11.3/11.3.2_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZS5yZXNvbHZlZE9wdGlvbnMKICogICAgIG1lZXRzIHRoZSByZXF1aXJlbWVudHMgZm9yIGJ1aWx0LWluIG9iamVjdHMgZGVmaW5lZCBieSB0aGUgaW50cm9kdWN0aW9uIG9mCiAqICAgICBjaGFwdGVyIDE1IG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24uCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RCdWlsdEluT2JqZWN0LmpzIik7Cgp0ZXN0QnVpbHRJbk9iamVjdChJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUucmVzb2x2ZWRPcHRpb25zLCB0cnVlLCBmYWxzZSwgW10sIDApOwoK","commentary":"","description":"Tests that Intl.NumberFormat.prototype.resolvedOptions\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch11/11.3/11.3.3_L15.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUgaXMgYW4gb2JqZWN0IHRoYXQKICogaGFzIGJlZW4gaW5pdGlhbGl6ZWQgYXMgYW4gSW50bC5OdW1iZXJGb3JtYXQuCiAqIEBhdXRob3I6IFJvb3piZWggUG91cm5hZGVyCiAqLwoKLy8gdGVzdCBieSBjYWxsaW5nIGEgZnVuY3Rpb24gdGhhdCB3b3VsZCBmYWlsIGlmICJ0aGlzIiB3ZXJlIG5vdCBhbiBvYmplY3QKLy8gaW5pdGlhbGl6ZWQgYXMgYW4gSW50bC5OdW1iZXJGb3JtYXQKaWYgKHR5cGVvZiBJbnRsLk51bWJlckZvcm1hdC5wcm90b3R5cGUuZm9ybWF0KDApICE9PSAic3RyaW5nIikgewogICAgJEVSUk9SKCJJbnRsLk51bWJlckZvcm1hdCdzIHByb3RvdHlwZSBpcyBub3QgYW4gb2JqZWN0IHRoYXQgaGFzIGJlZW4gIiArCiAgICAgICAgImluaXRpYWxpemVkIGFzIGFuIEludGwuTnVtYmVyRm9ybWF0Iik7Cn0KCg==","commentary":"","description":"Tests that Intl.NumberFormat.prototype is an object that\nhas been initialized as an Intl.NumberFormat.","path":"TestCases/intl402/ch11/11.3/11.3.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZQogKiAgICAgbWVldHMgdGhlIHJlcXVpcmVtZW50cyBmb3IgYnVpbHQtaW4gb2JqZWN0cyBkZWZpbmVkIGJ5IHRoZSBpbnRyb2R1Y3Rpb24gb2YKICogICAgIGNoYXB0ZXIgMTUgb2YgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbi4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEJ1aWx0SW5PYmplY3QuanMiKTsKCnRlc3RCdWlsdEluT2JqZWN0KEludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZSwgZmFsc2UsIGZhbHNlLCBbImNvbnN0cnVjdG9yIiwgImZvcm1hdCIsICJyZXNvbHZlZE9wdGlvbnMiXSk7Cgo=","commentary":"","description":"Tests that Intl.NumberFormat.prototype\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch11/11.3/11.3_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuRGF0ZVRpbWVGb3JtYXQKICogICAgIG1lZXRzIHRoZSByZXF1aXJlbWVudHMgZm9yIGJ1aWx0LWluIG9iamVjdHMgZGVmaW5lZCBieSB0aGUgaW50cm9kdWN0aW9uIG9mCiAqICAgICBjaGFwdGVyIDE1IG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24uCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RCdWlsdEluT2JqZWN0LmpzIik7Cgp0ZXN0QnVpbHRJbk9iamVjdChJbnRsLkRhdGVUaW1lRm9ybWF0LCB0cnVlLCB0cnVlLCBbInN1cHBvcnRlZExvY2FsZXNPZiJdLCAwKTsKCg==","commentary":"","description":"Tests that Intl.DateTimeFormat\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch12/12.1/12.1_L15.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLkRhdGVUaW1lRm9ybWF0IGhhcyBhIHN1cHBvcnRlZExvY2FsZXNPZgogKiBwcm9wZXJ0eSwgYW5kIGl0IHdvcmtzIGFzIHBsYW5uZWQuCiAqIEBhdXRob3I6IFJvb3piZWggUG91cm5hZGVyCiAqLwoKdmFyIGRlZmF1bHRMb2NhbGUgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZTsKdmFyIG5vdFN1cHBvcnRlZCA9ICd6eHgnOyAvLyAibm8gbGluZ3Vpc3RpYyBjb250ZW50Igp2YXIgcmVxdWVzdGVkTG9jYWxlcyA9IFtkZWZhdWx0TG9jYWxlLCBub3RTdXBwb3J0ZWRdOwogICAgCnZhciBzdXBwb3J0ZWRMb2NhbGVzOwoKaWYgKCFJbnRsLkRhdGVUaW1lRm9ybWF0Lmhhc093blByb3BlcnR5KCdzdXBwb3J0ZWRMb2NhbGVzT2YnKSkgewogICAgJEVSUk9SKCJJbnRsLkRhdGVUaW1lRm9ybWF0IGRvZXNuJ3QgaGF2ZSBhIHN1cHBvcnRlZExvY2FsZXNPZiBwcm9wZXJ0eS4iKTsKfQogICAgCnN1cHBvcnRlZExvY2FsZXMgPSBJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZihyZXF1ZXN0ZWRMb2NhbGVzKTsKaWYgKHN1cHBvcnRlZExvY2FsZXMubGVuZ3RoICE9PSAxKSB7CiAgICAkRVJST1IoJ1RoZSBsZW5ndGggb2Ygc3VwcG9ydGVkIGxvY2FsZXMgbGlzdCBpcyBub3QgMS4nKTsKfQogICAgCmlmIChzdXBwb3J0ZWRMb2NhbGVzWzBdICE9PSBkZWZhdWx0TG9jYWxlKSB7CiAgICAkRVJST1IoJ1RoZSBkZWZhdWx0IGxvY2FsZSBpcyBub3QgcmV0dXJuZWQgaW4gdGhlIHN1cHBvcnRlZCBsaXN0LicpOwp9Cgo=","commentary":"","description":"Tests that Intl.DateTimeFormat has a supportedLocalesOf\nproperty, and it works as planned.","path":"TestCases/intl402/ch12/12.2/12.2.2.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuRGF0ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mCiAqICAgICBtZWV0cyB0aGUgcmVxdWlyZW1lbnRzIGZvciBidWlsdC1pbiBvYmplY3RzIGRlZmluZWQgYnkgdGhlIGludHJvZHVjdGlvbiBvZgogKiAgICAgY2hhcHRlciAxNSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0QnVpbHRJbk9iamVjdC5qcyIpOwoKdGVzdEJ1aWx0SW5PYmplY3QoSW50bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YsIHRydWUsIGZhbHNlLCBbXSwgMSk7Cgo=","commentary":"","description":"Tests that Intl.DateTimeFormat.supportedLocalesOf\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch12/12.2/12.2.2_L15.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLkRhdGVUaW1lRm9ybWF0LnByb3RvdHlwZS5jb25zdHJ1Y3RvciBpcyB0aGUKICogSW50bC5EYXRlVGltZUZvcm1hdC4KICogQGF1dGhvcjogUm9vemJlaCBQb3VybmFkZXIKICovCgppZiAoSW50bC5EYXRlVGltZUZvcm1hdC5wcm90b3R5cGUuY29uc3RydWN0b3IgIT09IEludGwuRGF0ZVRpbWVGb3JtYXQpIHsKICAgICRFUlJPUigiSW50bC5EYXRlVGltZUZvcm1hdC5wcm90b3R5cGUuY29uc3RydWN0b3IgaXMgbm90IHRoZSBzYW1lIGFzICIgKwogICAgICAgICAgIkludGwuRGF0ZVRpbWVGb3JtYXQiKTsKfQoK","commentary":"","description":"Tests that Intl.DateTimeFormat.prototype.constructor is the\nIntl.DateTimeFormat.","path":"TestCases/intl402/ch12/12.3/12.3.1.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBmdW5jdGlvbiByZXR1cm5lZCBieSBJbnRsLkRhdGVUaW1lRm9ybWF0LnByb3RvdHlwZS5mb3JtYXQKICogICAgIG1lZXRzIHRoZSByZXF1aXJlbWVudHMgZm9yIGJ1aWx0LWluIG9iamVjdHMgZGVmaW5lZCBieSB0aGUgaW50cm9kdWN0aW9uIG9mCiAqICAgICBjaGFwdGVyIDE1IG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24uCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RCdWlsdEluT2JqZWN0LmpzIik7Cgp0ZXN0QnVpbHRJbk9iamVjdChuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgpLmZvcm1hdCwgdHJ1ZSwgZmFsc2UsIFtdLCAwKTsKCg==","commentary":"","description":"Tests that the function returned by Intl.DateTimeFormat.prototype.format\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch12/12.3/12.3.2_1_a_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IHRoZSBnZXR0ZXIgZm9yIEludGwuRGF0ZVRpbWVGb3JtYXQucHJvdG90eXBlLmZvcm1hdAogKiAgICAgbWVldHMgdGhlIHJlcXVpcmVtZW50cyBmb3IgYnVpbHQtaW4gb2JqZWN0cyBkZWZpbmVkIGJ5IHRoZSBpbnRyb2R1Y3Rpb24gb2YKICogICAgIGNoYXB0ZXIgMTUgb2YgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbi4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEJ1aWx0SW5PYmplY3QuanMiKTsKCnRlc3RCdWlsdEluT2JqZWN0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSW50bC5EYXRlVGltZUZvcm1hdC5wcm90b3R5cGUsICJmb3JtYXQiKS5nZXQgLCB0cnVlLCBmYWxzZSwgW10sIDApOwoK","commentary":"","description":"Tests that the getter for Intl.DateTimeFormat.prototype.format\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch12/12.3/12.3.2_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuRGF0ZVRpbWVGb3JtYXQucHJvdG90eXBlLnJlc29sdmVkT3B0aW9ucwogKiAgICAgbWVldHMgdGhlIHJlcXVpcmVtZW50cyBmb3IgYnVpbHQtaW4gb2JqZWN0cyBkZWZpbmVkIGJ5IHRoZSBpbnRyb2R1Y3Rpb24gb2YKICogICAgIGNoYXB0ZXIgMTUgb2YgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbi4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEJ1aWx0SW5PYmplY3QuanMiKTsKCnRlc3RCdWlsdEluT2JqZWN0KEludGwuRGF0ZVRpbWVGb3JtYXQucHJvdG90eXBlLnJlc29sdmVkT3B0aW9ucywgdHJ1ZSwgZmFsc2UsIFtdLCAwKTsKCg==","commentary":"","description":"Tests that Intl.DateTimeFormat.prototype.resolvedOptions\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch12/12.3/12.3.3_L15.js"},{"author":"Roozbeh Pournader","code":"Ly8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAZGVzY3JpcHRpb24gVGVzdHMgdGhhdCBJbnRsLkRhdGVUaW1lRm9ybWF0LnByb3RvdHlwZSBpcyBhbiBvYmplY3QgdGhhdAogKiBoYXMgYmVlbiBpbml0aWFsaXplZCBhcyBhbiBJbnRsLkRhdGVUaW1lRm9ybWF0LgogKiBAYXV0aG9yOiBSb296YmVoIFBvdXJuYWRlcgogKi8KCi8vIHRlc3QgYnkgY2FsbGluZyBhIGZ1bmN0aW9uIHRoYXQgd291bGQgZmFpbCBpZiAidGhpcyIgd2VyZSBub3QgYW4gb2JqZWN0Ci8vIGluaXRpYWxpemVkIGFzIGFuIEludGwuRGF0ZVRpbWVGb3JtYXQKaWYgKHR5cGVvZiBJbnRsLkRhdGVUaW1lRm9ybWF0LnByb3RvdHlwZS5mb3JtYXQoMCkgIT09ICJzdHJpbmciKSB7CiAgICAkRVJST1IoIkludGwuRGF0ZVRpbWVGb3JtYXQncyBwcm90b3R5cGUgaXMgbm90IGFuIG9iamVjdCB0aGF0IGhhcyBiZWVuICIgKwogICAgICAgICJpbml0aWFsaXplZCBhcyBhbiBJbnRsLkRhdGVUaW1lRm9ybWF0Iik7Cn0KCg==","commentary":"","description":"Tests that Intl.DateTimeFormat.prototype is an object that\nhas been initialized as an Intl.DateTimeFormat.","path":"TestCases/intl402/ch12/12.3/12.3.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IEludGwuRGF0ZVRpbWVGb3JtYXQucHJvdG90eXBlCiAqICAgICBtZWV0cyB0aGUgcmVxdWlyZW1lbnRzIGZvciBidWlsdC1pbiBvYmplY3RzIGRlZmluZWQgYnkgdGhlIGludHJvZHVjdGlvbiBvZgogKiAgICAgY2hhcHRlciAxNSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0QnVpbHRJbk9iamVjdC5qcyIpOwoKdGVzdEJ1aWx0SW5PYmplY3QoSW50bC5EYXRlVGltZUZvcm1hdC5wcm90b3R5cGUsIGZhbHNlLCBmYWxzZSwgWyJjb25zdHJ1Y3RvciIsICJmb3JtYXQiLCAicmVzb2x2ZWRPcHRpb25zIl0pOwoK","commentary":"","description":"Tests that Intl.DateTimeFormat.prototype\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch12/12.3/12.3_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IFN0cmluZy5wcm90b3R5cGUubG9jYWxlQ29tcGFyZQogKiAgICAgbWVldHMgdGhlIHJlcXVpcmVtZW50cyBmb3IgYnVpbHQtaW4gb2JqZWN0cyBkZWZpbmVkIGJ5IHRoZSBpbnRyb2R1Y3Rpb24gb2YKICogICAgIGNoYXB0ZXIgMTUgb2YgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbi4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEJ1aWx0SW5PYmplY3QuanMiKTsKCnRlc3RCdWlsdEluT2JqZWN0KFN0cmluZy5wcm90b3R5cGUubG9jYWxlQ29tcGFyZSwgdHJ1ZSwgZmFsc2UsIFtdLCAxKTsKCg==","commentary":"","description":"Tests that String.prototype.localeCompare\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch13/13.1/13.1.1_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IE51bWJlci5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcKICogICAgIG1lZXRzIHRoZSByZXF1aXJlbWVudHMgZm9yIGJ1aWx0LWluIG9iamVjdHMgZGVmaW5lZCBieSB0aGUgaW50cm9kdWN0aW9uIG9mCiAqICAgICBjaGFwdGVyIDE1IG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24uCiAqIEBhdXRob3IgTm9yYmVydCBMaW5kZW5iZXJnCiAqLwoKJElOQ0xVREUoInRlc3RCdWlsdEluT2JqZWN0LmpzIik7Cgp0ZXN0QnVpbHRJbk9iamVjdChOdW1iZXIucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLCB0cnVlLCBmYWxzZSwgW10sIDApOwoK","commentary":"","description":"Tests that Number.prototype.toLocaleString\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch13/13.2/13.2.1_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IERhdGUucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nCiAqICAgICBtZWV0cyB0aGUgcmVxdWlyZW1lbnRzIGZvciBidWlsdC1pbiBvYmplY3RzIGRlZmluZWQgYnkgdGhlIGludHJvZHVjdGlvbiBvZgogKiAgICAgY2hhcHRlciAxNSBvZiB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uLgogKiBAYXV0aG9yIE5vcmJlcnQgTGluZGVuYmVyZwogKi8KCiRJTkNMVURFKCJ0ZXN0QnVpbHRJbk9iamVjdC5qcyIpOwoKdGVzdEJ1aWx0SW5PYmplY3QoRGF0ZS5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcsIHRydWUsIGZhbHNlLCBbXSwgMCk7Cgo=","commentary":"","description":"Tests that Date.prototype.toLocaleString\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch13/13.3/13.3.1_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IERhdGUucHJvdG90eXBlLnRvTG9jYWxlRGF0ZVN0cmluZwogKiAgICAgbWVldHMgdGhlIHJlcXVpcmVtZW50cyBmb3IgYnVpbHQtaW4gb2JqZWN0cyBkZWZpbmVkIGJ5IHRoZSBpbnRyb2R1Y3Rpb24gb2YKICogICAgIGNoYXB0ZXIgMTUgb2YgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbi4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEJ1aWx0SW5PYmplY3QuanMiKTsKCnRlc3RCdWlsdEluT2JqZWN0KERhdGUucHJvdG90eXBlLnRvTG9jYWxlRGF0ZVN0cmluZywgdHJ1ZSwgZmFsc2UsIFtdLCAwKTsKCg==","commentary":"","description":"Tests that Date.prototype.toLocaleDateString\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch13/13.3/13.3.2_L15.js"},{"author":"Norbert Lindenberg","code":"Ly8gQ29weXJpZ2h0IDIwMTIgTW96aWxsYSBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLyoqCiAqIEBkZXNjcmlwdGlvbiBUZXN0cyB0aGF0IERhdGUucHJvdG90eXBlLnRvTG9jYWxlVGltZVN0cmluZwogKiAgICAgbWVldHMgdGhlIHJlcXVpcmVtZW50cyBmb3IgYnVpbHQtaW4gb2JqZWN0cyBkZWZpbmVkIGJ5IHRoZSBpbnRyb2R1Y3Rpb24gb2YKICogICAgIGNoYXB0ZXIgMTUgb2YgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbi4KICogQGF1dGhvciBOb3JiZXJ0IExpbmRlbmJlcmcKICovCgokSU5DTFVERSgidGVzdEJ1aWx0SW5PYmplY3QuanMiKTsKCnRlc3RCdWlsdEluT2JqZWN0KERhdGUucHJvdG90eXBlLnRvTG9jYWxlVGltZVN0cmluZywgdHJ1ZSwgZmFsc2UsIFtdLCAwKTsKCg==","commentary":"","description":"Tests that Date.prototype.toLocaleTimeString\n meets the requirements for built-in objects defined by the introduction of\n chapter 15 of the ECMAScript Language Specification.","path":"TestCases/intl402/ch13/13.3/13.3.3_L15.js"}]}} \ No newline at end of file
diff --git a/website/json/testcases_intl402.json b/website/json/testcases_intl402.json
index 7c24cc709..187a04bb6 100644
--- a/website/json/testcases_intl402.json
+++ b/website/json/testcases_intl402.json
@@ -1 +1 @@
-{"numTests":41,"testSuite":["json/intl402.json"]} \ No newline at end of file
+{"numTests":66,"testSuite":["json/intl402.json"]} \ No newline at end of file