summaryrefslogtreecommitdiff
path: root/Userland/Libraries
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Libraries')
-rw-r--r--Userland/Libraries/LibJS/Runtime/Intl/DisplayNamesPrototype.cpp1
-rw-r--r--Userland/Libraries/LibJS/Tests/builtins/Intl/DisplayNames/DisplayNames.prototype.of.js15
2 files changed, 16 insertions, 0 deletions
diff --git a/Userland/Libraries/LibJS/Runtime/Intl/DisplayNamesPrototype.cpp b/Userland/Libraries/LibJS/Runtime/Intl/DisplayNamesPrototype.cpp
index 397dcd41cb..3e067c17d1 100644
--- a/Userland/Libraries/LibJS/Runtime/Intl/DisplayNamesPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Intl/DisplayNamesPrototype.cpp
@@ -77,6 +77,7 @@ JS_DEFINE_NATIVE_FUNCTION(DisplayNamesPrototype::of)
switch (display_names->type()) {
case DisplayNames::Type::Language:
+ result = Unicode::get_locale_language_mapping(display_names->locale(), code.as_string().string());
break;
case DisplayNames::Type::Region:
result = Unicode::get_locale_territory_mapping(display_names->locale(), code.as_string().string());
diff --git a/Userland/Libraries/LibJS/Tests/builtins/Intl/DisplayNames/DisplayNames.prototype.of.js b/Userland/Libraries/LibJS/Tests/builtins/Intl/DisplayNames/DisplayNames.prototype.of.js
index de19b5a725..314ec0599c 100644
--- a/Userland/Libraries/LibJS/Tests/builtins/Intl/DisplayNames/DisplayNames.prototype.of.js
+++ b/Userland/Libraries/LibJS/Tests/builtins/Intl/DisplayNames/DisplayNames.prototype.of.js
@@ -29,6 +29,21 @@ describe("correct behavior", () => {
expect(Intl.DisplayNames.prototype.of).toHaveLength(1);
});
+ test("option type language", () => {
+ const en = new Intl.DisplayNames("en", { type: "language" });
+ expect(en.of("en")).toBe("English");
+
+ const es419 = new Intl.DisplayNames("es-419", { type: "language" });
+ expect(es419.of("en")).toBe("inglés");
+
+ const zhHant = new Intl.DisplayNames(["zh-Hant"], { type: "language" });
+ expect(zhHant.of("en")).toBe("英文");
+
+ expect(en.of("zz")).toBe("zz");
+ expect(es419.of("zz")).toBe("zz");
+ expect(zhHant.of("zz")).toBe("zz");
+ });
+
test("option type region", () => {
const en = new Intl.DisplayNames("en", { type: "region" });
expect(en.of("US")).toBe("United States");