1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:57:35 +00:00

LibJS: Emit reference information for { calendarName: "always" } option

This is a normative change in the Temporal spec.

See: 4f7519a
This commit is contained in:
Linus Groh 2022-03-30 17:56:30 +01:00
parent 29aa938fa5
commit b5392f9e39
4 changed files with 8 additions and 6 deletions

View file

@ -187,8 +187,8 @@ ThrowCompletionOr<String> temporal_month_day_to_string(GlobalObject& global_obje
// 6. Let calendarID be ? ToString(monthDay.[[Calendar]]).
auto calendar_id = TRY(Value(&month_day.calendar()).to_string(global_object));
// 7. If calendarID is not "iso8601", then
if (calendar_id != "iso8601"sv) {
// 7. If showCalendar is "always" or if calendarID is not "iso8601", then
if (show_calendar == "always"sv || calendar_id != "iso8601"sv) {
// a. Let year be ! PadISOYear(monthDay.[[ISOYear]]).
// b. Set result to the string-concatenation of year, the code unit 0x002D (HYPHEN-MINUS), and result.
result = String::formatted("{}-{}", pad_iso_year(month_day.iso_year()), result);

View file

@ -245,8 +245,8 @@ ThrowCompletionOr<String> temporal_year_month_to_string(GlobalObject& global_obj
// 6. Let calendarID be ? ToString(yearMonth.[[Calendar]]).
auto calendar_id = TRY(Value(&year_month.calendar()).to_string(global_object));
// 7. If calendarID is not "iso8601", then
if (calendar_id != "iso8601") {
// 7. If showCalendar is "always" or if calendarID is not "iso8601", then
if (show_calendar == "always"sv || calendar_id != "iso8601") {
// a. Let day be yearMonth.[[ISODay]] formatted as a two-digit decimal number, padded to the left with a zero if necessary.
// b. Set result to the string-concatenation of result, the code unit 0x002D (HYPHEN-MINUS), and day.
result = String::formatted("{}-{:02}", result, year_month.iso_day());

View file

@ -9,7 +9,7 @@ describe("correct behavior", () => {
plainMonthDay = new Temporal.PlainMonthDay(7, 6);
expect(plainMonthDay.toString()).toBe("07-06");
expect(plainMonthDay.toString({ calendarName: "auto" })).toBe("07-06");
expect(plainMonthDay.toString({ calendarName: "always" })).toBe("07-06[u-ca=iso8601]");
expect(plainMonthDay.toString({ calendarName: "always" })).toBe("1972-07-06[u-ca=iso8601]");
expect(plainMonthDay.toString({ calendarName: "never" })).toBe("07-06");
plainMonthDay = new Temporal.PlainMonthDay(7, 6, { toString: () => "foo" }, 2021);

View file

@ -9,7 +9,9 @@ describe("correct behavior", () => {
plainYearMonth = new Temporal.PlainYearMonth(2021, 7);
expect(plainYearMonth.toString()).toBe("2021-07");
expect(plainYearMonth.toString({ calendarName: "auto" })).toBe("2021-07");
expect(plainYearMonth.toString({ calendarName: "always" })).toBe("2021-07[u-ca=iso8601]");
expect(plainYearMonth.toString({ calendarName: "always" })).toBe(
"2021-07-01[u-ca=iso8601]"
);
expect(plainYearMonth.toString({ calendarName: "never" })).toBe("2021-07");
plainYearMonth = new Temporal.PlainYearMonth(2021, 7, { toString: () => "foo" }, 6);