diff options
Diffstat (limited to 'components/script/dom/eventdispatcher.rs')
-rw-r--r-- | components/script/dom/eventdispatcher.rs | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/components/script/dom/eventdispatcher.rs b/components/script/dom/eventdispatcher.rs index 9df978fa589..2b0e1942843 100644 --- a/components/script/dom/eventdispatcher.rs +++ b/components/script/dom/eventdispatcher.rs @@ -150,8 +150,7 @@ pub fn dispatch_event(target: &EventTarget, pseudo_target: Option<&EventTarget>, let mut chain: RootedVec<JS<EventTarget>> = RootedVec::new(); if let Some(target_node) = target.downcast::<Node>() { for ancestor in target_node.ancestors() { - let ancestor_target = ancestor.upcast::<EventTarget>(); - chain.push(JS::from_ref(ancestor_target)) + chain.push(JS::from_ref(ancestor.upcast())); } } @@ -161,13 +160,9 @@ pub fn dispatch_event(target: &EventTarget, pseudo_target: Option<&EventTarget>, let target = event.GetTarget(); match target { Some(ref target) => { - let node: Option<&Node> = target.downcast::<Node>(); - match node { - Some(node) => { - let vtable = vtable_for(&node); - vtable.handle_event(event); - } - None => {} + if let Some(node) = target.downcast::<Node>() { + let vtable = vtable_for(&node); + vtable.handle_event(event); } } None => {} |