aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/customevent.rs
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2014-11-12 14:23:52 -0500
committerJosh Matthews <josh@joshmatthews.net>2014-11-13 12:53:54 -0500
commitc23edf6f5a020f24008c84957c1a290241632c6d (patch)
tree64428ac6615df95fabb298f0aeb274fc10f947c7 /components/script/dom/customevent.rs
parent642a3592c7ea1b82e3a3a660370b9871aa5b5e96 (diff)
downloadservo-c23edf6f5a020f24008c84957c1a290241632c6d.tar.gz
servo-c23edf6f5a020f24008c84957c1a290241632c6d.zip
Short-circuit initFooEvent while dispatching events.
Diffstat (limited to 'components/script/dom/customevent.rs')
-rw-r--r--components/script/dom/customevent.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/components/script/dom/customevent.rs b/components/script/dom/customevent.rs
index 3cad0e2ddba..e1ac0125bb8 100644
--- a/components/script/dom/customevent.rs
+++ b/components/script/dom/customevent.rs
@@ -65,8 +65,12 @@ impl<'a> CustomEventMethods for JSRef<'a, CustomEvent> {
can_bubble: bool,
cancelable: bool,
detail: JSVal) {
- self.detail.set(detail);
let event: JSRef<Event> = EventCast::from_ref(self);
+ if event.dispatching() {
+ return;
+ }
+
+ self.detail.set(detail);
event.InitEvent(type_, can_bubble, cancelable);
}
}