diff options
author | Andreas Kling <kling@serenityos.org> | 2023-05-07 07:43:21 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2023-05-07 10:47:30 +0200 |
commit | 4637d020c3bed24565e2d10b7267ef738e48d966 (patch) | |
tree | 99cd9b09a04161276eb474a859dc812c16a39d3a | |
parent | 97f0106eddb5254ce8c8abdfed3de75ddc6287b1 (diff) | |
download | serenity-4637d020c3bed24565e2d10b7267ef738e48d966.zip |
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.
-rw-r--r-- | Userland/Libraries/LibWeb/DOM/Node.h | 1 | ||||
-rw-r--r-- | Userland/Libraries/LibWeb/HTML/HTMLScriptElement.h | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/Userland/Libraries/LibWeb/DOM/Node.h b/Userland/Libraries/LibWeb/DOM/Node.h index 6fe2a5c2de..f0b3f486ba 100644 --- a/Userland/Libraries/LibWeb/DOM/Node.h +++ b/Userland/Libraries/LibWeb/DOM/Node.h @@ -89,6 +89,7 @@ public: virtual bool is_html_body_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_script_element() const { return false; } virtual bool is_html_template_element() const { return false; } virtual bool is_navigable_container() const { return false; } diff --git a/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.h b/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.h index 5b7a5e1fee..00ef528324 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.h +++ b/Userland/Libraries/LibWeb/HTML/HTMLScriptElement.h @@ -58,6 +58,8 @@ public: private: 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_fail() override; @@ -124,3 +126,8 @@ private: }; } + +namespace Web::DOM { +template<> +inline bool Node::fast_is<HTML::HTMLScriptElement>() const { return is_html_script_element(); } +} |