supportedValuesOf-numberingSystem.js (1443B)
1 // |reftest| skip-if(!this.hasOwnProperty("Intl")) 2 3 const numSystems = Intl.supportedValuesOf("numberingSystem"); 4 5 assertEq(new Set(numSystems).size, numSystems.length, "No duplicates are present"); 6 assertEqArray(numSystems, [...numSystems].sort(), "The list is sorted"); 7 8 const typeRE = /^[a-z0-9]{3,8}(-[a-z0-9]{3,8})*$/; 9 for (let numberingSystem of numSystems) { 10 assertEq(typeRE.test(numberingSystem), true, `${numberingSystem} matches the 'type' production`); 11 } 12 13 for (let numberingSystem of numSystems) { 14 assertEq(new Intl.Locale("und", {numberingSystem}).numberingSystem, numberingSystem, 15 `${numberingSystem} is canonicalised`); 16 } 17 18 for (let numberingSystem of numSystems) { 19 let obj = new Intl.DateTimeFormat("en", {numberingSystem}); 20 assertEq(obj.resolvedOptions().numberingSystem, numberingSystem, 21 `${numberingSystem} is supported by DateTimeFormat`); 22 } 23 24 for (let numberingSystem of numSystems) { 25 let obj = new Intl.NumberFormat("en", {numberingSystem}); 26 assertEq(obj.resolvedOptions().numberingSystem, numberingSystem, 27 `${numberingSystem} is supported by NumberFormat`); 28 } 29 30 for (let numberingSystem of numSystems) { 31 let obj = new Intl.RelativeTimeFormat("en", {numberingSystem}); 32 assertEq(obj.resolvedOptions().numberingSystem, numberingSystem, 33 `${numberingSystem} is supported by RelativeTimeFormat`); 34 } 35 36 if (typeof reportCompare === "function") 37 reportCompare(true, true);