From 7d2834344a7635ec45aba28a0351feca8e5f1c17 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Fri, 14 Jan 2022 08:16:50 -0500 Subject: [PATCH] LibJS: Implement the localTZA AO for isUTC=false --- Userland/Libraries/LibJS/Runtime/Date.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/Userland/Libraries/LibJS/Runtime/Date.cpp b/Userland/Libraries/LibJS/Runtime/Date.cpp index c7dc26131a..07e1193c1b 100644 --- a/Userland/Libraries/LibJS/Runtime/Date.cpp +++ b/Userland/Libraries/LibJS/Runtime/Date.cpp @@ -323,20 +323,18 @@ double local_tza(double time, bool is_utc, Optional time_zone_overri // time zone with a specific value without setting environment variables. auto time_zone = time_zone_override.value_or(TimeZone::current_time_zone()); + auto maybe_offset = TimeZone::get_time_zone_offset(time_zone, AK::Time::from_milliseconds(time)); + auto offset = maybe_offset.value_or(0) * 1000; + // When isUTC is true, LocalTZA( tUTC, true ) should return the offset of the local time zone from // UTC measured in milliseconds at time represented by time value tUTC. When the result is added to // tUTC, it should yield the corresponding Number tlocal. - if (is_utc) { - auto offset = TimeZone::get_time_zone_offset(time_zone, AK::Time::from_milliseconds(time)); - return offset.value_or(0) * 1000; - } // When isUTC is false, LocalTZA( tlocal, false ) should return the offset of the local time zone from // UTC measured in milliseconds at local time represented by Number tlocal. When the result is subtracted // from tlocal, it should yield the corresponding time value tUTC. - // FIXME: Implement isUTC=false when any caller needs it. - TODO(); + return is_utc ? offset : -offset; } // 21.4.1.11 MakeTime ( hour, min, sec, ms ), https://tc39.es/ecma262/#sec-maketime