diff --git a/mozilla/dom/src/base/nsDOMClassInfo.cpp b/mozilla/dom/src/base/nsDOMClassInfo.cpp index 67eac4bb90d..adaf6a2e8b0 100644 --- a/mozilla/dom/src/base/nsDOMClassInfo.cpp +++ b/mozilla/dom/src/base/nsDOMClassInfo.cpp @@ -6888,6 +6888,13 @@ nsEventReceiverSH::AddEventListenerHelper(JSContext *cx, JSObject *obj, return JS_FALSE; } + rv = sXPConnect->GetWrappedNativeOfJSObject(cx, obj, getter_AddRefs(wrapper)); + if (NS_FAILED(rv)) { + nsDOMClassInfo::ThrowJSException(cx, rv); + + return JS_FALSE; + } + // Check that the caller has permission to call obj's addEventListener. if (NS_FAILED(sSecMan->CheckPropertyAccess(cx, obj, JS_GET_CLASS(cx, obj)->name, diff --git a/mozilla/js/src/xpconnect/src/xpccomponents.cpp b/mozilla/js/src/xpconnect/src/xpccomponents.cpp index 9827a851b64..71e0867199b 100644 --- a/mozilla/js/src/xpconnect/src/xpccomponents.cpp +++ b/mozilla/js/src/xpconnect/src/xpccomponents.cpp @@ -2803,12 +2803,16 @@ nsXPCComponents_Utils::LookupMethod() return NS_ERROR_XPC_BAD_CONVERT_JS; JSObject* obj = JSVAL_TO_OBJECT(argv[0]); - XPCWrappedNative *wn = - XPCWrappedNative::GetWrappedNativeOfJSObject(cx, obj); - if(!wn) - return NS_ERROR_XPC_BAD_CONVERT_JS; - obj = wn->GetFlatJSObject(); + { + XPCWrappedNative *wn = + XPCWrappedNative::GetWrappedNativeOfJSObject(cx, obj); + if(!wn) + return NS_ERROR_XPC_BAD_CONVERT_JS; + + obj = wn->GetFlatJSObject(); + } + OBJ_TO_INNER_OBJECT(cx, obj); if(!obj) return NS_ERROR_XPC_BAD_CONVERT_JS;