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/errorevent.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/errorevent.rs')
-rw-r--r-- | components/script/dom/errorevent.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/components/script/dom/errorevent.rs b/components/script/dom/errorevent.rs index 75c782becf9..8451527821d 100644 --- a/components/script/dom/errorevent.rs +++ b/components/script/dom/errorevent.rs @@ -16,6 +16,7 @@ use dom::event::{Event, EventBubbles, EventCancelable}; use js::jsapi::{RootedValue, HandleValue, JSContext}; use js::jsval::JSVal; use std::cell::Cell; +use string_cache::Atom; use util::str::DOMString; #[dom_struct] @@ -48,7 +49,7 @@ impl ErrorEvent { } pub fn new(global: GlobalRef, - type_: DOMString, + type_: Atom, bubbles: EventBubbles, cancelable: EventCancelable, message: DOMString, @@ -59,8 +60,8 @@ impl ErrorEvent { let ev = ErrorEvent::new_uninitialized(global); { let event = ev.upcast::<Event>(); - event.InitEvent(type_, bubbles == EventBubbles::Bubbles, - cancelable == EventCancelable::Cancelable); + event.init_event(type_, bubbles == EventBubbles::Bubbles, + cancelable == EventCancelable::Cancelable); *ev.message.borrow_mut() = message; *ev.filename.borrow_mut() = filename; ev.lineno.set(lineno); @@ -98,7 +99,7 @@ impl ErrorEvent { // Dictionaries need to be rooted // https://github.com/servo/servo/issues/6381 let error = RootedValue::new(global.get_cx(), init.error); - let event = ErrorEvent::new(global, type_, + let event = ErrorEvent::new(global, Atom::from(&*type_), bubbles, cancelable, msg, file_name, line_num, col_num, |