diff options
Diffstat (limited to 'components/script/dom/node.rs')
-rw-r--r-- | components/script/dom/node.rs | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 3c7df12b633..b8e3531508e 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -10,7 +10,7 @@ use std::default::Default; use std::ops::Range; use std::slice::from_ref; use std::sync::Arc as StdArc; -use std::{cmp, iter}; +use std::{cmp, fmt, iter}; use app_units::Au; use base::id::{BrowsingContextId, PipelineId}; @@ -168,6 +168,23 @@ pub struct Node { layout_data: DomRefCell<Option<Box<GenericLayoutData>>>, } +impl fmt::Debug for Node { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + if matches!(self.type_id(), NodeTypeId::Element(_)) { + let el = self.downcast::<Element>().unwrap(); + el.fmt(f) + } else { + write!(f, "[Node({:?})]", self.type_id()) + } + } +} + +impl fmt::Debug for DomRoot<Node> { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + (**self).fmt(f) + } +} + /// Flags for node items #[derive(Clone, Copy, JSTraceable, MallocSizeOf)] pub struct NodeFlags(u16); |