diff --git a/Libraries/LibWeb/HTML/EventLoop/EventLoop.cpp b/Libraries/LibWeb/HTML/EventLoop/EventLoop.cpp
index 1093c7e7bc5..ed0960a9b55 100644
--- a/Libraries/LibWeb/HTML/EventLoop/EventLoop.cpp
+++ b/Libraries/LibWeb/HTML/EventLoop/EventLoop.cpp
@@ -594,7 +594,8 @@ void EventLoop::perform_a_microtask_checkpoint()
}
// 4. For each environment settings object settingsObject whose responsible event loop is this event loop, notify about rejected promises given settingsObject's global object.
- for (auto& environment_settings_object : m_related_environment_settings_objects) {
+ auto environments = GC::RootVector { heap(), m_related_environment_settings_objects };
+ for (auto& environment_settings_object : environments) {
auto* global = dynamic_cast(&environment_settings_object->global_object());
VERIFY(global);
global->notify_about_rejected_promises({});