зеркало из https://github.com/mozilla/pjs.git
land jst's fix for bug 289675, r=bz/dveditz, sr=brendan, a=chase
This commit is contained in:
Родитель
b7fe8cc76f
Коммит
3c661e39a4
|
@ -5044,27 +5044,28 @@ nsWindowSH::NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
|||
|
||||
nsIScriptContext *my_context = sgo->GetContext();
|
||||
|
||||
if (!my_context || !my_context->IsContextInitialized()) {
|
||||
// The context is not yet initialized so there's nothing we can do
|
||||
// here yet.
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
// It is not worth calling JS_ResolveStandardClass() if we are
|
||||
// resolving for assignment, since only read-write properties
|
||||
// get dealt with there.
|
||||
if (!(flags & JSRESOLVE_ASSIGNING)) {
|
||||
JSContext *my_cx = (JSContext *) my_context->GetNativeContext();
|
||||
JSBool did_resolve = JS_FALSE;
|
||||
// Resolve standard classes on my_context's JSContext (or on cx,
|
||||
// if we don't have a my_context yet), in case the two contexts
|
||||
// have different origins. We want lazy standard class
|
||||
// initialization to behave as if it were done eagerly, on each
|
||||
// window's own context (not on some other window-caller's
|
||||
// context).
|
||||
|
||||
// Resolve standard classes on my_context's JSContext, not on
|
||||
// cx, in case the two contexts have different origins. We want
|
||||
// lazy standard class initialization to behave as if it were
|
||||
// done eagerly, on each window's own context (not on some other
|
||||
// window-caller's context).
|
||||
JSContext *my_cx;
|
||||
|
||||
if (!my_context) {
|
||||
my_cx = cx;
|
||||
} else {
|
||||
my_cx = (JSContext *)my_context->GetNativeContext();
|
||||
}
|
||||
|
||||
JSBool did_resolve = JS_FALSE;
|
||||
|
||||
if (!::JS_ResolveStandardClass(my_cx, obj, id, &did_resolve)) {
|
||||
*_retval = JS_FALSE;
|
||||
|
@ -5086,6 +5087,14 @@ nsWindowSH::NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
|||
}
|
||||
}
|
||||
|
||||
if (!my_context || !my_context->IsContextInitialized()) {
|
||||
// The context is not yet initialized so there's nothing we can do
|
||||
// here yet.
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
// Hmm, we do an awful lot of QIs here; maybe we should add a
|
||||
// method on an interface that would let us just call into the
|
||||
// window code directly...
|
||||
|
|
|
@ -193,10 +193,7 @@ XPCWrappedNativeScope::SetGlobal(XPCCallContext& ccx, JSObject* aGlobal)
|
|||
}
|
||||
else
|
||||
{
|
||||
#if defined(DEBUG_jband) || defined(DEBUG_jst)
|
||||
// NS_ERROR("Can't get globalObject.Object.prototype");
|
||||
NS_WARNING("Can't get globalObject.Object.prototype");
|
||||
#endif
|
||||
NS_ERROR("Can't get globalObject.Object.prototype");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче