1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-30 22:38:12 +00:00

LibWeb: Add fast_is<T>() helper for HTMLScriptElement

This makes loading Google Groups quite a bit faster, as 20% of runtime
while loading was spent asking if DOM nodes are HTMLScriptElement.
This commit is contained in:
Andreas Kling 2023-05-07 07:43:21 +02:00
parent 97f0106edd
commit 4637d020c3
2 changed files with 8 additions and 0 deletions

View file

@ -89,6 +89,7 @@ public:
virtual bool is_html_body_element() const { return false; } virtual bool is_html_body_element() const { return false; }
virtual bool is_html_input_element() const { return false; } virtual bool is_html_input_element() const { return false; }
virtual bool is_html_progress_element() const { return false; } virtual bool is_html_progress_element() const { return false; }
virtual bool is_html_script_element() const { return false; }
virtual bool is_html_template_element() const { return false; } virtual bool is_html_template_element() const { return false; }
virtual bool is_navigable_container() const { return false; } virtual bool is_navigable_container() const { return false; }

View file

@ -58,6 +58,8 @@ public:
private: private:
HTMLScriptElement(DOM::Document&, DOM::QualifiedName); HTMLScriptElement(DOM::Document&, DOM::QualifiedName);
virtual bool is_html_script_element() const override { return true; }
virtual void resource_did_load() override; virtual void resource_did_load() override;
virtual void resource_did_fail() override; virtual void resource_did_fail() override;
@ -124,3 +126,8 @@ private:
}; };
} }
namespace Web::DOM {
template<>
inline bool Node::fast_is<HTML::HTMLScriptElement>() const { return is_html_script_element(); }
}