diff --git a/Userland/Libraries/LibJS/Runtime/ModuleEnvironment.cpp b/Userland/Libraries/LibJS/Runtime/ModuleEnvironment.cpp index 8843c8e71d..9b974bdd23 100644 --- a/Userland/Libraries/LibJS/Runtime/ModuleEnvironment.cpp +++ b/Userland/Libraries/LibJS/Runtime/ModuleEnvironment.cpp @@ -126,4 +126,11 @@ Optional ModuleEnvironment::find_binding_and return DeclarativeEnvironment::find_binding_and_index(name); } +void ModuleEnvironment::visit_edges(Visitor& visitor) +{ + Base::visit_edges(visitor); + for (auto& indirect_binding : m_indirect_bindings) + visitor.visit(indirect_binding.module); +} + } diff --git a/Userland/Libraries/LibJS/Runtime/ModuleEnvironment.h b/Userland/Libraries/LibJS/Runtime/ModuleEnvironment.h index f2652165ad..181da9134e 100644 --- a/Userland/Libraries/LibJS/Runtime/ModuleEnvironment.h +++ b/Userland/Libraries/LibJS/Runtime/ModuleEnvironment.h @@ -30,6 +30,8 @@ public: private: explicit ModuleEnvironment(Environment* outer_environment); + virtual void visit_edges(Visitor&) override; + struct IndirectBinding { FlyString name; Module* module;