From f25899ca346087de0f034d0abfb1354da041b8b4 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 8 Dec 2021 09:58:19 +0100 Subject: [PATCH] LibJS: Mark entire private environment chains during GC --- Userland/Libraries/LibJS/Runtime/PrivateEnvironment.cpp | 6 ++++++ Userland/Libraries/LibJS/Runtime/PrivateEnvironment.h | 1 + 2 files changed, 7 insertions(+) diff --git a/Userland/Libraries/LibJS/Runtime/PrivateEnvironment.cpp b/Userland/Libraries/LibJS/Runtime/PrivateEnvironment.cpp index 6895545d6c..8785cea00c 100644 --- a/Userland/Libraries/LibJS/Runtime/PrivateEnvironment.cpp +++ b/Userland/Libraries/LibJS/Runtime/PrivateEnvironment.cpp @@ -45,4 +45,10 @@ bool PrivateName::operator==(PrivateName const& rhs) const return unique_id == rhs.unique_id && description == rhs.description; } +void PrivateEnvironment::visit_edges(Visitor& visitor) +{ + Cell::visit_edges(visitor); + visitor.visit(m_outer_environment); +} + } diff --git a/Userland/Libraries/LibJS/Runtime/PrivateEnvironment.h b/Userland/Libraries/LibJS/Runtime/PrivateEnvironment.h index 81f8710cdf..2c129f2d05 100644 --- a/Userland/Libraries/LibJS/Runtime/PrivateEnvironment.h +++ b/Userland/Libraries/LibJS/Runtime/PrivateEnvironment.h @@ -36,6 +36,7 @@ public: private: virtual char const* class_name() const override { return "PrivateEnvironment"; } + virtual void visit_edges(Visitor&) override; auto find_private_name(FlyString const& description) const {