Bug 611401 - Avoid potential problems by doing this wrapping ourselves. r=gal a=blocking-betaN
--- a/js/src/xpconnect/src/xpccomponents.cpp
+++ b/js/src/xpconnect/src/xpccomponents.cpp
@@ -3240,20 +3240,19 @@ xpc_CreateSandboxObject(JSContext * cx,
return NS_ERROR_XPC_UNEXPECTED;
if (proto) {
bool ok = JS_WrapObject(cx, &proto);
if (!ok)
return NS_ERROR_XPC_UNEXPECTED;
if (xpc::WrapperFactory::IsXrayWrapper(proto) && !wantXrays) {
- jsval v;
- if (!JS_GetProperty(cx, proto, "wrappedJSObject", &v))
- return NS_ERROR_XPC_UNEXPECTED;
-
+ jsval v = OBJECT_TO_JSVAL(proto);
+ if (!xpc::WrapperFactory::WaiveXrayAndWrap(cx, &v))
+ return NS_ERROR_FAILURE;
proto = JSVAL_TO_OBJECT(v);
}
ok = JS_SetPrototype(cx, sandbox, proto);
if (!ok)
return NS_ERROR_XPC_UNEXPECTED;
}