ladybird/Userland/Libraries/LibJS/Tests
Timothy Flynn ca0d926036 LibJS: Use decimal compact patterns for currency style sub-patterns
When formatting a currency style pattern with compact notation, we were
(trying to) doubly insert the currency symbol into the formatted string.
We would first look up the currency pattern in GetNumberFormatPattern
(for the en locale, this is "¤#,##0.00", which our generator transforms
to "{currency}{number}").

When we hit the "{number}" field, NumberFormat will do a second lookup
for the compact pattern to use for the number being formatted. By using
the currency compact patterns, we receive a second pattern that also has
the currency symbol (for the en locale, if formatting the number 1000,
this is "¤0K", which our generator transforms to
"{currency}{number}{compactIdentifier:0}". This second lookup is not
supposed to have currency symbols (or any other symbols), thus we hit a
VERIFY_NOT_REACHED().

Instead, we are meant to use the decimal compact pattern, and allow the
currency symbol to be handled by only the outer currency pattern.
2023-09-04 18:22:28 +02:00
..
builtins LibJS: Use decimal compact patterns for currency style sub-patterns 2023-09-04 18:22:28 +02:00
classes LibJS: Make sure private identifier is valid in optional chain 2022-11-17 16:05:20 +00:00
functions LibJS: Fix scope detection for ids in default function params 2023-07-08 14:03:12 +02:00
iterators
loops LibJS: Remove bytecode condition from tests expected to fail 2023-08-09 20:47:44 +01:00
modules LibJS: Remove bytecode condition from tests expected to fail 2023-08-09 20:47:44 +01:00
operators LibJS: Mark a test-js test as always passing 2023-08-09 20:47:44 +01:00
syntax LibJS: Implement await properly for async functions 2023-08-10 05:12:07 +02:00
add-values-to-primitive.js
arguments-callee.js
arguments-object.js
automatic-semicolon-insertion.js
break-continue-syntax-errors.js
comments-basic.js
computed-property-sideeffects.js
computed-property-throws.js
const-declaration-missing-initializer.js
const-reassignment.js
custom-@@hasInstance.js
custom-@@toPrimitive.js
custom-@@toStringTag.js
debugger-statement.js
duplicated-variable-declarations.js
empty-statements.js
eval-aliasing.js
eval-basic.js
exception-in-catch-block.js
exception-ReferenceError.js
exponentiation-basic.js
gc-deeply-nested-object-graph.js LibJS: Use a work queue instead of the C++ stack for the GC mark phase 2023-01-10 15:30:07 -05:00
global-var-let-const.js
if-statement-function-declaration.js
indexed-access-prototype-indirection.js
indexed-access-string-object.js
inline-cache-edge-cases.js LibJS/Bytecode: Invalidate inline caches on unique shape mutation 2023-07-11 00:14:50 +02:00
invalid-lhs-in-assignment.js LibJS: Remove bytecode condition from tests expected to fail 2023-08-09 20:47:44 +01:00
labels.js
let-scoping.js
new-expression.js
non-writable-assignment.js
numeric-literals-basic.js
object-basic.js LibJS: Remove bytecode condition from tests expected to fail 2023-08-09 20:47:44 +01:00
object-expression-__proto__.js
object-expression-computed-property.js
object-expression-numeric-property.js
object-getter-setter-shorthand.js
object-method-shorthand.js
object-spread.js LibJS: Avoid ToPropertyKey for spreading in PutByValue(WithThis) 2023-08-29 21:38:54 -04:00
ordinary-to-primitive.js
parseInt.js
parser-declaration-in-single-statement-context.js
parser-line-terminators.js
parser-unary-associativity.js LibJS: Apply the correct precedence for unary + and - operators 2023-08-08 07:41:07 +02:00
permanently-screwed-by-eval.js
program-non-strict.js
program-strict-mode.js
return.js
runtime-error-call-stack-size.js
statement-with-many-labels.js
strict-mode-blocks.js
strict-mode-errors.js LibJS: Remove bytecode condition from tests expected to fail 2023-08-09 20:47:44 +01:00
string-basic.js
string-concatenation.js
string-escapes.js
string-spread.js
switch-basic.js
switch-break.js
switch-default-before-case.js
tagged-template-literals.js LibJS: Remove bytecode condition from tests expected to fail 2023-08-09 20:47:44 +01:00
template-literals.js LibJS: Treat '\\' as an escaped character in template literals 2022-11-15 12:00:36 +00:00
test-common-tests.js LibJS: Test function toBeCloseTo takes an optional precision argument 2023-08-08 13:29:56 +02:00
test-common.js LibJS: Test function toBeCloseTo takes an optional precision argument 2023-08-08 13:29:56 +02:00
this-value-strict.js
this-value.js
throw-basic.js
to-number-basic.js
to-number-exception.js
try-catch-finally-nested.js
try-catch-finally-return.js
try-catch-finally.js
try-finally-break.js LibJS: Add thorough tests for try/finally using continue and break 2022-11-08 21:10:53 +00:00
try-finally-continue.js LibJS: Add thorough tests for try/finally using continue and break 2022-11-08 21:10:53 +00:00
try-return-finally.js LibJS/Bytecode: Keep saved return value in call frame register 2023-07-21 19:15:33 +02:00
unicode-identifier-escape.js
update-expression-on-member-expression.js
update-expressions-basic.js
use-strict-directive.js
using-declaration.js LibJS: Remove bytecode condition from tests expected to fail 2023-08-09 20:47:44 +01:00
using-for-loops.js LibJS: Remove bytecode condition from tests expected to fail 2023-08-09 20:47:44 +01:00
var-multiple-declarator.js
var-scoping.js
variable-undefined.js
with-basic.js