From 27304017e38bb7d0c4886b7a0887f7666d5f783d Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Sat, 20 Nov 2021 22:05:39 +0000 Subject: [PATCH] LibJS: Don't assume calendar was parsed in to_temporal_zoned_date_time() The first step of to_temporal_calendar_with_iso_default() is checking whether the given value is undefined, so we should actually pass that instead of unconditionally dereferencing the Optional. --- Userland/Libraries/LibJS/Runtime/Temporal/ZonedDateTime.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/ZonedDateTime.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/ZonedDateTime.cpp index 96c571edd2..87fc1a9698 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/ZonedDateTime.cpp +++ b/Userland/Libraries/LibJS/Runtime/Temporal/ZonedDateTime.cpp @@ -219,7 +219,10 @@ ThrowCompletionOr to_temporal_zoned_date_time(GlobalObject& glob time_zone = TRY(create_temporal_time_zone(global_object, *parsed_result.time_zone.name)); // i. Let calendar be ? ToTemporalCalendarWithISODefault(result.[[Calendar]]). - calendar = TRY(to_temporal_calendar_with_iso_default(global_object, js_string(vm, parsed_result.date_time.calendar.value()))); + auto temporal_calendar_like = parsed_result.date_time.calendar.has_value() + ? js_string(vm, parsed_result.date_time.calendar.value()) + : js_undefined(); + calendar = TRY(to_temporal_calendar_with_iso_default(global_object, temporal_calendar_like)); // j. Set matchBehaviour to match minutes. match_behavior = MatchBehavior::MatchMinutes;