mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 14:27:35 +00:00
LibWeb: Add some fast_is<T> helpers for hot classes on GitHub :^)
This commit is contained in:
parent
74fda2a761
commit
afc5fade05
5 changed files with 16 additions and 0 deletions
|
@ -72,6 +72,7 @@ public:
|
||||||
bool is_parent_node() const { return is_element() || is_document() || is_document_fragment(); }
|
bool is_parent_node() const { return is_element() || is_document() || is_document_fragment(); }
|
||||||
bool is_slottable() const { return is_element() || is_text(); }
|
bool is_slottable() const { return is_element() || is_text(); }
|
||||||
bool is_attribute() const { return type() == NodeType::ATTRIBUTE_NODE; }
|
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 requires_svg_container() const { return false; }
|
||||||
virtual bool is_svg_container() const { return false; }
|
virtual bool is_svg_container() const { return false; }
|
||||||
|
|
|
@ -34,6 +34,7 @@ public:
|
||||||
private:
|
private:
|
||||||
// ^Node
|
// ^Node
|
||||||
virtual FlyString node_name() const override { return "#shadow-root"; }
|
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.
|
// NOTE: The specification doesn't seem to specify a default value for closed. Assuming false for now.
|
||||||
bool m_closed { false };
|
bool m_closed { false };
|
||||||
|
@ -41,4 +42,7 @@ private:
|
||||||
bool m_available_to_element_internals { false };
|
bool m_available_to_element_internals { false };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template<>
|
||||||
|
inline bool Node::fast_is<ShadowRoot>() const { return is_shadow_root(); }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,7 @@ public:
|
||||||
CSS::ListStyleType list_style_type() const { return m_list_style_type; }
|
CSS::ListStyleType list_style_type() const { return m_list_style_type; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
virtual bool is_list_item_marker_box() const final { return true; }
|
||||||
virtual bool can_have_children() const override { return false; }
|
virtual bool can_have_children() const override { return false; }
|
||||||
|
|
||||||
CSS::ListStyleType m_list_style_type { CSS::ListStyleType::None };
|
CSS::ListStyleType m_list_style_type { CSS::ListStyleType::None };
|
||||||
|
@ -32,4 +33,7 @@ private:
|
||||||
String m_text {};
|
String m_text {};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template<>
|
||||||
|
inline bool Node::fast_is<ListItemMarkerBox>() const { return is_list_item_marker_box(); }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,6 +74,8 @@ public:
|
||||||
virtual bool is_svg_box() const { return false; }
|
virtual bool is_svg_box() const { return false; }
|
||||||
virtual bool is_svg_geometry_box() const { return false; }
|
virtual bool is_svg_geometry_box() const { return false; }
|
||||||
virtual bool is_label() const { return false; }
|
virtual bool is_label() const { return false; }
|
||||||
|
virtual bool is_replaced_box() const { return false; }
|
||||||
|
virtual bool is_list_item_marker_box() const { return false; }
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
bool fast_is() const = delete;
|
bool fast_is() const = delete;
|
||||||
|
|
|
@ -32,9 +32,14 @@ public:
|
||||||
virtual bool can_have_children() const override { return false; }
|
virtual bool can_have_children() const override { return false; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
virtual bool is_replaced_box() const final { return true; }
|
||||||
|
|
||||||
Optional<float> m_intrinsic_width;
|
Optional<float> m_intrinsic_width;
|
||||||
Optional<float> m_intrinsic_height;
|
Optional<float> m_intrinsic_height;
|
||||||
Optional<float> m_intrinsic_aspect_ratio;
|
Optional<float> m_intrinsic_aspect_ratio;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template<>
|
||||||
|
inline bool Node::fast_is<ReplacedBox>() const { return is_replaced_box(); }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue