aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/event.rs
diff options
context:
space:
mode:
authorrohan.prinja <rohan.prinja@samsung.com>2015-11-03 19:01:23 +0900
committerrohan.prinja <rohan.prinja@samsung.com>2015-11-03 19:01:23 +0900
commit6e774ea6eb6d719b98f924ab5bd0629d92fb27d0 (patch)
treefa48b89bb313a2e9514124b556bbcff5ed526a0f /components/script/dom/event.rs
parent7032a5d1dee9bb2ba0bee45f1fda984dadfa0609 (diff)
parent4f51710ed387baa1ad0a6e4cdb0fc5eee44093d5 (diff)
downloadservo-6e774ea6eb6d719b98f924ab5bd0629d92fb27d0.tar.gz
servo-6e774ea6eb6d719b98f924ab5bd0629d92fb27d0.zip
merge from master
Diffstat (limited to 'components/script/dom/event.rs')
-rw-r--r--components/script/dom/event.rs18
1 files changed, 12 insertions, 6 deletions
diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs
index 34db84f561c..c0a6a9a19aa 100644
--- a/components/script/dom/event.rs
+++ b/components/script/dom/event.rs
@@ -13,6 +13,7 @@ use dom::eventtarget::EventTarget;
use std::borrow::ToOwned;
use std::cell::Cell;
use std::default::Default;
+use string_cache::Atom;
use time;
use util::str::DOMString;
@@ -43,7 +44,7 @@ pub struct Event {
reflector_: Reflector,
current_target: MutNullableHeap<JS<EventTarget>>,
target: MutNullableHeap<JS<EventTarget>>,
- type_: DOMRefCell<DOMString>,
+ type_: DOMRefCell<Atom>,
phase: Cell<EventPhase>,
canceled: Cell<bool>,
stop_propagation: Cell<bool>,
@@ -62,15 +63,15 @@ impl Event {
reflector_: Reflector::new(),
current_target: Default::default(),
target: Default::default(),
+ type_: DOMRefCell::new(atom!("")),
phase: Cell::new(EventPhase::None),
- type_: DOMRefCell::new("".to_owned()),
canceled: Cell::new(false),
+ stop_propagation: Cell::new(false),
+ stop_immediate: Cell::new(false),
cancelable: Cell::new(false),
bubbles: Cell::new(false),
trusted: Cell::new(false),
dispatching: Cell::new(false),
- stop_propagation: Cell::new(false),
- stop_immediate: Cell::new(false),
initialized: Cell::new(false),
timestamp: time::get_time().sec as u64,
}
@@ -153,6 +154,11 @@ impl Event {
pub fn initialized(&self) -> bool {
self.initialized.get()
}
+
+ #[inline]
+ pub fn type_(&self) -> Atom {
+ self.type_.borrow().clone()
+ }
}
impl EventMethods for Event {
@@ -163,7 +169,7 @@ impl EventMethods for Event {
// https://dom.spec.whatwg.org/#dom-event-type
fn Type(&self) -> DOMString {
- self.type_.borrow().clone()
+ (*self.type_()).to_owned()
}
// https://dom.spec.whatwg.org/#dom-event-target
@@ -229,7 +235,7 @@ impl EventMethods for Event {
self.canceled.set(false);
self.trusted.set(false);
self.target.set(None);
- *self.type_.borrow_mut() = type_;
+ *self.type_.borrow_mut() = Atom::from_slice(&type_);
self.bubbles.set(bubbles);
self.cancelable.set(cancelable);
}