LibJS+LibWeb: Use GC::Weak instead of AK::WeakPtr for GC-allocated types

This makes some common types like JS::Object smaller (by 8 bytes) and
yields a minor speed improvement on many benchmarks.
This commit is contained in:
Andreas Kling 2025-10-16 11:13:54 +02:00 committed by Andreas Kling
commit dfa796a4e4
Notes: github-actions[bot] 2025-10-17 15:25:08 +00:00
36 changed files with 111 additions and 115 deletions

View file

@ -97,7 +97,7 @@ WebIDL::ExceptionOr<void> MutationObserver::observe(Node& target, MutationObserv
// 1. For each node of thiss node list, remove all transient registered observers whose source is registered from nodes registered observer list.
for (auto& node : m_node_list) {
// FIXME: Is this correct?
if (node.is_null())
if (!node)
continue;
if (node->registered_observer_list()) {
@ -120,7 +120,7 @@ WebIDL::ExceptionOr<void> MutationObserver::observe(Node& target, MutationObserv
target.add_registered_observer(new_registered_observer);
// 2. Append target to thiss node list.
m_node_list.append(target.make_weak_ptr<Node>());
m_node_list.append(target);
}
return {};
@ -132,7 +132,7 @@ void MutationObserver::disconnect()
// 1. For each node of thiss node list, remove any registered observer from nodes registered observer list for which this is the observer.
for (auto& node : m_node_list) {
// FIXME: Is this correct?
if (node.is_null())
if (!node)
continue;
if (node->registered_observer_list()) {