diff options
Diffstat (limited to 'components/script/dom/eventtarget.rs')
-rw-r--r-- | components/script/dom/eventtarget.rs | 15 |
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>) |