Browse Source

LibWeb: Add fast way to check if a DOM node is an SVG element

Andreas Kling 2 years ago
parent
commit
dd19f61538
2 changed files with 11 additions and 0 deletions
  1. 1 0
      Userland/Libraries/LibWeb/DOM/Node.h
  2. 10 0
      Userland/Libraries/LibWeb/SVG/SVGElement.h

+ 1 - 0
Userland/Libraries/LibWeb/DOM/Node.h

@@ -73,6 +73,7 @@ public:
 
     virtual bool requires_svg_container() const { return false; }
     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; }
 
     bool in_a_document_tree() const;

+ 10 - 0
Userland/Libraries/LibWeb/SVG/SVGElement.h

@@ -26,6 +26,16 @@ protected:
     virtual void visit_edges(Cell::Visitor&) override;
 
     JS::GCPtr<HTML::DOMStringMap> m_dataset;
+
+private:
+    virtual bool is_svg_element() const final { return true; }
 };
 
 }
+
+namespace Web::DOM {
+
+template<>
+inline bool Node::fast_is<SVG::SVGElement>() const { return is_svg_element(); }
+
+}