diff options
author | Ms2ger <ms2ger@gmail.com> | 2014-09-25 12:19:56 +0200 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2014-09-25 22:35:37 +0200 |
commit | 47829a37a97c70e6d24db6add0557028e19e6114 (patch) | |
tree | 250191b2cfb434c2d33ef76c9411a20f6d215cf1 /components/script/dom/bindings/utils.rs | |
parent | 1fba32af9ff68db73768b4732d003ea7aad09b28 (diff) | |
download | servo-47829a37a97c70e6d24db6add0557028e19e6114.tar.gz servo-47829a37a97c70e6d24db6add0557028e19e6114.zip |
Move global_object_for_js_object to global.rs.
This appears to be a more sensible place for it (related to #433).
Diffstat (limited to 'components/script/dom/bindings/utils.rs')
-rw-r--r-- | components/script/dom/bindings/utils.rs | 31 |
1 files changed, 5 insertions, 26 deletions
diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs index 8453b0f95c2..19e5f9c7245 100644 --- a/components/script/dom/bindings/utils.rs +++ b/components/script/dom/bindings/utils.rs @@ -6,9 +6,9 @@ use dom::bindings::codegen::PrototypeList; use dom::bindings::codegen::PrototypeList::MAX_PROTO_CHAIN_LENGTH; -use dom::bindings::conversions::{FromJSValConvertible, IDLInterface}; +use dom::bindings::conversions::IDLInterface; use dom::bindings::error::throw_type_error; -use dom::bindings::global::{GlobalRef, GlobalField, WindowField, WorkerField}; +use dom::bindings::global::{GlobalRef, global_object_for_js_object}; use dom::bindings::js::{JS, Temporary, Root}; use dom::bindings::trace::Untraceable; use dom::browsercontext; @@ -23,7 +23,7 @@ use std::cmp::PartialEq; use std::ptr; use std::slice; use js::glue::{js_IsObjectProxyClass, js_IsFunctionProxyClass, IsProxyHandlerFamily}; -use js::glue::{GetGlobalForObjectCrossCompartment, UnwrapObject, GetProxyHandlerExtra}; +use js::glue::{UnwrapObject, GetProxyHandlerExtra}; use js::glue::{IsWrapper, RUST_JSID_TO_STRING, RUST_JSID_IS_INT}; use js::glue::{RUST_JSID_IS_STRING, RUST_JSID_TO_INT}; use js::jsapi::{JS_AlreadyHasOwnProperty, JS_NewFunction}; @@ -43,10 +43,10 @@ use js::jsapi::JS_DeletePropertyById2; use js::jsfriendapi::JS_ObjectToOuterObject; use js::jsfriendapi::bindgen::JS_NewObjectWithUniqueType; use js::jsval::JSVal; -use js::jsval::{PrivateValue, ObjectValue, NullValue, ObjectOrNullValue}; +use js::jsval::{PrivateValue, ObjectValue, NullValue}; use js::jsval::{Int32Value, UInt32Value, DoubleValue, BooleanValue, UndefinedValue}; use js::rust::with_compartment; -use js::{JSPROP_ENUMERATE, JSCLASS_IS_GLOBAL, JSCLASS_IS_DOMJSCLASS}; +use js::JSPROP_ENUMERATE; use js::JSPROP_PERMANENT; use js::{JSFUN_CONSTRUCTOR, JSPROP_READONLY}; use js; @@ -664,27 +664,6 @@ pub extern fn outerize_global(_cx: *mut JSContext, obj: JSHandleObject) -> *mut } } -/// Returns the global object of the realm that the given JS object was created in. -#[allow(unrooted_must_root)] -pub fn global_object_for_js_object(obj: *mut JSObject) -> GlobalField { - unsafe { - let global = GetGlobalForObjectCrossCompartment(obj); - let clasp = JS_GetClass(global); - assert!(((*clasp).flags & (JSCLASS_IS_DOMJSCLASS | JSCLASS_IS_GLOBAL)) != 0); - match FromJSValConvertible::from_jsval(ptr::null_mut(), ObjectOrNullValue(global), ()) { - Ok(window) => return WindowField(window), - Err(_) => (), - } - - match FromJSValConvertible::from_jsval(ptr::null_mut(), ObjectOrNullValue(global), ()) { - Ok(worker) => return WorkerField(worker), - Err(_) => (), - } - - fail!("found DOM global that doesn't unwrap to Window or WorkerGlobalScope") - } -} - /// Get the `JSContext` for the `JSRuntime` associated with the thread /// this object is on. #[allow(unrooted_must_root)] |