LibJS: Set both {minimum, maximum}FractionDigits in Intl.DurationFormat

This is a normative change in the Intl.DurationFormat spec.

See: https://github.com/tc39/proposal-intl-duration-format/commit/b293603e
This commit is contained in:
Idan Horowitz 2022-07-02 15:58:34 +03:00
parent fb8c4a724e
commit 1ebc5af2f0
3 changed files with 8 additions and 5 deletions

View file

@ -378,7 +378,10 @@ ThrowCompletionOr<Vector<PatternPartition>> partition_duration_format_pattern(Gl
// iii. Perform ! CreateDataPropertyOrThrow(nfOpts, "maximumFractionDigits", durationFormat.[[FractionalDigits]]).
MUST(number_format_options->create_data_property_or_throw(vm.names.maximumFractionDigits, duration_format.has_fractional_digits() ? Value(duration_format.fractional_digits()) : js_undefined()));
// iv. Set done to true.
// iv. Perform ! CreateDataPropertyOrThrow(nfOpts, "minimumFractionDigits", durationFormat.[[FractionalDigits]]).
MUST(number_format_options->create_data_property_or_throw(vm.names.minimumFractionDigits, duration_format.has_fractional_digits() ? Value(duration_format.fractional_digits()) : js_undefined()));
// v. Set done to true.
done = true;
}
// l. Else,

View file

@ -38,7 +38,7 @@ describe("correct behavior", () => {
new Intl.DurationFormat("en", {
style: "narrow",
nanoseconds: "numeric",
fractionalDigits: 7,
fractionalDigits: 3,
}).format(duration)
).toBe("1y, 2m, 3w, 3d, 4h, 5m, 6s, 7ms, and 8.009μs");
@ -58,7 +58,7 @@ describe("correct behavior", () => {
new Intl.DurationFormat("de", {
style: "narrow",
nanoseconds: "numeric",
fractionalDigits: 7,
fractionalDigits: 3,
}).format(duration)
).toBe("1 J, 2 M, 3 W, 3 T, 4 Std., 5 Min., 6 Sek., 7 ms und 8,009 μs");
});

View file

@ -138,7 +138,7 @@ describe("correct behavior", () => {
new Intl.DurationFormat("en", {
style: "narrow",
nanoseconds: "numeric",
fractionalDigits: 7,
fractionalDigits: 3,
}).formatToParts(duration)
).toEqual([
{ type: "element", value: "1y" },
@ -240,7 +240,7 @@ describe("correct behavior", () => {
new Intl.DurationFormat("de", {
style: "narrow",
nanoseconds: "numeric",
fractionalDigits: 7,
fractionalDigits: 3,
}).formatToParts(duration)
).toEqual([
{ type: "element", value: "1 J" },