LibJS: Extend Intl.DisplayNames.of to support currency tags

This commit is contained in:
Timothy Flynn 2021-08-26 08:39:20 -04:00 committed by Linus Groh
parent 8b93d51212
commit 86b99fd9a6
Notes: sideshowbarker 2024-07-18 05:13:36 +09:00
2 changed files with 16 additions and 0 deletions

View File

@ -86,6 +86,7 @@ JS_DEFINE_NATIVE_FUNCTION(DisplayNamesPrototype::of)
result = Unicode::get_locale_script_mapping(display_names->locale(), code.as_string().string());
break;
case DisplayNames::Type::Currency:
result = Unicode::get_locale_currency_mapping(display_names->locale(), code.as_string().string());
break;
default:
VERIFY_NOT_REACHED();

View File

@ -73,4 +73,19 @@ describe("correct behavior", () => {
expect(es419.of("Aaaa")).toBe("Aaaa");
expect(zhHant.of("Aaaa")).toBe("Aaaa");
});
test("option type currency", () => {
const en = new Intl.DisplayNames("en", { type: "currency" });
expect(en.of("USD")).toBe("US Dollar");
const es419 = new Intl.DisplayNames("es-419", { type: "currency" });
expect(es419.of("USD")).toBe("dólar estadounidense");
const zhHant = new Intl.DisplayNames(["zh-Hant"], { type: "currency" });
expect(zhHant.of("USD")).toBe("美元");
expect(en.of("AAA")).toBe("AAA");
expect(es419.of("AAA")).toBe("AAA");
expect(zhHant.of("AAA")).toBe("AAA");
});
});