1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 03:37:34 +00:00
serenity/Userland/Libraries/LibJS
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
..
Bytecode LibJS+LibTest+js: Convert BC::Interpreter::run to ThrowCompletionOr<> 2021-11-12 13:01:59 +00:00
Heap LibJS: Prune WeakContainers before freeing HeapBlocks 2021-10-08 19:47:25 +02:00
Runtime LibJS+LibUnicode: Generate all styles of currency localizations 2021-11-13 11:52:45 +00:00
Tests LibJS+LibUnicode: Generate all styles of currency localizations 2021-11-13 11:52:45 +00:00
AST.cpp LibJS: Add support for await expressions 2021-11-10 08:48:27 +00:00
AST.h LibJS: Implement async functions as generator functions in BC mode 2021-11-12 13:01:59 +00:00
CMakeLists.txt LibJS: Implement async functions as generator functions in BC mode 2021-11-12 13:01:59 +00:00
Console.cpp LibJS: Rename CallFrame => ExecutionContext 2021-06-24 19:28:00 +02:00
Console.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Forward.h LibJS: Add support for async functions 2021-11-10 08:48:27 +00:00
Interpreter.cpp LibJS: Pop execution context after running queued jobs in run() 2021-10-09 14:29:20 +01:00
Interpreter.h LibJS: Make scoping follow the spec 2021-09-30 08:16:32 +01:00
Lexer.cpp LibJS: Add support for async functions 2021-11-10 08:48:27 +00:00
Lexer.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
MarkupGenerator.cpp Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
MarkupGenerator.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
Module.cpp LibJS: Add a barebones Module class 2021-09-14 21:41:51 +02:00
Module.h LibJS: Add a barebones Module class 2021-09-14 21:41:51 +02:00
Parser.cpp Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
Parser.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
Script.cpp LibJS+LibWeb: Move script parse time logging from JS::Script to LibWeb 2021-09-14 21:41:51 +02:00
Script.h LibJS+LibWeb: Let JS::Script::parse() return a list of errors (on error) 2021-09-14 21:41:51 +02:00
SourceRange.h LibJS: Add missing headers 2021-10-06 23:52:40 +01:00
SourceTextModule.cpp LibJS: Add a barebones SourceTextModule class 2021-09-14 21:41:51 +02:00
SourceTextModule.h LibJS: Add a barebones SourceTextModule class 2021-09-14 21:41:51 +02:00
SyntaxHighlighter.cpp LibJS: Remove unused header includes 2021-08-01 08:10:16 +02:00
SyntaxHighlighter.h LibWeb+LibSyntax: Implement nested syntax highlighters 2021-06-07 14:45:49 +04:30
Token.cpp LibJS: Add support for async functions 2021-11-10 08:48:27 +00:00
Token.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00