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()); assert!(!event.stop_immediate());
/* bubbling */ /* bubbling */
if event.bubbles() { if !event.bubbles() {
event.set_phase(EventPhase::Bubbling); return;
}
event.set_phase(EventPhase::Bubbling);
for cur_target in chain { for cur_target in chain {
if let Some(listeners) = cur_target.get_listeners_for(&type_, ListenerPhase::Bubbling) { if let Some(listeners) = cur_target.get_listeners_for(&type_, ListenerPhase::Bubbling) {
event.set_current_target(cur_target); event.set_current_target(cur_target);
@ -125,7 +127,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 // See https://dom.spec.whatwg.org/#concept-event-dispatch for the full dispatch algorithm