diff options
Diffstat (limited to 'js/src/tests/Intl')
-rw-r--r-- | js/src/tests/Intl/PluralRules/resolvedOptions-overridden-species.js | 27 | ||||
-rw-r--r-- | js/src/tests/Intl/getCanonicalLocales-overridden-species.js | 23 |
2 files changed, 50 insertions, 0 deletions
diff --git a/js/src/tests/Intl/PluralRules/resolvedOptions-overridden-species.js b/js/src/tests/Intl/PluralRules/resolvedOptions-overridden-species.js new file mode 100644 index 000000000..f5f5b62a8 --- /dev/null +++ b/js/src/tests/Intl/PluralRules/resolvedOptions-overridden-species.js @@ -0,0 +1,27 @@ +// |reftest| skip-if(!this.hasOwnProperty("Intl")||!this.hasOwnProperty("addIntlExtras")) + +// Tests the PluralRules.resolvedOptions function for overriden Array[Symbol.species]. + +addIntlExtras(Intl); + +var pl = new Intl.PluralRules("de"); + +Object.defineProperty(Array, Symbol.species, { + value: function() { + return new Proxy(["?"], { + get(t, pk, r) { + return Reflect.get(t, pk, r); + }, + defineProperty(t, pk) { + return true; + } + }); + } +}); + +var pluralCategories = pl.resolvedOptions().pluralCategories; + +assertEqArray(pluralCategories, ["one", "other"]); + +if (typeof reportCompare === "function") + reportCompare(0, 0); diff --git a/js/src/tests/Intl/getCanonicalLocales-overridden-species.js b/js/src/tests/Intl/getCanonicalLocales-overridden-species.js new file mode 100644 index 000000000..858735b58 --- /dev/null +++ b/js/src/tests/Intl/getCanonicalLocales-overridden-species.js @@ -0,0 +1,23 @@ +// |reftest| skip-if(!this.hasOwnProperty("Intl")) + +// Tests the getCanonicalLocales function for overriden Array[Symbol.species]. + +Object.defineProperty(Array, Symbol.species, { + value: function() { + return new Proxy(["?"], { + get(t, pk, r) { + return Reflect.get(t, pk, r); + }, + defineProperty(t, pk) { + return true; + } + }); + } +}); + +var arr = Intl.getCanonicalLocales("de-x-private"); + +assertEqArray(arr, ["de-x-private"]); + +if (typeof reportCompare === "function") + reportCompare(0, 0); |