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.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs
index 5de65567595..1d80781a2fb 100644
--- a/components/script/dom/eventtarget.rs
+++ b/components/script/dom/eventtarget.rs
@@ -404,9 +404,15 @@ impl EventTarget {
});
match idx {
- Some(idx) => {
- entries[idx].listener =
- EventListenerType::Inline(listener.unwrap_or(InlineEventListener::Null));
+ Some(idx) => match listener {
+ // Replace if there's something to replace with,
+ // but remove entirely if there isn't.
+ Some(listener) => {
+ entries[idx].listener = EventListenerType::Inline(listener);
+ },
+ None => {
+ entries.remove(idx);
+ },
},
None => {
if let Some(listener) = listener {