diff --git a/dom/base/nsDOMClassInfo.cpp b/dom/base/nsDOMClassInfo.cpp index 22e387a06da..f15634d0b52 100644 --- a/dom/base/nsDOMClassInfo.cpp +++ b/dom/base/nsDOMClassInfo.cpp @@ -6266,6 +6266,11 @@ ResolvePrototype(nsIXPConnect *aXPConnect, nsGlobalWindow *aWin, JSContext *cx, } if (dot_prototype) { + JSAutoEnterCompartment ac; + if (!ac.enter(cx, dot_prototype)) { + return NS_ERROR_UNEXPECTED; + } + JSObject *xpc_proto_proto = ::JS_GetPrototype(cx, dot_prototype); if (proto && @@ -6277,6 +6282,11 @@ ResolvePrototype(nsIXPConnect *aXPConnect, nsGlobalWindow *aWin, JSContext *cx, } } } else { + JSAutoEnterCompartment ac; + if (!ac.enter(cx, winobj)) { + return NS_ERROR_UNEXPECTED; + } + dot_prototype = ::JS_NewObject(cx, &sDOMConstructorProtoClass, proto, winobj); NS_ENSURE_TRUE(dot_prototype, NS_ERROR_OUT_OF_MEMORY);