From 286a7ecd9237725f0bdc0309b6bc29405a6510ef Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 14 Aug 2021 20:09:26 +0200 Subject: [PATCH] LibJS: Call base class visit_edges() in various Temporal objects When overriding visit_edges() in a JS::Object subclass, we must make sure to call the base class visit_edges(), or the object's Shape (and any properties) will not get marked. --- Userland/Libraries/LibJS/Runtime/Temporal/PlainDate.cpp | 1 + Userland/Libraries/LibJS/Runtime/Temporal/PlainDateTime.cpp | 1 + Userland/Libraries/LibJS/Runtime/Temporal/PlainTime.cpp | 1 + Userland/Libraries/LibJS/Runtime/Temporal/PlainYearMonth.cpp | 1 + 4 files changed, 4 insertions(+) diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/PlainDate.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/PlainDate.cpp index 3ddfde0fa4..83d1a660fb 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/PlainDate.cpp +++ b/Userland/Libraries/LibJS/Runtime/Temporal/PlainDate.cpp @@ -30,6 +30,7 @@ PlainDate::PlainDate(i32 year, u8 month, u8 day, Object& calendar, Object& proto void PlainDate::visit_edges(Visitor& visitor) { + Base::visit_edges(visitor); visitor.visit(&m_calendar); } diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/PlainDateTime.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/PlainDateTime.cpp index a224c040c6..b8d6bc4410 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/PlainDateTime.cpp +++ b/Userland/Libraries/LibJS/Runtime/Temporal/PlainDateTime.cpp @@ -32,6 +32,7 @@ PlainDateTime::PlainDateTime(i32 iso_year, u8 iso_month, u8 iso_day, u8 iso_hour void PlainDateTime::visit_edges(Visitor& visitor) { + Base::visit_edges(visitor); visitor.visit(&m_calendar); } diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/PlainTime.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/PlainTime.cpp index 4428d7b21a..ac2e5fcab1 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/PlainTime.cpp +++ b/Userland/Libraries/LibJS/Runtime/Temporal/PlainTime.cpp @@ -29,6 +29,7 @@ PlainTime::PlainTime(u8 iso_hour, u8 iso_minute, u8 iso_second, u16 iso_millisec void PlainTime::visit_edges(Visitor& visitor) { + Base::visit_edges(visitor); visitor.visit(&m_calendar); } diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/PlainYearMonth.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/PlainYearMonth.cpp index 97b7d5ac3e..248aa43192 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/PlainYearMonth.cpp +++ b/Userland/Libraries/LibJS/Runtime/Temporal/PlainYearMonth.cpp @@ -24,6 +24,7 @@ PlainYearMonth::PlainYearMonth(i32 iso_year, u8 iso_month, u8 iso_day, Object& c void PlainYearMonth::visit_edges(Visitor& visitor) { + Base::visit_edges(visitor); visitor.visit(&m_calendar); }