From c83a3db542d57236efbfba362f136a7ef9246617 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Sat, 23 Nov 2024 09:29:20 -0500 Subject: [PATCH] LibJS: Handle Temporal.PlainDate in dynamic calendar operations --- Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp | 2 ++ Libraries/LibJS/Runtime/Temporal/Calendar.cpp | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp b/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp index 8f01fabd29d..3223eb696f9 100644 --- a/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp +++ b/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp @@ -624,6 +624,8 @@ ThrowCompletionOr is_partial_temporal_object(VM& vm, Value value) // [[InitializedTemporalTime]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal // slot, return false. // FIXME: Add the other types as we define them. + if (is(object)) + return false; if (is(object)) return false; if (is(object)) diff --git a/Libraries/LibJS/Runtime/Temporal/Calendar.cpp b/Libraries/LibJS/Runtime/Temporal/Calendar.cpp index fb185cfbecc..34083508d49 100644 --- a/Libraries/LibJS/Runtime/Temporal/Calendar.cpp +++ b/Libraries/LibJS/Runtime/Temporal/Calendar.cpp @@ -452,6 +452,8 @@ ThrowCompletionOr to_temporal_calendar_identifier(VM& vm, Value temporal // internal slot, then // i. Return temporalCalendarLike.[[Calendar]]. // FIXME: Add the other calendar-holding types as we define them. + if (is(temporal_calendar_object)) + return static_cast(temporal_calendar_object).calendar(); if (is(temporal_calendar_object)) return static_cast(temporal_calendar_object).calendar(); if (is(temporal_calendar_object)) @@ -476,6 +478,8 @@ ThrowCompletionOr get_temporal_calendar_identifier_with_iso_default(VM& // [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then // a. Return item.[[Calendar]]. // FIXME: Add the other calendar-holding types as we define them. + if (is(item)) + return static_cast(item).calendar(); if (is(item)) return static_cast(item).calendar(); if (is(item))