diff options
Diffstat (limited to 'components/script/dom/bindings/utils.rs')
-rw-r--r-- | components/script/dom/bindings/utils.rs | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs index f8ea201092f..a82786f2143 100644 --- a/components/script/dom/bindings/utils.rs +++ b/components/script/dom/bindings/utils.rs @@ -16,20 +16,20 @@ use dom::windowproxy; use js; use js::JS_CALLEE; use js::glue::{CallJitGetterOp, CallJitMethodOp, CallJitSetterOp, IsWrapper}; -use js::glue::{GetCrossCompartmentWrapper, WrapperNew}; +use js::glue::{GetCrossCompartmentWrapper, JS_GetReservedSlot, WrapperNew}; use js::glue::{RUST_FUNCTION_VALUE_TO_JITINFO, RUST_JSID_IS_INT, RUST_JSID_IS_STRING}; use js::glue::{RUST_JSID_TO_INT, RUST_JSID_TO_STRING, UnwrapObject}; use js::jsapi::{CallArgs, DOMCallbacks, GetGlobalForObjectCrossCompartment}; use js::jsapi::{Heap, JSAutoCompartment, JSContext}; use js::jsapi::{JSJitInfo, JSObject, JSTracer, JSWrapObjectCallbacks}; use js::jsapi::{JS_EnumerateStandardClasses, JS_GetLatin1StringCharsAndLength}; -use js::jsapi::{JS_GetReservedSlot, JS_IsExceptionPending, JS_IsGlobalObject}; -use js::jsapi::{JS_ResolveStandardClass, ToWindowProxyIfWindow}; -use js::jsapi::{JS_StringHasLatin1Chars, ObjectOpResult}; +use js::jsapi::{JS_IsExceptionPending, JS_IsGlobalObject}; +use js::jsapi::{JS_ResolveStandardClass, JS_StringHasLatin1Chars, ObjectOpResult}; use js::jsapi::HandleId as RawHandleId; use js::jsapi::HandleObject as RawHandleObject; +use js::jsapi::MutableHandleObject as RawMutableHandleObject; use js::jsval::{JSVal, UndefinedValue}; -use js::rust::{GCMethods, ToString, get_object_class, is_dom_class}; +use js::rust::{GCMethods, ToString, ToWindowProxyIfWindow, get_object_class, is_dom_class}; use js::rust::{Handle, HandleId, HandleObject, HandleValue, MutableHandleValue}; use js::rust::wrappers::JS_DeletePropertyById; use js::rust::wrappers::JS_ForwardGetPropertyTo; @@ -124,7 +124,9 @@ unsafe impl Sync for DOMJSClass {} pub fn get_proto_or_iface_array(global: *mut JSObject) -> *mut ProtoOrIfaceArray { unsafe { assert_ne!(((*get_object_class(global)).flags & JSCLASS_DOM_GLOBAL), 0); - JS_GetReservedSlot(global, DOM_PROTOTYPE_SLOT).to_private() as *mut ProtoOrIfaceArray + let mut slot = UndefinedValue(); + JS_GetReservedSlot(global, DOM_PROTOTYPE_SLOT, &mut slot); + slot.to_private() as *mut ProtoOrIfaceArray } } @@ -387,14 +389,14 @@ unsafe extern "C" fn wrap(cx: *mut JSContext, } unsafe extern "C" fn pre_wrap(cx: *mut JSContext, - _existing: RawHandleObject, + _scope: RawHandleObject, obj: RawHandleObject, - _object_passed_to_wrap: RawHandleObject) - -> *mut JSObject { + _object_passed_to_wrap: RawHandleObject, + rval: RawMutableHandleObject) { let _ac = JSAutoCompartment::new(cx, obj.get()); let obj = ToWindowProxyIfWindow(obj.get()); assert!(!obj.is_null()); - obj + rval.set(obj) } /// Callback table for use with JS_SetWrapObjectCallbacks |