aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/eventtarget.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/eventtarget.rs')
-rw-r--r--components/script/dom/eventtarget.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs
index df15ff1b2bc..3d028a00cdb 100644
--- a/components/script/dom/eventtarget.rs
+++ b/components/script/dom/eventtarget.rs
@@ -277,6 +277,12 @@ impl EventListeners {
}
}).collect()
}
+
+ fn has_listeners(&self) -> bool {
+ // TODO: add, and take into account, a 'removed' field?
+ // https://dom.spec.whatwg.org/#event-listener-removed
+ self.0.len() > 0
+ }
}
#[dom_struct]
@@ -303,6 +309,15 @@ impl EventTarget {
Ok(EventTarget::new(global))
}
+ pub fn has_listeners_for(&self,
+ type_: &Atom)
+ -> bool {
+ match self.handlers.borrow().get(type_) {
+ Some(listeners) => listeners.has_listeners(),
+ None => false
+ }
+ }
+
pub fn get_listeners_for(&self,
type_: &Atom,
specific_phase: Option<ListenerPhase>)