ladybird/Libraries/LibWeb/HTML/EventLoop
Andreas Kling b5babda288 LibWeb: Cache UniversalGlobalScopeMixin pointer on ESO
Avoid expensive cross-hierarchy dynamic_cast from JS::Object to
UniversalGlobalScopeMixin on every microtask checkpoint.

Since UniversalGlobalScopeMixin is not in the JS::Object
inheritance chain, as<UniversalGlobalScopeMixin>(JS::Object&)
falls through to dynamic_cast, which is very costly. Profiling
showed this taking ~14% of total CPU time.

Add EnvironmentSettingsObject::universal_global_scope() backed
by a pointer cached eagerly during initialization.
2026-03-24 08:28:47 +01:00
..
EventLoop.cpp LibWeb: Cache UniversalGlobalScopeMixin pointer on ESO 2026-03-24 08:28:47 +01:00
EventLoop.h LibWeb+AK: Use AK::Queue for the microtask queue 2026-03-16 09:38:20 +01:00
Task.cpp LibWeb: Remove tasks for destroyed documents when filtering on tasks 2026-03-22 14:26:50 -05:00
Task.h LibWeb: Remove tasks for destroyed documents when filtering on tasks 2026-03-22 14:26:50 -05:00
TaskQueue.cpp LibWeb: Remove tasks for destroyed documents when filtering on tasks 2026-03-22 14:26:50 -05:00
TaskQueue.h LibGC: Rename MarkedVector => RootVector 2024-12-26 19:10:44 +01:00