LibWeb: Avoid FlyString lookups when setting IDL interface prototypes

This commit introduces a WEB_SET_PROTOTYPE_FOR_INTERFACE macro that
caches the interface name in a local static FlyString. This means that
we only pay for FlyString-from-literal lookup once per browser lifetime
instead of every time the interface is instantiated.
This commit is contained in:
Andreas Kling
2024-03-16 13:13:08 +01:00
parent 98cf845d8a
commit c0d7f748ed
284 changed files with 291 additions and 283 deletions

View File

@@ -806,7 +806,7 @@ WebIDL::ExceptionOr<void> Window::initialize_web_interfaces(Badge<WindowEnvironm
auto& realm = this->realm();
add_window_exposed_interfaces(*this);
Object::set_prototype(&Bindings::ensure_web_prototype<Bindings::WindowPrototype>(realm, "Window"_fly_string));
WEB_SET_PROTOTYPE_FOR_INTERFACE(Window);
Bindings::WindowGlobalMixin::initialize(realm, *this);
WindowOrWorkerGlobalScopeMixin::initialize(realm);