Deal with sites setting our proto's __proto__ to null. bug 398933, r+sr+a=jst

This commit is contained in:
mrbkap%gmail.com 2007-10-09 22:50:49 +00:00
Родитель d5c6199643
Коммит a254ccfa93
1 изменённых файлов: 6 добавлений и 2 удалений

Просмотреть файл

@ -5382,7 +5382,9 @@ nsWindowSH::GlobalResolve(nsGlobalWindow *aWin, JSContext *cx,
JSObject *xpc_proto_proto = ::JS_GetPrototype(cx, dot_prototype);
if (proto && JS_GET_CLASS(cx, xpc_proto_proto) == sObjectClass) {
if (proto &&
(!xpc_proto_proto ||
JS_GET_CLASS(cx, xpc_proto_proto) == sObjectClass)) {
if (!::JS_SetPrototype(cx, dot_prototype, proto)) {
return NS_ERROR_UNEXPECTED;
}
@ -5403,7 +5405,9 @@ nsWindowSH::GlobalResolve(nsGlobalWindow *aWin, JSContext *cx,
JSObject *xpc_proto_proto = ::JS_GetPrototype(cx, dot_prototype);
if (proto && JS_GET_CLASS(cx, xpc_proto_proto) == sObjectClass) {
if (proto &&
(!xpc_proto_proto ||
JS_GET_CLASS(cx, xpc_proto_proto) == sObjectClass)) {
if (!::JS_SetPrototype(cx, dot_prototype, proto)) {
return NS_ERROR_UNEXPECTED;
}