Use an early return in dispatch_to_listeners.

This commit is contained in:
Ms2ger 2015-09-15 14:28:35 +02:00
parent b7a0440f91
commit e85b1e4e89

View file

@ -106,9 +106,11 @@ fn dispatch_to_listeners(event: &Event, target: &EventTarget, chain: &[&EventTar
assert!(!event.stop_immediate());
/* bubbling */
if event.bubbles() {
event.set_phase(EventPhase::Bubbling);
if !event.bubbles() {
return;
}
event.set_phase(EventPhase::Bubbling);
for cur_target in chain {
if let Some(listeners) = cur_target.get_listeners_for(&type_, ListenerPhase::Bubbling) {
event.set_current_target(cur_target);
@ -126,7 +128,6 @@ fn dispatch_to_listeners(event: &Event, target: &EventTarget, chain: &[&EventTar
}
}
}
}
// See https://dom.spec.whatwg.org/#concept-event-dispatch for the full dispatch algorithm
pub fn dispatch_event(target: &EventTarget, pseudo_target: Option<&EventTarget>,