mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-22 17:29:01 +00:00
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:
parent
98cf845d8a
commit
c0d7f748ed
Notes:
sideshowbarker
2024-07-16 22:11:09 +09:00
Author: https://github.com/awesomekling
Commit: c0d7f748ed
Pull-request: https://github.com/SerenityOS/serenity/pull/23606
284 changed files with 291 additions and 283 deletions
|
@ -42,7 +42,7 @@ Headers::~Headers() = default;
|
|||
void Headers::initialize(JS::Realm& realm)
|
||||
{
|
||||
Base::initialize(realm);
|
||||
set_prototype(&Bindings::ensure_web_prototype<Bindings::HeadersPrototype>(realm, "Headers"_fly_string));
|
||||
WEB_SET_PROTOTYPE_FOR_INTERFACE(Headers);
|
||||
}
|
||||
|
||||
void Headers::visit_edges(JS::Cell::Visitor& visitor)
|
||||
|
|
|
@ -42,7 +42,7 @@ HeadersIterator::~HeadersIterator() = default;
|
|||
void HeadersIterator::initialize(JS::Realm& realm)
|
||||
{
|
||||
Base::initialize(realm);
|
||||
set_prototype(&Bindings::ensure_web_prototype<Bindings::HeadersIteratorPrototype>(realm, "HeadersIterator"_fly_string));
|
||||
WEB_SET_PROTOTYPE_FOR_INTERFACE(HeadersIterator);
|
||||
}
|
||||
|
||||
void HeadersIterator::visit_edges(JS::Cell::Visitor& visitor)
|
||||
|
|
|
@ -34,7 +34,7 @@ Request::~Request() = default;
|
|||
void Request::initialize(JS::Realm& realm)
|
||||
{
|
||||
Base::initialize(realm);
|
||||
set_prototype(&Bindings::ensure_web_prototype<Bindings::RequestPrototype>(realm, "Request"_fly_string));
|
||||
WEB_SET_PROTOTYPE_FOR_INTERFACE(Request);
|
||||
}
|
||||
|
||||
void Request::visit_edges(Cell::Visitor& visitor)
|
||||
|
|
|
@ -31,7 +31,7 @@ Response::~Response() = default;
|
|||
void Response::initialize(JS::Realm& realm)
|
||||
{
|
||||
Base::initialize(realm);
|
||||
set_prototype(&Bindings::ensure_web_prototype<Bindings::ResponsePrototype>(realm, "Response"_fly_string));
|
||||
WEB_SET_PROTOTYPE_FOR_INTERFACE(Response);
|
||||
}
|
||||
|
||||
void Response::visit_edges(Cell::Visitor& visitor)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue