summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/DOM
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2022-03-13 17:21:27 +0100
committerAndreas Kling <kling@serenityos.org>2022-03-13 18:09:43 +0100
commitafc5fade054a4d0e62a81e8678f3fc593133b728 (patch)
treeb33466430b7a55031fcd40990b63fef61eb9df19 /Userland/Libraries/LibWeb/DOM
parent74fda2a7618b00920371ca5e4689c3c3907495d2 (diff)
downloadserenity-afc5fade054a4d0e62a81e8678f3fc593133b728.zip
LibWeb: Add some fast_is<T> helpers for hot classes on GitHub :^)
Diffstat (limited to 'Userland/Libraries/LibWeb/DOM')
-rw-r--r--Userland/Libraries/LibWeb/DOM/Node.h1
-rw-r--r--Userland/Libraries/LibWeb/DOM/ShadowRoot.h4
2 files changed, 5 insertions, 0 deletions
diff --git a/Userland/Libraries/LibWeb/DOM/Node.h b/Userland/Libraries/LibWeb/DOM/Node.h
index 02d59dc6fb..4af2f3f720 100644
--- a/Userland/Libraries/LibWeb/DOM/Node.h
+++ b/Userland/Libraries/LibWeb/DOM/Node.h
@@ -72,6 +72,7 @@ public:
bool is_parent_node() const { return is_element() || is_document() || is_document_fragment(); }
bool is_slottable() const { return is_element() || is_text(); }
bool is_attribute() const { return type() == NodeType::ATTRIBUTE_NODE; }
+ virtual bool is_shadow_root() const { return false; }
virtual bool requires_svg_container() const { return false; }
virtual bool is_svg_container() const { return false; }
diff --git a/Userland/Libraries/LibWeb/DOM/ShadowRoot.h b/Userland/Libraries/LibWeb/DOM/ShadowRoot.h
index 7ea5ca32ff..f550c0e5cb 100644
--- a/Userland/Libraries/LibWeb/DOM/ShadowRoot.h
+++ b/Userland/Libraries/LibWeb/DOM/ShadowRoot.h
@@ -34,6 +34,7 @@ public:
private:
// ^Node
virtual FlyString node_name() const override { return "#shadow-root"; }
+ virtual bool is_shadow_root() const final { return true; }
// NOTE: The specification doesn't seem to specify a default value for closed. Assuming false for now.
bool m_closed { false };
@@ -41,4 +42,7 @@ private:
bool m_available_to_element_internals { false };
};
+template<>
+inline bool Node::fast_is<ShadowRoot>() const { return is_shadow_root(); }
+
}