diff options
Diffstat (limited to 'src/components/script/dom/window.rs')
-rw-r--r-- | src/components/script/dom/window.rs | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/components/script/dom/window.rs b/src/components/script/dom/window.rs index 867c1da8812..15a17671d7e 100644 --- a/src/components/script/dom/window.rs +++ b/src/components/script/dom/window.rs @@ -282,7 +282,7 @@ impl Window { compositor: ~ScriptListener, image_cache_task: ImageCacheTask) -> JS<Window> { - let mut win = ~Window { + let win = ~Window { eventtarget: EventTarget::new_inherited(WindowTypeId), script_chan: script_chan.clone(), console: None, @@ -311,23 +311,22 @@ impl Window { next_timer_handle: 0 }; - let raw: *mut Window = &mut *win; let global = WindowBinding::Wrap(cx, win); - assert!(global.is_not_null()); - unsafe { - let fn_names = ["window","self"]; - for str in fn_names.iter() { - (*str).to_c_str().with_ref(|name| { - JS_DefineProperty(cx, global, name, - ObjectValue(&*global), + let fn_names = ["window", "self"]; + for str in fn_names.iter() { + (*str).to_c_str().with_ref(|name| { + let object = global.reflector().get_jsobject(); + assert!(object.is_not_null()); + unsafe { + JS_DefineProperty(cx, object, name, + ObjectValue(&*object), Some(cast::transmute(GetJSClassHookStubPointer(PROPERTY_STUB))), Some(cast::transmute(GetJSClassHookStubPointer(STRICT_PROPERTY_STUB))), JSPROP_ENUMERATE); - }) - - } + } + }) - JS::from_raw(raw) } + global } } |