Pārlūkot izejas kodu

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.
Andreas Kling 2 gadi atpakaļ
vecāks
revīzija
4637d020c3

+ 1 - 0
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; }
 

+ 7 - 0
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(); }
+}