NS_RELEASE(mContextStack);
if (tempFP->script) { hasScript = PR_TRUE; break; } tempFP = tempFP->down; };  if (!hasScript) { JSPrincipals* jsprinc; principal->GetJSPrincipals(&jsprinc);  mFrame.script = JS_CompileScriptForPrincipals(cx, JS_GetGlobalObject(cx), jsprinc, "", 0, "", 1); JSPRINCIPALS_DROP(cx, jsprinc);  if (mFrame.script) { mFrame.down = cx->fp; cx->fp = &mFrame; } else mPushResult = NS_ERROR_OUT_OF_MEMORY;
AutoPushJSContext::AutoPushJSContext(JSContext *cx, nsXPConnect* xpc /*= nsnull*/){    NS_ASSERTION(cx, "pushing null cx");#ifdef DEBUG    mDebugCX = cx;#endif    mContextStack = nsXPConnect::GetContextStack(xpc);    if(mContextStack)    {        JSContext* current;        if(NS_FAILED(mContextStack->Peek(&current)) ||           current == cx ||           NS_FAILED(mContextStack->Push(cx)))        {            NS_RELEASE(mContextStack);        }    }}