1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 02:57:42 +00:00
serenity/Userland/Libraries/LibJS/Runtime/Intl
Timothy Flynn 39e031c4dd LibJS+LibUnicode: Generate all styles of currency localizations
Currently, LibUnicode is only parsing and generating the "long" style of
currency display names. However, the CLDR contains "short" and "narrow"
forms as well that need to be handled. Parse these, and update LibJS to
actually respect the "style" option provided by the user for displaying
currencies with Intl.DisplayNames.

Note: There are some discrepencies between the engines on how style is
handled. In particular, running:

new Intl.DisplayNames('en', {type:'currency', style:'narrow'}).of('usd')

Gives:

  SpiderMoney: "USD"
  V8: "US Dollar"
  LibJS: "$"

And running:

new Intl.DisplayNames('en', {type:'currency', style:'short'}).of('usd')

Gives:

  SpiderMonkey: "$"
  V8: "US Dollar"
  LibJS: "$"

My best guess is V8 isn't handling style, and just returning the long
form (which is what LibJS did before this commit). And SpiderMoney can
handle some styles, but if they don't have a value for the requested
style, they fall back to the canonicalized code passed into of().
2021-11-13 11:52:45 +00:00
..
AbstractOperations.cpp Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
AbstractOperations.h LibJS: Change Intl's PatternPartition record to hold a String value 2021-11-12 09:17:08 +00:00
DisplayNames.cpp LibJS: Use implicit ThrowCompletionOr<T> constructor where possible 2021-10-21 09:02:23 +01:00
DisplayNames.h LibJS: Convert DisplayNames AOs to ThrowCompletionOr 2021-09-18 22:59:15 +03:00
DisplayNamesConstructor.cpp LibJS: Convert Intl.DisplayNames functions to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
DisplayNamesConstructor.h LibJS: Convert Intl.DisplayNames functions to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
DisplayNamesPrototype.cpp LibJS+LibUnicode: Generate all styles of currency localizations 2021-11-13 11:52:45 +00:00
DisplayNamesPrototype.h LibJS: Convert Intl.DisplayNames functions to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
Intl.cpp LibJS: Convert Intl.getCanonicalLocales() function to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
Intl.h LibJS: Convert Intl.getCanonicalLocales() function to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
ListFormat.cpp LibJS: Change Intl's PatternPartition record to hold a String value 2021-11-12 09:17:08 +00:00
ListFormat.h LibJS: Convert ListFormat AOs to ThrowCompletionOr 2021-09-18 22:59:15 +03:00
ListFormatConstructor.cpp LibJS: Convert Intl.ListFormat functions to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
ListFormatConstructor.h LibJS: Convert Intl.ListFormat functions to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
ListFormatPrototype.cpp LibJS: Convert Intl.ListFormat functions to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
ListFormatPrototype.h LibJS: Convert Intl.ListFormat functions to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
Locale.cpp LibJS: Move locale_relevant_extension_keys to Intl.Locale 2021-09-12 12:57:17 +01:00
Locale.h LibJS: Move locale_relevant_extension_keys to Intl.Locale 2021-09-12 12:57:17 +01:00
LocaleConstructor.cpp LibJS: Rename PropertyName to PropertyKey 2021-10-24 17:18:07 +02:00
LocaleConstructor.h LibJS: Convert NativeFunction::{call,construct}() to ThrowCompletionOr 2021-10-21 09:02:23 +01:00
LocalePrototype.cpp LibJS: Convert Intl.Locale functions to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
LocalePrototype.h LibJS: Convert Intl.Locale functions to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
NumberFormat.cpp LibJS: Begin implementing Intl.NumberFormat.prototype.format 2021-11-12 09:17:08 +00:00
NumberFormat.h LibJS: Begin implementing Intl.NumberFormat.prototype.format 2021-11-12 09:17:08 +00:00
NumberFormatConstructor.cpp LibJS: Convert Intl.NumberFormat functions to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
NumberFormatConstructor.h LibJS: Convert Intl.NumberFormat functions to ThrowCompletionOr 2021-10-22 23:20:18 +01:00
NumberFormatFunction.cpp LibJS: Begin implementing Intl.NumberFormat.prototype.format 2021-11-12 09:17:08 +00:00
NumberFormatFunction.h LibJS: Begin implementing Intl.NumberFormat.prototype.format 2021-11-12 09:17:08 +00:00
NumberFormatPrototype.cpp LibJS: Begin implementing Intl.NumberFormat.prototype.format 2021-11-12 09:17:08 +00:00
NumberFormatPrototype.h LibJS: Begin implementing Intl.NumberFormat.prototype.format 2021-11-12 09:17:08 +00:00