Skip to content

Commit

Permalink
LibJS: Implement the ECMA-402 definition of DefaultTimeZone
Browse files Browse the repository at this point in the history
Simply defer to LibTimeZone to retrieve the system's current time zone.
Also update some Temporal tests to explicitly set the time zone to UTC.
  • Loading branch information
trflynn89 authored and linusg committed Jan 12, 2022
1 parent bdf02c2 commit f678688
Show file tree
Hide file tree
Showing 6 changed files with 10 additions and 10 deletions.
6 changes: 3 additions & 3 deletions Userland/Libraries/LibJS/Runtime/Temporal/TimeZone.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,11 @@ String canonicalize_time_zone_name(String const& time_zone)
}

// 11.1.3 DefaultTimeZone ( ), https://tc39.es/proposal-temporal/#sec-defaulttimezone
// NOTE: This is the minimum implementation of DefaultTimeZone, supporting only the "UTC" time zone.
// 15.1.3 DefaultTimeZone ( ), https://tc39.es/proposal-temporal/#sup-defaulttimezone
String default_time_zone()
{
// 1. Return "UTC".
return "UTC";
// The DefaultTimeZone abstract operation returns a String value representing the valid (11.1.1) and canonicalized (11.1.2) time zone name for the host environment's current time zone.
return ::TimeZone::current_time_zone();
}

// 11.6.1 ParseTemporalTimeZone ( string ), https://tc39.es/proposal-temporal/#sec-temporal-parsetemporaltimezone
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ describe("correct behavior", () => {
return 86400000000000;
},
};
const plainDate = Temporal.Now.plainDate(calendar);
const plainDate = Temporal.Now.plainDate(calendar, "UTC");
const plainDateWithOffset = Temporal.Now.plainDate(calendar, timeZone);
if (plainDate.dayOfYear === plainDate.daysInYear) {
expect(plainDateWithOffset.year).toBe(plainDate.year + 1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ describe("correct behavior", () => {
return 86400000000000;
},
};
const plainDate = Temporal.Now.plainDateISO();
const plainDate = Temporal.Now.plainDateISO("UTC");
const plainDateWithOffset = Temporal.Now.plainDateISO(timeZone);
if (plainDate.dayOfYear === plainDate.daysInYear) {
expect(plainDateWithOffset.year).toBe(plainDate.year + 1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ describe("correct behavior", () => {
},
};

const plainDateTime = Temporal.Now.plainDateTime(calendar);
const plainDateTime = Temporal.Now.plainDateTime(calendar, "UTC");
const plainDateTimeWithOffset = Temporal.Now.plainDateTime(calendar, timeZone);

if (plainDateTime.year !== plainDateTimeWithOffset.year) return;
Expand All @@ -58,7 +58,7 @@ describe("correct behavior", () => {
},
};

const plainDateTime = Temporal.Now.plainDateTime(calendar);
const plainDateTime = Temporal.Now.plainDateTime(calendar, "UTC");
const plainDateTimeWithOffset = Temporal.Now.plainDateTime(calendar, timeZone);

if (plainDateTime.year !== plainDateTimeWithOffset.year) return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ describe("correct behavior", () => {
},
};

const plainDateTime = Temporal.Now.plainDateTimeISO();
const plainDateTime = Temporal.Now.plainDateTimeISO("UTC");
const plainDateTimeWithOffset = Temporal.Now.plainDateTimeISO(timeZone);

if (plainDateTime.year !== plainDateTimeWithOffset.year) return;
Expand All @@ -55,7 +55,7 @@ describe("correct behavior", () => {
},
};

const plainDateTime = Temporal.Now.plainDateTimeISO();
const plainDateTime = Temporal.Now.plainDateTimeISO("UTC");
const plainDateTimeWithOffset = Temporal.Now.plainDateTimeISO(timeZone);

if (plainDateTime.year !== plainDateTimeWithOffset.year) return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ describe("correct behavior", () => {
return 86400000000000;
},
};
const plainTime = Temporal.Now.plainTimeISO();
const plainTime = Temporal.Now.plainTimeISO("UTC");
const plainTimeWithOffset = Temporal.Now.plainTimeISO(timeZone);
// FIXME: Compare these in a sensible way
});
Expand Down

0 comments on commit f678688

Please sign in to comment.