Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement prototype of NumberFormat #3669

Merged
merged 4 commits into from Feb 12, 2024
Merged

Implement prototype of NumberFormat #3669

merged 4 commits into from Feb 12, 2024

Conversation

jedel1043
Copy link
Member

@jedel1043 jedel1043 commented Feb 9, 2024

Implements the basics of NumberFormat, which includes all the digit formatting options (separators, numbering systems, significant digits/fractional digits, etc.).

ICU4X is still working on offering support for units, different notations, and formatToParts, but this prototype is enough to give correct results for things like:

new Intl.NumberFormat("bn", {
    useGrouping: "min2",
    minimumSignificantDigits: 3,
    maximumSignificantDigits: 7
}).format(10003.1234) // outputs "১০,০০৩.১২"

which is pretty nice.

@jedel1043 jedel1043 added enhancement New feature or request builtins PRs and Issues related to builtins/intrinsics labels Feb 9, 2024
@jedel1043 jedel1043 added this to the v0.18.0 milestone Feb 9, 2024
@jedel1043 jedel1043 requested a review from a team February 9, 2024 23:45
Copy link

github-actions bot commented Feb 10, 2024

Test262 conformance changes

Test result main count PR count difference
Total 96,422 96,544 +122
Passed 80,991 81,283 +292
Ignored 3,567 3,039 -528
Failed 11,864 12,222 +358
Panics 0 0 0
Conformance 84.00% 84.19% +0.20%
Fixed tests (290):
test/intl402/language-tags-valid.js [strict mode] (previously Failed)
test/intl402/language-tags-valid.js (previously Failed)
test/intl402/NumberFormat/constructor-compactDisplay-no-compact.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-compactDisplay-no-compact.js (previously Ignored)
test/intl402/NumberFormat/constructor-default-value.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-default-value.js (previously Ignored)
test/intl402/NumberFormat/default-options-object-prototype.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/default-options-object-prototype.js (previously Ignored)
test/intl402/NumberFormat/constructor-locales-hasproperty.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-locales-hasproperty.js (previously Ignored)
test/intl402/NumberFormat/constructor-no-instanceof.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-no-instanceof.js (previously Ignored)
test/intl402/NumberFormat/constructor-unit.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-unit.js (previously Ignored)
test/intl402/NumberFormat/test-option-useGrouping-extended.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/test-option-useGrouping-extended.js (previously Ignored)
test/intl402/NumberFormat/constructor-locales-get-tostring.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-locales-get-tostring.js (previously Ignored)
test/intl402/NumberFormat/constructor-options-throwing-getters-trailing-zero-display.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-options-throwing-getters-trailing-zero-display.js (previously Ignored)
test/intl402/NumberFormat/builtin.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/builtin.js (previously Ignored)
test/intl402/NumberFormat/constructor-trailingZeroDisplay-invalid.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-trailingZeroDisplay-invalid.js (previously Ignored)
test/intl402/NumberFormat/significant-digits-options-get-sequence.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/significant-digits-options-get-sequence.js (previously Ignored)
test/intl402/NumberFormat/throws-for-minimumFractionDigits-over-limit.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/throws-for-minimumFractionDigits-over-limit.js (previously Ignored)
test/intl402/NumberFormat/name.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/name.js (previously Ignored)
test/intl402/NumberFormat/this-value-ignored.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/this-value-ignored.js (previously Ignored)
test/intl402/NumberFormat/constructor-roundingIncrement-invalid.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-roundingIncrement-invalid.js (previously Ignored)
test/intl402/NumberFormat/constructor-options-throwing-getters-rounding-mode.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-options-throwing-getters-rounding-mode.js (previously Ignored)
test/intl402/NumberFormat/constructor-locales-toobject.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-locales-toobject.js (previously Ignored)
test/intl402/NumberFormat/default-minimum-singificant-digits.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/default-minimum-singificant-digits.js (previously Ignored)
test/intl402/NumberFormat/constructor-signDisplay.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-signDisplay.js (previously Ignored)
test/intl402/NumberFormat/casing-numbering-system-options.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/casing-numbering-system-options.js (previously Ignored)
test/intl402/NumberFormat/test-option-useGrouping.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/test-option-useGrouping.js (previously Ignored)
test/intl402/NumberFormat/constructor-locales-arraylike.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-locales-arraylike.js (previously Ignored)
test/intl402/NumberFormat/constructor-options-toobject.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-options-toobject.js (previously Ignored)
test/intl402/NumberFormat/constructor-options-numberingSystem-invalid.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-options-numberingSystem-invalid.js (previously Ignored)
test/intl402/NumberFormat/constructor-compactDisplay-compact.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-compactDisplay-compact.js (previously Ignored)
test/intl402/NumberFormat/prop-desc.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prop-desc.js (previously Ignored)
test/intl402/NumberFormat/constructor-options-throwing-getters-rounding-priority.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-options-throwing-getters-rounding-priority.js (previously Ignored)
test/intl402/NumberFormat/constructor-trailingZeroDisplay.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-trailingZeroDisplay.js (previously Ignored)
test/intl402/NumberFormat/constructor-order.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-order.js (previously Ignored)
test/intl402/NumberFormat/throws-for-currency-style-without-currency-option.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/throws-for-currency-style-without-currency-option.js (previously Ignored)
test/intl402/NumberFormat/throws-for-minimumFractionDigits-under-limit.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/throws-for-minimumFractionDigits-under-limit.js (previously Ignored)
test/intl402/NumberFormat/test-option-localeMatcher.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/test-option-localeMatcher.js (previously Ignored)
test/intl402/NumberFormat/currency-code-invalid.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/currency-code-invalid.js (previously Ignored)
test/intl402/NumberFormat/throws-for-maximumFractionDigits-under-limit.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/throws-for-maximumFractionDigits-under-limit.js (previously Ignored)
test/intl402/NumberFormat/constructor-locales-string.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-locales-string.js (previously Ignored)
test/intl402/NumberFormat/constructor-numberingSystem-order.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-numberingSystem-order.js (previously Ignored)
test/intl402/NumberFormat/numbering-system-options.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/numbering-system-options.js (previously Ignored)
test/intl402/NumberFormat/constructor-options-throwing-getters.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-options-throwing-getters.js (previously Ignored)
test/intl402/NumberFormat/constructor-options-throwing-getters-rounding-increment.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-options-throwing-getters-rounding-increment.js (previously Ignored)
test/intl402/NumberFormat/test-option-roundingPriority.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/test-option-roundingPriority.js (previously Ignored)
test/intl402/NumberFormat/ignore-invalid-unicode-ext-values.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/ignore-invalid-unicode-ext-values.js (previously Ignored)
test/intl402/NumberFormat/constructor-signDisplay-negative.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-signDisplay-negative.js (previously Ignored)
test/intl402/NumberFormat/fraction-digit-options-read-once.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/fraction-digit-options-read-once.js (previously Ignored)
test/intl402/NumberFormat/instance-proto-and-extensible.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/instance-proto-and-extensible.js (previously Ignored)
test/intl402/NumberFormat/constructor-notation.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-notation.js (previously Ignored)
test/intl402/NumberFormat/taint-Object-prototype.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/taint-Object-prototype.js (previously Ignored)
test/intl402/NumberFormat/proto-from-ctor-realm.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/proto-from-ctor-realm.js (previously Ignored)
test/intl402/NumberFormat/length.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/length.js (previously Ignored)
test/intl402/NumberFormat/constructor-unitDisplay.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-unitDisplay.js (previously Ignored)
test/intl402/NumberFormat/throws-for-maximumFractionDigits-over-limit.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/throws-for-maximumFractionDigits-over-limit.js (previously Ignored)
test/intl402/NumberFormat/intl-legacy-constructed-symbol-on-unwrap.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/intl-legacy-constructed-symbol-on-unwrap.js (previously Ignored)
test/intl402/NumberFormat/style-unit.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/style-unit.js (previously Ignored)
test/intl402/NumberFormat/test-option-roundingPriority-mixed-options.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/test-option-roundingPriority-mixed-options.js (previously Ignored)
test/intl402/NumberFormat/constructor-options-roundingMode-invalid.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/constructor-options-roundingMode-invalid.js (previously Ignored)
test/intl402/NumberFormat/intl-legacy-constructed-symbol.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/intl-legacy-constructed-symbol.js (previously Ignored)
test/intl402/NumberFormat/supportedLocalesOf/builtin.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/supportedLocalesOf/builtin.js (previously Ignored)
test/intl402/NumberFormat/supportedLocalesOf/name.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/supportedLocalesOf/name.js (previously Ignored)
test/intl402/NumberFormat/supportedLocalesOf/basic.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/supportedLocalesOf/basic.js (previously Ignored)
test/intl402/NumberFormat/supportedLocalesOf/prop-desc.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/supportedLocalesOf/prop-desc.js (previously Ignored)
test/intl402/NumberFormat/supportedLocalesOf/taint-Object-prototype.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/supportedLocalesOf/taint-Object-prototype.js (previously Ignored)
test/intl402/NumberFormat/supportedLocalesOf/length.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/supportedLocalesOf/length.js (previously Ignored)
test/intl402/NumberFormat/prototype/builtin.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/builtin.js (previously Ignored)
test/intl402/NumberFormat/prototype/prop-desc.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/prop-desc.js (previously Ignored)
test/intl402/NumberFormat/prototype/this-value-numberformat-prototype.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/this-value-numberformat-prototype.js (previously Ignored)
test/intl402/NumberFormat/prototype/toStringTag/configurable.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/toStringTag/configurable.js (previously Ignored)
test/intl402/NumberFormat/prototype/toStringTag/prop-desc.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/toStringTag/prop-desc.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-significant-digits.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-significant-digits.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-priority-more-precision.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-priority-more-precision.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-25.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-25.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-10.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-10.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/this-value-not-numberformat.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/this-value-not-numberformat.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-100.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-100.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/builtin.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/builtin.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-2000.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-2000.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-priority-less-precision.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-priority-less-precision.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-2.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-2.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-ceil.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-ceil.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-function-property-order.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-function-property-order.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-1000.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-1000.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/name.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/name.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/signDisplay-rounding.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/signDisplay-rounding.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-negative-numbers.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-negative-numbers.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-200.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-200.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-500.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-500.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-priority-auto.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-priority-auto.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/useGrouping-extended-de-DE.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/useGrouping-extended-de-DE.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-250.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-250.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/useGrouping-en-US.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/useGrouping-en-US.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/prop-desc.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/prop-desc.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-expand.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-expand.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-function-name.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-function-name.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-function-builtin.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-function-builtin.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-2500.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-2500.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/useGrouping-de-DE.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/useGrouping-de-DE.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-even.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-even.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-fraction-digits.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-fraction-digits.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-20.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-20.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-trunc.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-trunc.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-floor.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-floor.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-5000.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-5000.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-1.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-1.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/useGrouping-en-IN.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/useGrouping-en-IN.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-significant-digits-precision.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-significant-digits-precision.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-trunc.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-trunc.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-floor.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-floor.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/length.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/length.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-ceil.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-ceil.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-fraction-digits-precision.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-fraction-digits-precision.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/units-invalid.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/units-invalid.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/value-decimal-string.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/value-decimal-string.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-max-min-fraction-significant-digits.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-max-min-fraction-significant-digits.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/no-instanceof.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/no-instanceof.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-50.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-50.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-5.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-increment-5.js (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-expand.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-expand.js (previously Ignored)
test/intl402/NumberFormat/prototype/constructor/prop-desc.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/constructor/prop-desc.js (previously Ignored)
test/intl402/NumberFormat/prototype/constructor/value.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/constructor/value.js (previously Ignored)
test/intl402/NumberFormat/prototype/formatRangeToParts/undefined-arguments-throws.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/formatRangeToParts/undefined-arguments-throws.js (previously Ignored)
test/intl402/NumberFormat/prototype/formatRangeToParts/argument-to-Intlmathematicalvalue-throws.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/formatRangeToParts/argument-to-Intlmathematicalvalue-throws.js (previously Ignored)
test/intl402/NumberFormat/prototype/formatToParts/this-value-not-numberformat.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/formatToParts/this-value-not-numberformat.js (previously Ignored)
test/intl402/NumberFormat/prototype/formatRange/undefined-arguments-throws.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/formatRange/undefined-arguments-throws.js (previously Ignored)
test/intl402/NumberFormat/prototype/formatRange/argument-to-Intlmathematicalvalue-throws.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/formatRange/argument-to-Intlmathematicalvalue-throws.js (previously Ignored)
test/intl402/NumberFormat/prototype/resolvedOptions/this-value-not-numberformat.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/resolvedOptions/this-value-not-numberformat.js (previously Ignored)
test/intl402/NumberFormat/prototype/resolvedOptions/builtin.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/resolvedOptions/builtin.js (previously Ignored)
test/intl402/NumberFormat/prototype/resolvedOptions/name.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/resolvedOptions/name.js (previously Ignored)
test/intl402/NumberFormat/prototype/resolvedOptions/prop-desc.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/resolvedOptions/prop-desc.js (previously Ignored)
test/intl402/NumberFormat/prototype/resolvedOptions/compactDisplay.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/resolvedOptions/compactDisplay.js (previously Ignored)
test/intl402/NumberFormat/prototype/resolvedOptions/length.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/resolvedOptions/length.js (previously Ignored)
test/intl402/NumberFormat/prototype/resolvedOptions/no-instanceof.js [strict mode] (previously Ignored)
test/intl402/NumberFormat/prototype/resolvedOptions/no-instanceof.js (previously Ignored)
test/intl402/Collator/this-value-ignored.js [strict mode] (previously Failed)
test/intl402/Collator/this-value-ignored.js (previously Failed)
test/intl402/Number/prototype/toLocaleString/default-options-object-prototype.js [strict mode] (previously Failed)
test/intl402/Number/prototype/toLocaleString/default-options-object-prototype.js (previously Failed)
test/intl402/PluralRules/undefined-newtarget-throws.js [strict mode] (previously Failed)
test/intl402/PluralRules/undefined-newtarget-throws.js (previously Failed)
test/intl402/PluralRules/prototype/selectRange/name.js [strict mode] (previously Ignored)
test/intl402/PluralRules/prototype/selectRange/name.js (previously Ignored)
test/intl402/PluralRules/prototype/selectRange/undefined-arguments-throws.js [strict mode] (previously Ignored)
test/intl402/PluralRules/prototype/selectRange/undefined-arguments-throws.js (previously Ignored)
test/intl402/PluralRules/prototype/selectRange/prop-desc.js [strict mode] (previously Ignored)
test/intl402/PluralRules/prototype/selectRange/prop-desc.js (previously Ignored)
test/intl402/PluralRules/prototype/selectRange/invoked-as-func.js [strict mode] (previously Ignored)
test/intl402/PluralRules/prototype/selectRange/invoked-as-func.js (previously Ignored)
test/intl402/PluralRules/prototype/selectRange/argument-tonumber-throws.js [strict mode] (previously Ignored)
test/intl402/PluralRules/prototype/selectRange/argument-tonumber-throws.js (previously Ignored)
test/intl402/PluralRules/prototype/selectRange/default-en-us.js [strict mode] (previously Ignored)
test/intl402/PluralRules/prototype/selectRange/default-en-us.js (previously Ignored)
test/intl402/PluralRules/prototype/selectRange/length.js [strict mode] (previously Ignored)
test/intl402/PluralRules/prototype/selectRange/length.js (previously Ignored)
test/intl402/PluralRules/prototype/selectRange/x-greater-than-y-not-throws.js [strict mode] (previously Ignored)
test/intl402/PluralRules/prototype/selectRange/x-greater-than-y-not-throws.js (previously Ignored)
test/intl402/DateTimeFormat/this-value-ignored.js [strict mode] (previously Failed)
test/intl402/DateTimeFormat/this-value-ignored.js (previously Failed)
test/intl402/DateTimeFormat/intl-legacy-constructed-symbol-on-unwrap.js [strict mode] (previously Ignored)
test/intl402/DateTimeFormat/intl-legacy-constructed-symbol-on-unwrap.js (previously Ignored)
test/intl402/DateTimeFormat/intl-legacy-constructed-symbol.js [strict mode] (previously Ignored)
test/intl402/DateTimeFormat/intl-legacy-constructed-symbol.js (previously Ignored)

Copy link
Member

@nekevss nekevss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me! I did have a couple comments. Mostly nits and questions/thoughts. None of it is blocking though 😄

core/engine/src/context/intrinsics.rs Show resolved Hide resolved
core/engine/src/builtins/intl/number_format/mod.rs Outdated Show resolved Hide resolved
core/engine/src/builtins/intl/number_format/options.rs Outdated Show resolved Hide resolved
@nekevss nekevss requested a review from a team February 11, 2024 19:30
Copy link
Member

@raskad raskad left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great stuff. I have nothing to add.

Copy link
Member

@HalidOdat HalidOdat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work! :)

@HalidOdat HalidOdat added this pull request to the merge queue Feb 12, 2024
Merged via the queue into main with commit cf613c9 Feb 12, 2024
13 checks passed
@raskad raskad deleted the intl-number-fmt branch February 18, 2024 01:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
builtins PRs and Issues related to builtins/intrinsics enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants