diff --git a/dom/xbl/nsXBLDocumentInfo.cpp b/dom/xbl/nsXBLDocumentInfo.cpp index 0d55317119c..ed92cb3c265 100644 --- a/dom/xbl/nsXBLDocumentInfo.cpp +++ b/dom/xbl/nsXBLDocumentInfo.cpp @@ -566,7 +566,7 @@ void AssertInCompilationScope() { AutoJSContext cx; - MOZ_ASSERT(JS_GetClass(JS::CurrentGlobalOrNull(cx)) == - &nsXBLDocGlobalObject::gSharedGlobalClass); + // Note - Inverting the order of these operands is a rooting hazard. + MOZ_ASSERT(xpc::GetCompilationScope() == JS::CurrentGlobalOrNull(cx)); } #endif diff --git a/dom/xbl/nsXBLProtoImpl.cpp b/dom/xbl/nsXBLProtoImpl.cpp index df3fc28f2ef..33d82dc486e 100644 --- a/dom/xbl/nsXBLProtoImpl.cpp +++ b/dom/xbl/nsXBLProtoImpl.cpp @@ -201,7 +201,7 @@ nsXBLProtoImpl::CompilePrototypeMembers(nsXBLPrototypeBinding* aBinding) // bind the prototype to a real xbl instance, we'll clone the pre-compiled JS into the real instance's // context. AutoSafeJSContext cx; - JS::Rooted compilationGlobal(cx, aBinding->XBLDocumentInfo()->GetCompilationGlobal()); + JS::Rooted compilationGlobal(cx, xpc::GetCompilationScope()); NS_ENSURE_TRUE(compilationGlobal, NS_ERROR_UNEXPECTED); JSAutoCompartment ac(cx, compilationGlobal); diff --git a/dom/xbl/nsXBLPrototypeBinding.cpp b/dom/xbl/nsXBLPrototypeBinding.cpp index e0bc83ccb56..100c4f43229 100644 --- a/dom/xbl/nsXBLPrototypeBinding.cpp +++ b/dom/xbl/nsXBLPrototypeBinding.cpp @@ -919,7 +919,7 @@ nsXBLPrototypeBinding::Read(nsIObjectInputStream* aStream, } AutoSafeJSContext cx; - JS::Rooted compilationGlobal(cx, aDocInfo->GetCompilationGlobal()); + JS::Rooted compilationGlobal(cx, xpc::GetCompilationScope()); NS_ENSURE_TRUE(compilationGlobal, NS_ERROR_UNEXPECTED); JSAutoCompartment ac(cx, compilationGlobal); @@ -1072,7 +1072,7 @@ nsXBLPrototypeBinding::Write(nsIObjectOutputStream* aStream) // computed on demand. AutoSafeJSContext cx; - JS::Rooted compilationGlobal(cx, mXBLDocInfoWeak->GetCompilationGlobal()); + JS::Rooted compilationGlobal(cx, xpc::GetCompilationScope()); NS_ENSURE_TRUE(compilationGlobal, NS_ERROR_UNEXPECTED); JSAutoCompartment ac(cx, compilationGlobal);