1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 11:38:11 +00:00
serenity/Userland/Libraries/LibJS
Timothy Flynn c65dea64bd LibJS+LibUnicode: Don't remove {currency} keys in GetNumberFormatPattern
In order to implement Intl.NumberFormat.prototype.formatToParts, do not
replace {currency} keys in the format pattern before ECMA-402 tells us
to. Otherwise, the array return by formatToParts will not contain the
expected currency key.

Early replacement was done to avoid resolving the currency display more
than once, as it involves a couple of round trips to search through
LibUnicode data. So this adds a non-standard method to NumberFormat to
do this resolution and cache the result.

Another side effect of this change is that LibUnicode must replace unit
format patterns of the form "{0} {1}" during code generation. These were
previously skipped during code generation because LibJS would just
replace the keys with the currency display at runtime. But now that the
currency display injection is delayed, any {0} or {1} keys in the format
pattern will cause PartitionNumberPattern to abort.
2021-11-13 19:01:25 +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: Don't remove {currency} keys in GetNumberFormatPattern 2021-11-13 19:01:25 +00:00
Tests LibJS: Implement Temporal.Duration.prototype.total() 2021-11-13 18:50:54 +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