diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs index d45407a51fe..2cec78b48cc 100644 --- a/components/script/dom/event.rs +++ b/components/script/dom/event.rs @@ -19,7 +19,7 @@ use std::default::Default; use time; -#[derive(JSTraceable, Copy, Clone)] +#[derive(JSTraceable, Copy, Clone, Debug, PartialEq, Eq)] #[repr(u16)] #[derive(HeapSizeOf)] pub enum EventPhase { @@ -136,6 +136,11 @@ impl Event { self.target.set(Some(JS::from_ref(val))); } + #[inline] + pub fn phase(&self) -> EventPhase { + self.phase.get() + } + #[inline] pub fn set_phase(&self, val: EventPhase) { self.phase.set(val) diff --git a/components/script/dom/eventdispatcher.rs b/components/script/dom/eventdispatcher.rs index 3e1b9d83d7b..33c07c69bb0 100644 --- a/components/script/dom/eventdispatcher.rs +++ b/components/script/dom/eventdispatcher.rs @@ -91,6 +91,8 @@ pub fn dispatch_event(target: &EventTarget, pseudo_target: Option<&EventTarget>, event: &Event) -> bool { assert!(!event.dispatching()); assert!(event.initialized()); + assert_eq!(event.phase(), EventPhase::None); + assert!(event.GetCurrentTarget().is_none()); event.set_target(match pseudo_target { Some(pseudo_target) => pseudo_target,