obj2 = fp->scopeChain; if (OBJ_GET_PARENT(cx, obj) != obj2) { obj = js_CloneFunctionObject(cx, obj, obj2); if (!obj) { ok = JS_FALSE; goto out;
ok = OBJ_DEFINE_PROPERTY(cx, obj, id, rval, NULL, NULL, JSPROP_PERMANENT, NULL); if (!ok) goto out;   sp--; END_LITOPX_CASE #endif   #if JS_HAS_INSTANCEOF case JSOP_INSTANCEOF: rval = FETCH_OPND(-1); if (JSVAL_IS_PRIMITIVE(rval) || !(obj = JSVAL_TO_OBJECT(rval))->map->ops->hasInstance) { SAVE_SP(fp); str = js_DecompileValueGenerator(cx, -1, rval, NULL); if (str) { JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_BAD_INSTANCEOF_RHS, JS_GetStringBytes(str));
            JS_ASSERT(JSVAL_IS_FUNCTION(cx, ATOM_KEY(atom)));            obj = ATOM_TO_OBJECT(atom);            /*             * Clone the function object with the current scope chain as the             * clone's parent.  The original function object is the prototype             * of the clone.  Do this only if re-parenting; the compiler may             * have seen the right parent already and created a sufficiently             * well-scoped function object.             */            SAVE_SP(fp);            obj2 = fp->scopeChain;            if (OBJ_GET_PARENT(cx, obj) != obj2) {                obj = js_CloneFunctionObject(cx, obj, obj2);                if (!obj) {                    ok = JS_FALSE;                    goto out;                }            }