diff options
author | Corey Farwell <coreyf@rwell.org> | 2015-12-10 22:06:05 -0500 |
---|---|---|
committer | Corey Farwell <coreyf@rwell.org> | 2015-12-10 23:47:25 -0500 |
commit | 4accaf50b21a6344e9ee7518f7ab07c1dde7c36c (patch) | |
tree | 36d486ba0e57440a7a69e14829814e7ad5006712 /components/script/dom/messageevent.rs | |
parent | 996c0a60b81e7d7e0fbfea81a546771ea9327df6 (diff) | |
download | servo-4accaf50b21a6344e9ee7518f7ab07c1dde7c36c.tar.gz servo-4accaf50b21a6344e9ee7518f7ab07c1dde7c36c.zip |
Pass around event types as Atoms instead of Strings
`Event` internally stores the `type` as an `Atom`, and we're `String`s
everywhere, which can cause unnecessary allocations to occur since
they'll end up as `Atom`s anyways.
Diffstat (limited to 'components/script/dom/messageevent.rs')
-rw-r--r-- | components/script/dom/messageevent.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/components/script/dom/messageevent.rs b/components/script/dom/messageevent.rs index e0dc835282b..6f7805c120d 100644 --- a/components/script/dom/messageevent.rs +++ b/components/script/dom/messageevent.rs @@ -15,6 +15,7 @@ use dom::eventtarget::EventTarget; use js::jsapi::{RootedValue, HandleValue, Heap, JSContext}; use js::jsval::JSVal; use std::default::Default; +use string_cache::Atom; use util::str::DOMString; #[dom_struct] @@ -47,14 +48,14 @@ impl MessageEvent { reflect_dom_object(ev, global, MessageEventBinding::Wrap) } - pub fn new(global: GlobalRef, type_: DOMString, + pub fn new(global: GlobalRef, type_: Atom, bubbles: bool, cancelable: bool, data: HandleValue, origin: DOMString, lastEventId: DOMString) -> Root<MessageEvent> { let ev = MessageEvent::new_initialized(global, data, origin, lastEventId); { let event = ev.upcast::<Event>(); - event.InitEvent(type_, bubbles, cancelable); + event.init_event(type_, bubbles, cancelable); } ev } @@ -66,7 +67,7 @@ impl MessageEvent { // Dictionaries need to be rooted // https://github.com/servo/servo/issues/6381 let data = RootedValue::new(global.get_cx(), init.data); - let ev = MessageEvent::new(global, type_, init.parent.bubbles, init.parent.cancelable, + let ev = MessageEvent::new(global, Atom::from(&*type_), init.parent.bubbles, init.parent.cancelable, data.handle(), init.origin.clone(), init.lastEventId.clone()); Ok(ev) @@ -78,7 +79,7 @@ impl MessageEvent { scope: GlobalRef, message: HandleValue) { let messageevent = MessageEvent::new( - scope, DOMString::from("message"), false, false, message, + scope, atom!("message"), false, false, message, DOMString::new(), DOMString::new()); messageevent.upcast::<Event>().fire(target); } |