1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-23 18:27:40 +00:00

LibJS: Use numeric style if the previous style was numeric or 2-digit

This is a normative change in the Intl.DurationFormat proposal. See:
3a46ee3
This commit is contained in:
Timothy Flynn 2022-08-30 11:42:02 -04:00 committed by Tim Flynn
parent cab1cce522
commit 127b28c940
2 changed files with 33 additions and 1 deletions

View file

@ -252,7 +252,12 @@ ThrowCompletionOr<DurationUnitOptions> get_duration_unit_options(VM& vm, String
// i. Set style to digitalBase. // i. Set style to digitalBase.
style = digital_base; style = digital_base;
} }
// c. Else, // c. Else if prevStyle is "numeric" or "2-digit", then
else if (previous_style == "numeric"sv || previous_style == "2-digit"sv) {
// i. Set style to "numeric".
style = "numeric"sv;
}
// d. Else,
else { else {
// i. Set style to baseStyle. // i. Set style to baseStyle.
style = base_style; style = base_style;

View file

@ -266,6 +266,10 @@ describe("normal behavior", () => {
}).not.toThrow(); }).not.toThrow();
}); });
["numeric", "2-digit"].forEach(seconds => { ["numeric", "2-digit"].forEach(seconds => {
expect(() => {
new Intl.DurationFormat("en", { hours: seconds });
}).not.toThrow();
expect(() => { expect(() => {
new Intl.DurationFormat("en", { style: "digital", hours: seconds }); new Intl.DurationFormat("en", { style: "digital", hours: seconds });
}).not.toThrow(); }).not.toThrow();
@ -287,6 +291,10 @@ describe("normal behavior", () => {
}).not.toThrow(); }).not.toThrow();
}); });
["numeric", "2-digit"].forEach(seconds => { ["numeric", "2-digit"].forEach(seconds => {
expect(() => {
new Intl.DurationFormat("en", { minutes: seconds });
}).not.toThrow();
expect(() => { expect(() => {
new Intl.DurationFormat("en", { style: "digital", minutes: seconds }); new Intl.DurationFormat("en", { style: "digital", minutes: seconds });
}).not.toThrow(); }).not.toThrow();
@ -308,6 +316,10 @@ describe("normal behavior", () => {
}).not.toThrow(); }).not.toThrow();
}); });
["numeric", "2-digit"].forEach(seconds => { ["numeric", "2-digit"].forEach(seconds => {
expect(() => {
new Intl.DurationFormat("en", { seconds: seconds });
}).not.toThrow();
expect(() => { expect(() => {
new Intl.DurationFormat("en", { style: "digital", seconds: seconds }); new Intl.DurationFormat("en", { style: "digital", seconds: seconds });
}).not.toThrow(); }).not.toThrow();
@ -328,6 +340,11 @@ describe("normal behavior", () => {
new Intl.DurationFormat("en", { milliseconds: milliseconds }); new Intl.DurationFormat("en", { milliseconds: milliseconds });
}).not.toThrow(); }).not.toThrow();
}); });
expect(() => {
new Intl.DurationFormat("en", { milliseconds: "numeric" });
}).not.toThrow();
expect(() => { expect(() => {
new Intl.DurationFormat("en", { style: "digital", milliseconds: "numeric" }); new Intl.DurationFormat("en", { style: "digital", milliseconds: "numeric" });
}).not.toThrow(); }).not.toThrow();
@ -347,6 +364,11 @@ describe("normal behavior", () => {
new Intl.DurationFormat("en", { microseconds: microseconds }); new Intl.DurationFormat("en", { microseconds: microseconds });
}).not.toThrow(); }).not.toThrow();
}); });
expect(() => {
new Intl.DurationFormat("en", { microseconds: "numeric" });
}).not.toThrow();
expect(() => { expect(() => {
new Intl.DurationFormat("en", { style: "digital", microseconds: "numeric" }); new Intl.DurationFormat("en", { style: "digital", microseconds: "numeric" });
}).not.toThrow(); }).not.toThrow();
@ -366,6 +388,11 @@ describe("normal behavior", () => {
new Intl.DurationFormat("en", { nanoseconds: nanoseconds }); new Intl.DurationFormat("en", { nanoseconds: nanoseconds });
}).not.toThrow(); }).not.toThrow();
}); });
expect(() => {
new Intl.DurationFormat("en", { nanoseconds: "numeric" });
}).not.toThrow();
expect(() => { expect(() => {
new Intl.DurationFormat("en", { style: "digital", nanoseconds: "numeric" }); new Intl.DurationFormat("en", { style: "digital", nanoseconds: "numeric" });
}).not.toThrow(); }).not.toThrow();