diff --git a/Userland/Libraries/LibJS/CyclicModule.cpp b/Userland/Libraries/LibJS/CyclicModule.cpp index 819779e9bf..f5146e9095 100644 --- a/Userland/Libraries/LibJS/CyclicModule.cpp +++ b/Userland/Libraries/LibJS/CyclicModule.cpp @@ -25,7 +25,8 @@ void CyclicModule::visit_edges(Cell::Visitor& visitor) { Base::visit_edges(visitor); visitor.visit(m_cycle_root); - for (auto module : m_async_parent_modules) + visitor.visit(m_top_level_capability); + for (auto const& module : m_async_parent_modules) visitor.visit(module); } diff --git a/Userland/Libraries/LibJS/Runtime/AsyncFromSyncIterator.cpp b/Userland/Libraries/LibJS/Runtime/AsyncFromSyncIterator.cpp index c5568f5e5a..3373535744 100644 --- a/Userland/Libraries/LibJS/Runtime/AsyncFromSyncIterator.cpp +++ b/Userland/Libraries/LibJS/Runtime/AsyncFromSyncIterator.cpp @@ -30,7 +30,7 @@ ThrowCompletionOr AsyncFromSyncIterator::initialize(Realm& realm) void AsyncFromSyncIterator::visit_edges(Cell::Visitor& visitor) { - Object::visit_edges(visitor); + Base::visit_edges(visitor); visitor.visit(m_sync_iterator_record.iterator); visitor.visit(m_sync_iterator_record.next_method); } diff --git a/Userland/Libraries/LibJS/Runtime/Intrinsics.cpp b/Userland/Libraries/LibJS/Runtime/Intrinsics.cpp index 95f8cfc465..6491ff617e 100644 --- a/Userland/Libraries/LibJS/Runtime/Intrinsics.cpp +++ b/Userland/Libraries/LibJS/Runtime/Intrinsics.cpp @@ -355,6 +355,17 @@ void Intrinsics::visit_edges(Visitor& visitor) visitor.visit(m_async_generator_prototype); visitor.visit(m_generator_prototype); visitor.visit(m_intl_segments_prototype); + visitor.visit(m_eval_function); + visitor.visit(m_is_finite_function); + visitor.visit(m_is_nan_function); + visitor.visit(m_parse_float_function); + visitor.visit(m_parse_int_function); + visitor.visit(m_decode_uri_function); + visitor.visit(m_decode_uri_component_function); + visitor.visit(m_encode_uri_function); + visitor.visit(m_encode_uri_component_function); + visitor.visit(m_escape_function); + visitor.visit(m_unescape_function); visitor.visit(m_array_prototype_values_function); visitor.visit(m_date_constructor_now_function); visitor.visit(m_eval_function); diff --git a/Userland/Libraries/LibWeb/Bindings/Intrinsics.cpp b/Userland/Libraries/LibWeb/Bindings/Intrinsics.cpp index 7bdbbd0485..153cd50180 100644 --- a/Userland/Libraries/LibWeb/Bindings/Intrinsics.cpp +++ b/Userland/Libraries/LibWeb/Bindings/Intrinsics.cpp @@ -16,10 +16,13 @@ void Intrinsics::visit_edges(JS::Cell::Visitor& visitor) { Base::visit_edges(visitor); + for (auto& it : m_namespaces) + visitor.visit(it.value); for (auto& it : m_prototypes) visitor.visit(it.value); for (auto& it : m_constructors) visitor.visit(it.value); + visitor.visit(m_realm); } } diff --git a/Userland/Libraries/LibWeb/DOM/AccessibilityTreeNode.cpp b/Userland/Libraries/LibWeb/DOM/AccessibilityTreeNode.cpp index f9afa51b06..263d67b94c 100644 --- a/Userland/Libraries/LibWeb/DOM/AccessibilityTreeNode.cpp +++ b/Userland/Libraries/LibWeb/DOM/AccessibilityTreeNode.cpp @@ -74,9 +74,9 @@ void AccessibilityTreeNode::serialize_tree_as_json(JsonObjectSerializervisit_edges(visitor); + visitor.visit(m_value); + for (auto const& child : m_children) + visitor.visit(child); } } diff --git a/Userland/Libraries/LibWeb/DOM/Document.cpp b/Userland/Libraries/LibWeb/DOM/Document.cpp index 0aa1394a3e..726ed53c1c 100644 --- a/Userland/Libraries/LibWeb/DOM/Document.cpp +++ b/Userland/Libraries/LibWeb/DOM/Document.cpp @@ -334,19 +334,20 @@ JS::ThrowCompletionOr Document::initialize(JS::Realm& realm) void Document::visit_edges(Cell::Visitor& visitor) { Base::visit_edges(visitor); - visitor.visit(m_window.ptr()); - visitor.visit(m_style_sheets.ptr()); - visitor.visit(m_hovered_node.ptr()); - visitor.visit(m_inspected_node.ptr()); - visitor.visit(m_active_favicon.ptr()); - visitor.visit(m_focused_element.ptr()); - visitor.visit(m_active_element.ptr()); - visitor.visit(m_implementation.ptr()); - visitor.visit(m_current_script.ptr()); - visitor.visit(m_associated_inert_template_document.ptr()); + visitor.visit(m_window); + visitor.visit(m_layout_root); + visitor.visit(m_style_sheets); + visitor.visit(m_hovered_node); + visitor.visit(m_inspected_node); + visitor.visit(m_active_favicon); + visitor.visit(m_focused_element); + visitor.visit(m_active_element); + visitor.visit(m_implementation); + visitor.visit(m_current_script); + visitor.visit(m_associated_inert_template_document); visitor.visit(m_appropriate_template_contents_owner_document); - visitor.visit(m_pending_parsing_blocking_script.ptr()); - visitor.visit(m_history.ptr()); + visitor.visit(m_pending_parsing_blocking_script); + visitor.visit(m_history); visitor.visit(m_browsing_context); @@ -363,17 +364,17 @@ void Document::visit_edges(Cell::Visitor& visitor) visitor.visit(m_parser); for (auto& script : m_scripts_to_execute_when_parsing_has_finished) - visitor.visit(script.ptr()); + visitor.visit(script); for (auto& script : m_scripts_to_execute_as_soon_as_possible) - visitor.visit(script.ptr()); + visitor.visit(script); for (auto& node_iterator : m_node_iterators) visitor.visit(node_iterator); for (auto& target : m_pending_scroll_event_targets) - visitor.visit(target.ptr()); + visitor.visit(target); for (auto& target : m_pending_scrollend_event_targets) - visitor.visit(target.ptr()); + visitor.visit(target); } // https://w3c.github.io/selection-api/#dom-document-getselection diff --git a/Userland/Libraries/LibWeb/Fetch/Infrastructure/HTTP/Requests.cpp b/Userland/Libraries/LibWeb/Fetch/Infrastructure/HTTP/Requests.cpp index 74d39fc689..0c3bc57bba 100644 --- a/Userland/Libraries/LibWeb/Fetch/Infrastructure/HTTP/Requests.cpp +++ b/Userland/Libraries/LibWeb/Fetch/Infrastructure/HTTP/Requests.cpp @@ -22,7 +22,14 @@ void Request::visit_edges(JS::Cell::Visitor& visitor) { Base::visit_edges(visitor); visitor.visit(m_header_list); - for (auto pending_response : m_pending_responses) + visitor.visit(m_client); + m_reserved_client.visit( + [&](JS::GCPtr const& value) { visitor.visit(value); }, + [](auto const&) {}); + m_window.visit( + [&](JS::GCPtr const& value) { visitor.visit(value); }, + [](auto const&) {}); + for (auto const& pending_response : m_pending_responses) visitor.visit(pending_response); } diff --git a/Userland/Libraries/LibWeb/HTML/Worker.cpp b/Userland/Libraries/LibWeb/HTML/Worker.cpp index 2d21047529..93cc7fa2e4 100644 --- a/Userland/Libraries/LibWeb/HTML/Worker.cpp +++ b/Userland/Libraries/LibWeb/HTML/Worker.cpp @@ -40,9 +40,10 @@ JS::ThrowCompletionOr Worker::initialize(JS::Realm& realm) void Worker::visit_edges(Cell::Visitor& visitor) { Base::visit_edges(visitor); - visitor.visit(m_document.ptr()); - visitor.visit(m_implicit_port.ptr()); - visitor.visit(m_outside_port.ptr()); + visitor.visit(m_document); + visitor.visit(m_inner_settings); + visitor.visit(m_implicit_port); + visitor.visit(m_outside_port); } // https://html.spec.whatwg.org/multipage/workers.html#dom-worker