aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/script')
-rw-r--r--src/components/script/dom/performance.rs4
-rw-r--r--src/components/script/dom/testbinding.rs12
-rw-r--r--src/components/script/dom/validitystate.rs5
3 files changed, 12 insertions, 9 deletions
diff --git a/src/components/script/dom/performance.rs b/src/components/script/dom/performance.rs
index 13910eb701d..fca1b6d4ebf 100644
--- a/src/components/script/dom/performance.rs
+++ b/src/components/script/dom/performance.rs
@@ -7,7 +7,6 @@ use dom::bindings::js::{JS, JSRef, Temporary};
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::performancetiming::{PerformanceTiming, PerformanceTimingMethods};
use dom::window::Window;
-
use time;
pub type DOMHighResTimeStamp = f64;
@@ -20,9 +19,10 @@ pub struct Performance {
impl Performance {
fn new_inherited(window: &JSRef<Window>) -> Performance {
+ let timing = PerformanceTiming::new(window).root().root_ref().unrooted();
Performance {
reflector_: Reflector::new(),
- timing: PerformanceTiming::new(window).root().root_ref().unrooted(),
+ timing: timing,
}
}
diff --git a/src/components/script/dom/testbinding.rs b/src/components/script/dom/testbinding.rs
index 4b753785e10..ce2a2841f8c 100644
--- a/src/components/script/dom/testbinding.rs
+++ b/src/components/script/dom/testbinding.rs
@@ -15,10 +15,12 @@ use servo_util::str::DOMString;
use js::jsapi::JSContext;
use js::jsval::{JSVal, NullValue};
+use std::cell::Cell;
+
#[deriving(Encodable)]
pub struct TestBinding {
pub reflector: Reflector,
- pub window: JS<Window>,
+ pub window: Cell<JS<Window>>,
}
pub trait TestBindingMethods {
@@ -243,19 +245,19 @@ pub trait TestBindingMethods {
impl<'a> TestBindingMethods for JSRef<'a, TestBinding> {
fn InterfaceAttribute(&self) -> Temporary<Blob> {
- let window = self.window.root();
+ let window = self.window.get().root();
Blob::new(&*window)
}
fn GetInterfaceAttributeNullable(&self) -> Option<Temporary<Blob>> {
- let window = self.window.root();
+ let window = self.window.get().root();
Some(Blob::new(&*window))
}
fn ReceiveInterface(&self) -> Temporary<Blob> {
- let window = self.window.root();
+ let window = self.window.get().root();
Blob::new(&*window)
}
fn ReceiveNullableInterface(&self) -> Option<Temporary<Blob>> {
- let window = self.window.root();
+ let window = self.window.get().root();
Some(Blob::new(&*window))
}
}
diff --git a/src/components/script/dom/validitystate.rs b/src/components/script/dom/validitystate.rs
index ffb7ca95864..f4c4aa114cf 100644
--- a/src/components/script/dom/validitystate.rs
+++ b/src/components/script/dom/validitystate.rs
@@ -6,11 +6,12 @@ use dom::bindings::codegen::BindingDeclarations::ValidityStateBinding;
use dom::bindings::js::{JS, JSRef, Temporary};
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::window::Window;
+use std::cell::Cell;
#[deriving(Encodable)]
pub struct ValidityState {
pub reflector_: Reflector,
- pub window: JS<Window>,
+ pub window: Cell<JS<Window>>,
pub state: u8,
}
@@ -18,7 +19,7 @@ impl ValidityState {
pub fn new_inherited(window: &JSRef<Window>) -> ValidityState {
ValidityState {
reflector_: Reflector::new(),
- window: window.unrooted(),
+ window: Cell::new(window.unrooted()),
state: 0,
}
}