From ef86cf46461d15858f573fd29fae453f82a69d4c Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 11 Dec 2023 11:18:59 +0100 Subject: [PATCH] LibJS: Mark forward shape transition keys These should really be weakly held by the Shape, but we don't have a mechanism for weak hashmap keys at the moment, so let's just mark these for now so they don't go stale. --- Userland/Libraries/LibJS/Runtime/Shape.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Userland/Libraries/LibJS/Runtime/Shape.cpp b/Userland/Libraries/LibJS/Runtime/Shape.cpp index be6af28432..183d7926b5 100644 --- a/Userland/Libraries/LibJS/Runtime/Shape.cpp +++ b/Userland/Libraries/LibJS/Runtime/Shape.cpp @@ -126,6 +126,12 @@ void Shape::visit_edges(Cell::Visitor& visitor) it.key.visit_edges(visitor); } visitor.ignore(m_prototype_transitions); + + // FIXME: The forward transition keys should be weak, but we have to mark them for now in case they go stale. + if (m_forward_transitions) { + for (auto& it : *m_forward_transitions) + it.key.property_key.visit_edges(visitor); + } } Optional Shape::lookup(StringOrSymbol const& property_key) const