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:
parent
29aa938fa5
commit
b5392f9e39
4 changed files with 8 additions and 6 deletions
|
@ -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);
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue