LibJS+LibWeb: Use new Cell::Visitor helpers to avoid manual iteration

This commit is contained in:
Andreas Kling 2024-04-15 13:58:21 +02:00
commit 53d0dd4a2e
Notes: sideshowbarker 2024-07-17 20:58:35 +09:00
63 changed files with 98 additions and 213 deletions

View file

@ -53,8 +53,7 @@ void Executable::dump() const
void Executable::visit_edges(Visitor& visitor)
{
Base::visit_edges(visitor);
for (auto constant : constants)
visitor.visit(constant);
visitor.visit(constants);
}
}

View file

@ -26,10 +26,8 @@ struct CallFrame {
void visit_edges(Cell::Visitor& visitor)
{
for (auto const& value : registers())
visitor.visit(value);
for (auto const& environment : saved_lexical_environments)
visitor.visit(environment);
visitor.visit(registers());
visitor.visit(saved_lexical_environments);
for (auto& context : unwind_contexts) {
visitor.visit(context.lexical_environment);
}

View file

@ -29,8 +29,7 @@ void CyclicModule::visit_edges(Cell::Visitor& visitor)
Base::visit_edges(visitor);
visitor.visit(m_cycle_root);
visitor.visit(m_top_level_capability);
for (auto const& module : m_async_parent_modules)
visitor.visit(module);
visitor.visit(m_async_parent_modules);
for (auto const& loaded_module : m_loaded_modules)
visitor.visit(loaded_module.module);
}
@ -40,8 +39,7 @@ void GraphLoadingState::visit_edges(Cell::Visitor& visitor)
Base::visit_edges(visitor);
visitor.visit(promise_capability);
visitor.visit(host_defined);
for (auto module : visited)
visitor.visit(module);
visitor.visit(visited);
}
// 16.2.1.5.1 LoadRequestedModules ( [ hostDefined ] ), https://tc39.es/ecma262/#sec-LoadRequestedModules

View file

@ -102,8 +102,7 @@ void BoundFunction::visit_edges(Visitor& visitor)
visitor.visit(m_bound_target_function);
visitor.visit(m_bound_this);
for (auto argument : m_bound_arguments)
visitor.visit(argument);
visitor.visit(m_bound_arguments);
}
}

View file

@ -537,8 +537,7 @@ void ECMAScriptFunctionObject::visit_edges(Visitor& visitor)
visitor.visit(m_name_string);
visitor.visit(m_bytecode_executable);
for (auto& executable : m_default_parameter_bytecode_executables)
visitor.visit(executable);
visitor.visit(m_default_parameter_bytecode_executables);
for (auto& field : m_fields) {
if (auto* property_key_ptr = field.name.get_pointer<PropertyKey>(); property_key_ptr && property_key_ptr->is_symbol())

View file

@ -59,10 +59,8 @@ void ExecutionContext::visit_edges(Cell::Visitor& visitor)
if (instruction_stream_iterator.has_value())
visitor.visit(const_cast<Bytecode::Executable*>(instruction_stream_iterator.value().executable()));
visitor.visit(function_name);
for (auto argument : arguments)
visitor.visit(argument);
for (auto local : locals)
visitor.visit(local);
visitor.visit(arguments);
visitor.visit(locals);
script_or_module.visit(
[](Empty) {},
[&](auto& script_or_module) {

View file

@ -1394,9 +1394,7 @@ void Object::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_shape);
for (auto& value : m_storage)
visitor.visit(value);
visitor.visit(m_storage);
m_indexed_properties.for_each_value([&visitor](auto& value) {
visitor.visit(value);

View file

@ -395,10 +395,8 @@ void Promise::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_result);
for (auto& reaction : m_fulfill_reactions)
visitor.visit(reaction);
for (auto& reaction : m_reject_reactions)
visitor.visit(reaction);
visitor.visit(m_fulfill_reactions);
visitor.visit(m_reject_reactions);
}
}

View file

@ -24,8 +24,7 @@ JS_DEFINE_ALLOCATOR(PromiseAnyRejectElementFunction);
void PromiseValueList::visit_edges(Visitor& visitor)
{
Base::visit_edges(visitor);
for (auto& val : m_values)
visitor.visit(val);
visitor.visit(m_values);
}
PromiseResolvingElementFunction::PromiseResolvingElementFunction(size_t index, PromiseValueList& values, NonnullGCPtr<PromiseCapability const> capability, RemainingElements& remaining_elements, Object& prototype)

View file

@ -96,8 +96,7 @@ void Animatable::disassociate_with_animation(JS::NonnullGCPtr<Animation> animati
void Animatable::visit_edges(JS::Cell::Visitor& visitor)
{
for (auto const& animation : m_associated_animations)
visitor.visit(animation);
visitor.visit(m_associated_animations);
visitor.visit(m_cached_animation_name_source);
visitor.visit(m_cached_animation_name_animation);
}

View file

@ -64,8 +64,7 @@ void AnimationTimeline::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_associated_document);
for (auto const& animation : m_associated_animations)
visitor.visit(animation);
visitor.visit(m_associated_animations);
}
}

View file

@ -873,8 +873,7 @@ void KeyframeEffect::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_target_element);
for (auto const& keyframe : m_keyframe_objects)
visitor.visit(keyframe);
visitor.visit(m_keyframe_objects);
}
static CSS::RequiredInvalidationAfterStyleChange compute_required_invalidation(HashMap<CSS::PropertyID, NonnullRefPtr<CSS::StyleValue const>> const& old_properties, HashMap<CSS::PropertyID, NonnullRefPtr<CSS::StyleValue const>> const& new_properties)

View file

@ -17,13 +17,9 @@ JS_DEFINE_ALLOCATOR(Intrinsics);
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_namespaces);
visitor.visit(m_prototypes);
visitor.visit(m_constructors);
visitor.visit(m_realm);
}

View file

@ -20,8 +20,7 @@ JS::NonnullGCPtr<CSSKeyframesRule> CSSKeyframesRule::create(JS::Realm& realm, Fl
void CSSKeyframesRule::visit_edges(Visitor& visitor)
{
Base::visit_edges(visitor);
for (auto& keyframe : m_keyframes)
visitor.visit(keyframe);
visitor.visit(m_keyframes);
}
void CSSKeyframesRule::initialize(JS::Realm& realm)

View file

@ -48,8 +48,7 @@ void CSSRuleList::initialize(JS::Realm& realm)
void CSSRuleList::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
for (auto& rule : m_rules)
visitor.visit(rule);
visitor.visit(m_rules);
}
bool CSSRuleList::is_supported_property_index(u32 index) const

View file

@ -122,8 +122,7 @@ void CSSStyleSheet::visit_edges(Cell::Visitor& visitor)
visitor.visit(m_owner_css_rule);
visitor.visit(m_default_namespace_rule);
visitor.visit(m_constructor_document);
for (auto& [key, namespace_rule] : m_namespace_rules)
visitor.visit(namespace_rule);
visitor.visit(m_namespace_rules);
}
// https://www.w3.org/TR/cssom/#dom-cssstylesheet-insertrule

View file

@ -87,8 +87,7 @@ void StyleSheetList::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_document);
for (auto sheet : m_sheets)
visitor.visit(sheet);
visitor.visit(m_sheets);
}
// https://www.w3.org/TR/cssom/#ref-for-dfn-supported-property-indices%E2%91%A1

View file

@ -98,14 +98,9 @@ void AbortSignal::visit_edges(JS::Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_abort_reason);
for (auto& algorithm : m_abort_algorithms)
visitor.visit(algorithm);
for (auto& source_signal : m_source_signals)
visitor.visit(source_signal);
for (auto& dependent_signal : m_dependent_signals)
visitor.visit(dependent_signal);
visitor.visit(m_abort_algorithms);
visitor.visit(m_source_signals);
visitor.visit(m_dependent_signals);
}
// https://dom.spec.whatwg.org/#dom-abortsignal-abort

View file

@ -76,8 +76,7 @@ void AccessibilityTreeNode::visit_edges(Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_value);
for (auto const& child : m_children)
visitor.visit(child);
visitor.visit(m_children);
}
}

View file

@ -445,44 +445,25 @@ void Document::visit_edges(Cell::Visitor& visitor)
visitor.visit(m_visual_viewport);
visitor.visit(m_latest_entry);
visitor.visit(m_default_timeline);
visitor.visit(m_scripts_to_execute_when_parsing_has_finished);
visitor.visit(m_scripts_to_execute_in_order_as_soon_as_possible);
visitor.visit(m_scripts_to_execute_as_soon_as_possible);
visitor.visit(m_node_iterators);
visitor.visit(m_document_observers);
visitor.visit(m_pending_scroll_event_targets);
visitor.visit(m_pending_scrollend_event_targets);
visitor.visit(m_intersection_observers);
visitor.visit(m_resize_observers);
for (auto& script : m_scripts_to_execute_when_parsing_has_finished)
visitor.visit(script);
for (auto& script : m_scripts_to_execute_in_order_as_soon_as_possible)
visitor.visit(script);
for (auto& script : m_scripts_to_execute_as_soon_as_possible)
visitor.visit(script);
for (auto& node_iterator : m_node_iterators)
visitor.visit(node_iterator);
for (auto& document_observer : m_document_observers)
visitor.visit(document_observer);
for (auto& target : m_pending_scroll_event_targets)
visitor.visit(target);
for (auto& target : m_pending_scrollend_event_targets)
visitor.visit(target);
for (auto& observer : m_intersection_observers)
visitor.visit(observer);
for (auto& observer : m_resize_observers)
visitor.visit(observer);
for (auto& image : m_shared_image_requests)
visitor.visit(image.value);
for (auto& timeline : m_associated_animation_timelines)
visitor.visit(timeline);
visitor.visit(m_shared_image_requests);
visitor.visit(m_associated_animation_timelines);
visitor.visit(m_list_of_available_images);
for (auto* form_associated_element : m_form_associated_elements_with_form_attribute)
visitor.visit(form_associated_element->form_associated_element_to_html_element());
for (auto& element : m_potentially_named_elements)
visitor.visit(element);
visitor.visit(m_potentially_named_elements);
for (auto& event : m_pending_animation_event_queue) {
visitor.visit(event.event);
@ -491,14 +472,10 @@ void Document::visit_edges(Cell::Visitor& visitor)
visitor.visit(m_adopted_style_sheets);
for (auto& shadow_root : m_shadow_roots)
visitor.visit(shadow_root);
visitor.visit(m_shadow_roots);
for (auto& element : m_top_layer_elements)
visitor.visit(element);
for (auto& element : m_top_layer_pending_removals)
visitor.visit(element);
visitor.visit(m_top_layer_elements);
visitor.visit(m_top_layer_pending_removals);
}
// https://w3c.github.io/selection-api/#dom-document-getselection

View file

@ -99,8 +99,7 @@ void Element::visit_edges(Cell::Visitor& visitor)
visitor.visit(m_shadow_root);
visitor.visit(m_custom_element_definition);
if (m_pseudo_element_nodes) {
for (auto& pseudo_element_layout_node : *m_pseudo_element_nodes)
visitor.visit(pseudo_element_layout_node);
visitor.visit(m_pseudo_element_nodes->span());
}
if (m_registered_intersection_observers) {
for (auto& registered_intersection_observers : *m_registered_intersection_observers)

View file

@ -64,11 +64,9 @@ void Event::visit_edges(Visitor& visitor)
visitor.visit(it.invocation_target);
visitor.visit(it.shadow_adjusted_target);
visitor.visit(it.related_target);
for (auto& itit : it.touch_target_list)
visitor.visit(itit);
visitor.visit(it.touch_target_list);
}
for (auto& it : m_touch_target_list)
visitor.visit(it);
visitor.visit(m_touch_target_list);
}
// https://dom.spec.whatwg.org/#concept-event-path-append

View file

@ -69,11 +69,8 @@ void EventTarget::visit_edges(Cell::Visitor& visitor)
Base::visit_edges(visitor);
if (auto const* data = m_data.ptr()) {
for (auto& event_listener : data->event_listener_list)
visitor.visit(event_listener);
for (auto& it : data->event_handler_map)
visitor.visit(it.value);
visitor.visit(data->event_listener_list);
visitor.visit(data->event_handler_map);
}
}

View file

@ -46,8 +46,7 @@ void HTMLCollection::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_root);
for (auto& element : m_cached_elements)
visitor.visit(element);
visitor.visit(m_cached_elements);
}
void HTMLCollection::update_cache_if_needed() const

View file

@ -50,8 +50,7 @@ void MutationObserver::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_callback);
for (auto& record : m_record_queue)
visitor.visit(record);
visitor.visit(m_record_queue);
}
// https://dom.spec.whatwg.org/#dom-mutationobserver-observe

View file

@ -43,8 +43,7 @@ void NamedNodeMap::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_element);
for (auto& attribute : m_attributes)
visitor.visit(attribute);
visitor.visit(m_attributes);
}
// https://dom.spec.whatwg.org/#ref-for-dfn-supported-property-indices%E2%91%A3

View file

@ -106,8 +106,7 @@ void Node::visit_edges(Cell::Visitor& visitor)
visitor.visit(m_paintable);
if (m_registered_observer_list) {
for (auto& registered_observer : *m_registered_observer_list)
visitor.visit(registered_observer);
visitor.visit(*m_registered_observer_list);
}
}

View file

@ -29,8 +29,7 @@ StaticNodeList::~StaticNodeList() = default;
void StaticNodeList::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
for (auto& node : m_static_nodes)
visitor.visit(node);
visitor.visit(m_static_nodes);
}
// https://dom.spec.whatwg.org/#dom-nodelist-length

View file

@ -34,8 +34,7 @@ void Request::visit_edges(JS::Cell::Visitor& visitor)
m_window.visit(
[&](JS::GCPtr<HTML::EnvironmentSettingsObject> const& value) { visitor.visit(value); },
[](auto const&) {});
for (auto const& pending_response : m_pending_responses)
visitor.visit(pending_response);
visitor.visit(m_pending_responses);
}
JS::NonnullGCPtr<Request> Request::create(JS::VM& vm)

View file

@ -66,8 +66,7 @@ WebIDL::ExceptionOr<JS::Value> FileList::item_value(size_t index) const
void FileList::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
for (auto file : m_files)
visitor.visit(file);
visitor.visit(m_files);
}
WebIDL::ExceptionOr<void> FileList::serialization_steps(HTML::SerializationRecord& serialized, bool for_storage, HTML::SerializationMemory& memory)

View file

@ -40,8 +40,7 @@ void DOMRectList::initialize(JS::Realm& realm)
void DOMRectList::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
for (auto& rect : m_rects)
visitor.visit(rect);
visitor.visit(m_rects);
}
// https://drafts.fxtf.org/geometry-1/#dom-domrectlist-length

View file

@ -122,8 +122,7 @@ WebIDL::CallbackType* AudioTrackList::onremovetrack()
void AudioTrackList::visit_edges(JS::Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
for (auto const& track : m_audio_tracks)
visitor.visit(track);
visitor.visit(m_audio_tracks);
}
}

View file

@ -35,8 +35,7 @@ void BrowsingContextGroup::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_page);
for (auto& context : m_browsing_context_set)
visitor.visit(context);
visitor.visit(m_browsing_context_set);
}
// https://html.spec.whatwg.org/multipage/document-sequences.html#creating-a-new-browsing-context-group-and-document

View file

@ -12,8 +12,7 @@ void CustomElementDefinition::visit_edges(Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_constructor);
for (auto& callback : m_lifecycle_callbacks)
visitor.visit(callback.value);
visitor.visit(m_lifecycle_callbacks);
}
}

View file

@ -39,10 +39,8 @@ void CustomElementRegistry::initialize(JS::Realm& realm)
void CustomElementRegistry::visit_edges(Visitor& visitor)
{
Base::visit_edges(visitor);
for (auto& definition : m_custom_element_definitions)
visitor.visit(definition);
for (auto& [name, promise] : m_when_defined_promise_map)
visitor.visit(promise);
visitor.visit(m_custom_element_definitions);
visitor.visit(m_when_defined_promise_map);
}
// https://webidl.spec.whatwg.org/#es-callback-function

View file

@ -39,9 +39,7 @@ void DocumentState::visit_edges(Cell::Visitor& visitor)
Base::visit_edges(visitor);
visitor.visit(m_document);
for (auto& nested_history : m_nested_histories) {
for (auto& entry : nested_history.entries) {
visitor.visit(entry);
}
visitor.visit(nested_history.entries);
}
}

View file

@ -37,9 +37,7 @@ void EventLoop::visit_edges(Visitor& visitor)
visitor.visit(m_task_queue);
visitor.visit(m_microtask_queue);
visitor.visit(m_currently_running_task);
for (auto& settings : m_backup_incumbent_settings_object_stack)
visitor.visit(settings);
visitor.visit(m_backup_incumbent_settings_object_stack);
}
void EventLoop::schedule()

View file

@ -23,8 +23,7 @@ void TaskQueue::visit_edges(Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_event_loop);
for (auto& task : m_tasks)
visitor.visit(task);
visitor.visit(m_tasks);
}
void TaskQueue::add(JS::NonnullGCPtr<Task> task)

View file

@ -59,8 +59,7 @@ void HTMLFormElement::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_elements);
for (auto& element : m_associated_elements)
visitor.visit(element);
visitor.visit(m_associated_elements);
visitor.visit(m_planned_navigation);
}

View file

@ -90,8 +90,7 @@ void HTMLMediaElement::visit_edges(Cell::Visitor& visitor)
visitor.visit(m_document_observer);
visitor.visit(m_source_element_selector);
visitor.visit(m_fetch_controller);
for (auto& promise : m_pending_play_promises)
visitor.visit(promise);
visitor.visit(m_pending_play_promises);
}
void HTMLMediaElement::attribute_changed(FlyString const& name, Optional<String> const& value)

View file

@ -35,8 +35,7 @@ Location::~Location() = default;
void Location::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
for (auto& property : m_default_properties)
visitor.visit(property);
visitor.visit(m_default_properties);
}
void Location::initialize(JS::Realm& realm)

View file

@ -49,8 +49,7 @@ void MessageEvent::visit_edges(Cell::Visitor& visitor)
Base::visit_edges(visitor);
visitor.visit(m_data);
visitor.visit(m_ports_array);
for (auto& port : m_ports)
visitor.visit(port);
visitor.visit(m_ports);
}
Variant<JS::Handle<WindowProxy>, JS::Handle<MessagePort>, Empty> MessageEvent::source() const

View file

@ -56,8 +56,7 @@ void NavigateEvent::initialize(JS::Realm& realm)
void NavigateEvent::visit_edges(JS::Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
for (auto& handler : m_navigation_handler_list)
visitor.visit(handler);
visitor.visit(m_navigation_handler_list);
visitor.visit(m_abort_controller);
visitor.visit(m_destination);
visitor.visit(m_signal);

View file

@ -83,14 +83,12 @@ void Navigation::initialize(JS::Realm& realm)
void Navigation::visit_edges(JS::Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
for (auto& entry : m_entry_list)
visitor.visit(entry);
visitor.visit(m_entry_list);
visitor.visit(m_transition);
visitor.visit(m_ongoing_navigate_event);
visitor.visit(m_ongoing_api_method_tracker);
visitor.visit(m_upcoming_non_traverse_api_method_tracker);
for (auto& key_and_tracker : m_upcoming_traverse_api_method_trackers)
visitor.visit(key_and_tracker.value);
visitor.visit(m_upcoming_traverse_api_method_trackers);
}
// https://html.spec.whatwg.org/multipage/nav-history-apis.html#dom-navigation-entries

View file

@ -16,8 +16,7 @@ StackOfOpenElements::~StackOfOpenElements() = default;
void StackOfOpenElements::visit_edges(JS::Cell::Visitor& visitor)
{
for (auto& element : m_elements)
visitor.visit(element);
visitor.visit(m_elements);
}
bool StackOfOpenElements::has_in_scope_impl(FlyString const& tag_name, Vector<FlyString> const& list) const

View file

@ -17,8 +17,7 @@ void ModuleMap::visit_edges(Visitor& visitor)
visitor.visit(it.value.module_script);
for (auto const& it : m_callbacks)
for (auto const& callback : it.value)
visitor.visit(callback);
visitor.visit(it.value);
}
bool ModuleMap::is_fetching(URL::URL const& url, ByteString const& type) const

View file

@ -43,9 +43,7 @@ SessionHistoryTraversalQueue::SessionHistoryTraversalQueue()
void SessionHistoryTraversalQueue::visit_edges(JS::Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
for (auto const& entry : m_queue) {
visitor.visit(entry);
}
visitor.visit(m_queue);
}
void SessionHistoryTraversalQueue::append(Function<void()> steps)

View file

@ -34,8 +34,7 @@ void TraversableNavigable::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_page);
for (auto& entry : m_session_history_entries)
visitor.visit(entry);
visitor.visit(m_session_history_entries);
visitor.visit(m_session_history_traversal_queue);
}

View file

@ -129,8 +129,7 @@ WebIDL::CallbackType* VideoTrackList::onremovetrack()
void VideoTrackList::visit_edges(JS::Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
for (auto const& track : m_video_tracks)
visitor.visit(track);
visitor.visit(m_video_tracks);
}
}

View file

@ -126,10 +126,8 @@ void Window::visit_edges(JS::Cell::Visitor& visitor)
visitor.visit(m_navigator);
visitor.visit(m_navigation);
visitor.visit(m_custom_element_registry);
for (auto& plugin_object : m_pdf_viewer_plugin_objects)
visitor.visit(plugin_object);
for (auto& mime_type_object : m_pdf_viewer_mime_type_objects)
visitor.visit(mime_type_object);
visitor.visit(m_pdf_viewer_plugin_objects);
visitor.visit(m_pdf_viewer_mime_type_objects);
visitor.visit(m_count_queuing_strategy_size_function);
visitor.visit(m_byte_length_queuing_strategy_size_function);
}

View file

@ -65,10 +65,8 @@ void WindowOrWorkerGlobalScopeMixin::visit_edges(JS::Cell::Visitor& visitor)
{
visitor.visit(m_performance);
visitor.visit(m_supported_entry_types_array);
for (auto& it : m_timers)
visitor.visit(it.value);
for (auto& observer : m_registered_performance_observer_objects)
visitor.visit(observer);
visitor.visit(m_timers);
visitor.visit(m_registered_performance_observer_objects);
for (auto& entry : m_performance_entry_buffer_map)
entry.value.visit_edges(visitor);
}

View file

@ -78,10 +78,8 @@ void IntersectionObserver::visit_edges(JS::Cell::Visitor& visitor)
Base::visit_edges(visitor);
visitor.visit(m_root);
visitor.visit(m_callback);
for (auto& entry : m_queued_entries)
visitor.visit(entry);
for (auto& target : m_observation_targets)
visitor.visit(target);
visitor.visit(m_queued_entries);
visitor.visit(m_observation_targets);
}
// https://w3c.github.io/IntersectionObserver/#dom-intersectionobserver-observe

View file

@ -518,10 +518,8 @@ void ViewportPaintable::recompute_selection_states()
void ViewportPaintable::visit_edges(Visitor& visitor)
{
Base::visit_edges(visitor);
for (auto it : scroll_state)
visitor.visit(it.key);
for (auto it : clip_state)
visitor.visit(it.key);
visitor.visit(scroll_state);
visitor.visit(clip_state);
}
}

View file

@ -48,8 +48,7 @@ struct PerformanceEntryTuple {
void visit_edges(JS::Cell::Visitor& visitor)
{
for (auto& entry : performance_entry_buffer)
visitor.visit(entry);
visitor.visit(performance_entry_buffer);
}
};

View file

@ -41,8 +41,7 @@ void PerformanceObserver::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_callback);
for (auto& entry : m_observer_buffer)
visitor.visit(entry);
visitor.visit(m_observer_buffer);
}
// https://w3c.github.io/performance-timeline/#dom-performanceobserver-observe

View file

@ -32,8 +32,7 @@ void PerformanceObserverEntryList::initialize(JS::Realm& realm)
void PerformanceObserverEntryList::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
for (auto& entry : m_entry_list)
visitor.visit(entry);
visitor.visit(m_entry_list);
}
// https://www.w3.org/TR/performance-timeline/#dfn-filter-buffer-by-name-and-type

View file

@ -33,8 +33,7 @@ void ResizeObservation::visit_edges(JS::Cell::Visitor& visitor)
Base::visit_edges(visitor);
visitor.visit(m_realm);
visitor.visit(m_target);
for (auto& size : m_last_reported_sizes)
visitor.visit(size);
visitor.visit(m_last_reported_sizes);
}
// https://drafts.csswg.org/resize-observer-1/#dom-resizeobservation-isactive

View file

@ -43,12 +43,9 @@ void ResizeObserver::visit_edges(JS::Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_callback);
for (auto& observation : m_observation_targets)
visitor.visit(observation);
for (auto& observation : m_active_targets)
visitor.visit(observation);
for (auto& observation : m_skipped_targets)
visitor.visit(observation);
visitor.visit(m_observation_targets);
visitor.visit(m_active_targets);
visitor.visit(m_skipped_targets);
}
void ResizeObserver::finalize()

View file

@ -68,12 +68,9 @@ void ResizeObserverEntry::visit_edges(JS::Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_target);
for (auto& size : m_content_box_size)
visitor.visit(size);
for (auto& size : m_border_box_size)
visitor.visit(size);
for (auto& size : m_device_pixel_content_box_size)
visitor.visit(size);
visitor.visit(m_content_box_size);
visitor.visit(m_border_box_size);
visitor.visit(m_device_pixel_content_box_size);
visitor.visit(m_content_rect);
}

View file

@ -56,8 +56,7 @@ void ReadableStreamBYOBReader::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
ReadableStreamGenericReaderMixin::visit_edges(visitor);
for (auto& request : m_read_into_requests)
visitor.visit(request);
visitor.visit(m_read_into_requests);
}
class BYOBReaderReadIntoRequest : public ReadIntoRequest {

View file

@ -90,10 +90,8 @@ void AudioContext::initialize(JS::Realm& realm)
void AudioContext::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
for (auto& promise : m_pending_promises)
visitor.visit(promise);
for (auto& promise : m_pending_resume_promises)
visitor.visit(promise);
visitor.visit(m_pending_promises);
visitor.visit(m_pending_resume_promises);
}
// https://www.w3.org/TR/webaudio/#dom-audiocontext-getoutputtimestamp

View file

@ -192,9 +192,7 @@ struct WaitForAllResults : JS::Cell {
{
Base::visit_edges(visitor);
visitor.visit(success_steps);
for (auto& value : result) {
visitor.visit(value);
}
visitor.visit(result);
}
JS::NonnullGCPtr<JS::HeapFunction<void(Vector<JS::Value> const&)>> success_steps;

View file

@ -126,8 +126,7 @@ void PageClient::visit_edges(JS::Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_page);
for (auto document : m_console_clients.keys())
visitor.visit(document);
visitor.visit(m_console_clients);
}
ConnectionFromClient& PageClient::client() const