*rval = argv[0];
MochaDecoder *decoder; MochaDecoder *running_decoder; MWContext *context; char *message; JSBool ok;  if (!(decoder = JS_GetInstancePrivate(cx, obj, &lm_window_class, argv))) return JS_FALSE; context = decoder->window_context; if (!context || context->grid_parent) return JS_TRUE; running_decoder = JS_GetPrivate(cx, JS_GetGlobalObject(cx));  if (context->type != MWContextBrowser && context->type != MWContextPane || (!decoder->opener && (XP_ListCount(SHIST_GetList(context)) > 1 || decoder != running_decoder)) && !lm_CanAccessTarget(cx, JSTARGET_UNIVERSAL_BROWSER_WRITE)) {  if (context->name) message = PR_smprintf(XP_GetString(XP_MSG_JS_CLOSE_WINDOW_NAME), context->name); else message = XP_GetString(XP_MSG_JS_CLOSE_WINDOW); ok = ET_PostMessageBox(context, message, JS_TRUE); if (context->name) XP_FREE(message); if (!ok) return JS_TRUE; } if(!decoder->called_win_close) { decoder->called_win_close = JS_TRUE;  if (decoder == running_decoder) ET_PostSetTimeout(destroy_window, context, 0, XP_DOCID(context)); else ET_PostDestroyWindow(context);  }
PR_STATIC_CALLBACK(PRBool)win_taint_stub(JSContext *cx, JSObject *obj, uint argc, jsval *argv,               jsval *rval){    *rval = argv[0];    return JS_TRUE;}