aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/window.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/window.rs')
-rw-r--r--components/script/dom/window.rs27
1 files changed, 14 insertions, 13 deletions
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index d0c33ebc1ca..f48fb5a2e43 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
use dom::bindings::codegen::InheritTypes::EventTargetCast;
use dom::bindings::error::{Fallible, InvalidCharacter};
use dom::bindings::global;
-use dom::bindings::js::{JS, JSRef, Temporary, OptionalSettable};
+use dom::bindings::js::{MutNullableJS, JS, JSRef, Temporary, OptionalSettable};
use dom::bindings::trace::{Traceable, Untraceable};
use dom::bindings::utils::{Reflectable, Reflector};
use dom::browsercontext::BrowserContext;
@@ -44,6 +44,7 @@ use std::cell::{Cell, RefCell};
use std::cmp;
use std::comm::{channel, Sender};
use std::comm::Select;
+use std::default::Default;
use std::hash::{Hash, sip};
use std::io::timer::Timer;
use std::ptr;
@@ -81,16 +82,16 @@ pub struct Window {
eventtarget: EventTarget,
pub script_chan: ScriptChan,
pub control_chan: ScriptControlChan,
- console: Cell<Option<JS<Console>>>,
- location: Cell<Option<JS<Location>>>,
- navigator: Cell<Option<JS<Navigator>>>,
+ console: MutNullableJS<Console>,
+ location: MutNullableJS<Location>,
+ navigator: MutNullableJS<Navigator>,
pub image_cache_task: ImageCacheTask,
pub active_timers: Traceable<RefCell<HashMap<TimerId, TimerHandle>>>,
next_timer_handle: Traceable<Cell<i32>>,
pub compositor: Untraceable<Box<ScriptListener+'static>>,
pub browser_context: Traceable<RefCell<Option<BrowserContext>>>,
pub page: Rc<Page>,
- performance: Cell<Option<JS<Performance>>>,
+ performance: MutNullableJS<Performance>,
pub navigationStart: u64,
pub navigationStartPrecise: f64,
screen: Cell<Option<JS<Screen>>>,
@@ -225,7 +226,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> {
let location = Location::new(self, page);
self.location.assign(Some(location));
}
- Temporary::new(self.location.get().as_ref().unwrap().clone())
+ self.location.get().unwrap()
}
fn Console(self) -> Temporary<Console> {
@@ -233,7 +234,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> {
let console = Console::new(&global::Window(self));
self.console.assign(Some(console));
}
- Temporary::new(self.console.get().as_ref().unwrap().clone())
+ self.console.get().unwrap()
}
fn Navigator(self) -> Temporary<Navigator> {
@@ -241,7 +242,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> {
let navigator = Navigator::new(self);
self.navigator.assign(Some(navigator));
}
- Temporary::new(self.navigator.get().as_ref().unwrap().clone())
+ self.navigator.get().unwrap()
}
fn SetTimeout(self, _cx: *mut JSContext, callback: JSVal, timeout: i32) -> i32 {
@@ -289,7 +290,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> {
let performance = Performance::new(self);
self.performance.assign(Some(performance));
}
- Temporary::new(self.performance.get().as_ref().unwrap().clone())
+ self.performance.get().unwrap()
}
fn GetOnclick(self) -> Option<EventHandlerNonNull> {
@@ -529,16 +530,16 @@ impl Window {
eventtarget: EventTarget::new_inherited(WindowTypeId),
script_chan: script_chan,
control_chan: control_chan,
- console: Cell::new(None),
+ console: Default::default(),
compositor: Untraceable::new(compositor),
page: page,
- location: Cell::new(None),
- navigator: Cell::new(None),
+ location: Default::default(),
+ navigator: Default::default(),
image_cache_task: image_cache_task,
active_timers: Traceable::new(RefCell::new(HashMap::new())),
next_timer_handle: Traceable::new(Cell::new(0)),
browser_context: Traceable::new(RefCell::new(None)),
- performance: Cell::new(None),
+ performance: Default::default(),
navigationStart: time::get_time().sec as u64,
navigationStartPrecise: time::precise_time_s(),
screen: Cell::new(None),