case JSOP_EXCEPTION: PUSH(cx->exception); break;  case JSOP_THROW: cx->throwing = JS_TRUE; cx->exception = POP_OPND(); ok = JS_FALSE;  goto out;  BEGIN_LITOPX_CASE(JSOP_INITCATCHVAR, 0)  JS_ASSERT(sp - fp->spbase >= 2); rval = FETCH_OPND(-1);   id   = ATOM_TO_JSID(atom);   lval = FETCH_OPND(-2); JS_ASSERT(JSVAL_IS_OBJECT(lval)); obj = JSVAL_TO_OBJECT(lval);
            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;                }            }