diff --git a/Userland/Libraries/LibWeb/DOM/Node.h b/Userland/Libraries/LibWeb/DOM/Node.h index 8e1818a754..5a3d62f099 100644 --- a/Userland/Libraries/LibWeb/DOM/Node.h +++ b/Userland/Libraries/LibWeb/DOM/Node.h @@ -75,6 +75,7 @@ public: virtual bool is_svg_container() const { return false; } virtual bool is_svg_element() const { return false; } virtual bool is_svg_svg_element() const { return false; } + virtual bool is_svg_use_element() const { return false; } bool in_a_document_tree() const; diff --git a/Userland/Libraries/LibWeb/SVG/SVGUseElement.h b/Userland/Libraries/LibWeb/SVG/SVGUseElement.h index eb118db513..f7affafc19 100644 --- a/Userland/Libraries/LibWeb/SVG/SVGUseElement.h +++ b/Userland/Libraries/LibWeb/SVG/SVGUseElement.h @@ -40,6 +40,8 @@ private: virtual JS::ThrowCompletionOr initialize(JS::Realm&) override; virtual void visit_edges(Cell::Visitor&) override; + virtual bool is_svg_use_element() const override { return true; } + Optional parse_id_from_href(DeprecatedString const& href); JS::GCPtr referenced_element(); @@ -56,3 +58,10 @@ private: }; } + +namespace Web::DOM { + +template<> +inline bool Node::fast_is() const { return is_svg_use_element(); } + +}