diff --git a/src/lib/es2022.intl.d.ts b/src/lib/es2022.intl.d.ts index 0672ec4d2d4d4..987b621559777 100644 --- a/src/lib/es2022.intl.d.ts +++ b/src/lib/es2022.intl.d.ts @@ -88,4 +88,13 @@ declare namespace Intl { */ supportedLocalesOf(locales: BCP47LanguageTag | BCP47LanguageTag[], options?: Pick): BCP47LanguageTag[]; }; + + /** + * Returns a sorted array of the supported collation, calendar, currency, numbering system, timezones, and units by the implementation. + * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/supportedValuesOf) + * + * @param key A string indicating the category of values to return. + * @returns A sorted array of the supported values. + */ + function supportedValuesOf(key: "calendar" | "collation" | "currency" | "numberingSystem" | "timeZone" | "unit"): string[]; } diff --git a/tests/baselines/reference/es2022IntlAPIs.js b/tests/baselines/reference/es2022IntlAPIs.js index 8611c0bf51524..32901521ed89b 100644 --- a/tests/baselines/reference/es2022IntlAPIs.js +++ b/tests/baselines/reference/es2022IntlAPIs.js @@ -7,6 +7,11 @@ for (const zoneName of timezoneNames) { timeZoneName: zoneName, }); } + +const enumerationKeys = ['calendar', 'collation', 'currency', 'numberingSystem', 'timeZone', 'unit'] as const; +for (const key of enumerationKeys) { + var supported = Intl.supportedValuesOf(key); +} //// [es2022IntlAPIs.js] @@ -18,3 +23,7 @@ for (const zoneName of timezoneNames) { timeZoneName: zoneName, }); } +const enumerationKeys = ['calendar', 'collation', 'currency', 'numberingSystem', 'timeZone', 'unit']; +for (const key of enumerationKeys) { + var supported = Intl.supportedValuesOf(key); +} diff --git a/tests/baselines/reference/es2022IntlAPIs.symbols b/tests/baselines/reference/es2022IntlAPIs.symbols index 60942707e9883..33bec6369ec64 100644 --- a/tests/baselines/reference/es2022IntlAPIs.symbols +++ b/tests/baselines/reference/es2022IntlAPIs.symbols @@ -24,3 +24,19 @@ for (const zoneName of timezoneNames) { }); } +const enumerationKeys = ['calendar', 'collation', 'currency', 'numberingSystem', 'timeZone', 'unit'] as const; +>enumerationKeys : Symbol(enumerationKeys, Decl(es2022IntlAPIs.ts, 9, 5)) +>const : Symbol(const) + +for (const key of enumerationKeys) { +>key : Symbol(key, Decl(es2022IntlAPIs.ts, 10, 10)) +>enumerationKeys : Symbol(enumerationKeys, Decl(es2022IntlAPIs.ts, 9, 5)) + + var supported = Intl.supportedValuesOf(key); +>supported : Symbol(supported, Decl(es2022IntlAPIs.ts, 11, 5)) +>Intl.supportedValuesOf : Symbol(Intl.supportedValuesOf, Decl(lib.es2022.intl.d.ts, --, --)) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2019.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --) ... and 3 more) +>supportedValuesOf : Symbol(Intl.supportedValuesOf, Decl(lib.es2022.intl.d.ts, --, --)) +>key : Symbol(key, Decl(es2022IntlAPIs.ts, 10, 10)) +} + diff --git a/tests/baselines/reference/es2022IntlAPIs.types b/tests/baselines/reference/es2022IntlAPIs.types index d6a0ac5049eec..1915c84bd628d 100644 --- a/tests/baselines/reference/es2022IntlAPIs.types +++ b/tests/baselines/reference/es2022IntlAPIs.types @@ -35,3 +35,27 @@ for (const zoneName of timezoneNames) { }); } +const enumerationKeys = ['calendar', 'collation', 'currency', 'numberingSystem', 'timeZone', 'unit'] as const; +>enumerationKeys : readonly ["calendar", "collation", "currency", "numberingSystem", "timeZone", "unit"] +>['calendar', 'collation', 'currency', 'numberingSystem', 'timeZone', 'unit'] as const : readonly ["calendar", "collation", "currency", "numberingSystem", "timeZone", "unit"] +>['calendar', 'collation', 'currency', 'numberingSystem', 'timeZone', 'unit'] : readonly ["calendar", "collation", "currency", "numberingSystem", "timeZone", "unit"] +>'calendar' : "calendar" +>'collation' : "collation" +>'currency' : "currency" +>'numberingSystem' : "numberingSystem" +>'timeZone' : "timeZone" +>'unit' : "unit" + +for (const key of enumerationKeys) { +>key : "calendar" | "collation" | "currency" | "numberingSystem" | "timeZone" | "unit" +>enumerationKeys : readonly ["calendar", "collation", "currency", "numberingSystem", "timeZone", "unit"] + + var supported = Intl.supportedValuesOf(key); +>supported : string[] +>Intl.supportedValuesOf(key) : string[] +>Intl.supportedValuesOf : (key: "calendar" | "collation" | "currency" | "numberingSystem" | "timeZone" | "unit") => string[] +>Intl : typeof Intl +>supportedValuesOf : (key: "calendar" | "collation" | "currency" | "numberingSystem" | "timeZone" | "unit") => string[] +>key : "calendar" | "collation" | "currency" | "numberingSystem" | "timeZone" | "unit" +} + diff --git a/tests/cases/conformance/es2022/es2022IntlAPIs.ts b/tests/cases/conformance/es2022/es2022IntlAPIs.ts index f297e842b1a11..19d3160e71702 100644 --- a/tests/cases/conformance/es2022/es2022IntlAPIs.ts +++ b/tests/cases/conformance/es2022/es2022IntlAPIs.ts @@ -8,3 +8,8 @@ for (const zoneName of timezoneNames) { timeZoneName: zoneName, }); } + +const enumerationKeys = ['calendar', 'collation', 'currency', 'numberingSystem', 'timeZone', 'unit'] as const; +for (const key of enumerationKeys) { + var supported = Intl.supportedValuesOf(key); +}