if (slot < MAXARGS(fp) && !ArgWasDeleted(cx, fp, slot)) {
if (slot < fp->argc && !ArgWasDeleted(cx, fp, slot)) {
args_resolve(JSContext *cx, JSObject *obj, jsval id, uintN flags,             JSObject **objp){    JSStackFrame *fp;    uintN slot;    JSString *str;    JSAtom *atom;    intN tinyid;    jsval value;    *objp = NULL;    fp = (JSStackFrame *)         JS_GetInstancePrivate(cx, obj, &js_ArgumentsClass, NULL);    if (!fp)        return JS_TRUE;    JS_ASSERT(fp->argsobj);    if (JSVAL_IS_INT(id)) {        slot = JSVAL_TO_INT(id);        if (slot < MAXARGS(fp) && !ArgWasDeleted(cx, fp, slot)) {            /* XXX ECMA specs DontEnum, contrary to other array-like objects */            if (!js_DefineProperty(cx, obj, INT_JSVAL_TO_JSID(id),                                   fp->argv[slot],                                   args_getProperty, args_setProperty,                                   JS_VERSION_IS_ECMA(cx)                                   ? 0                                   : JSPROP_ENUMERATE,                                   NULL)) {                return JS_FALSE;            }            *objp = obj;        }    } else {        str = JSVAL_TO_STRING(id);        atom = cx->runtime->atomState.lengthAtom;        if (str == ATOM_TO_STRING(atom)) {            tinyid = ARGS_LENGTH;            value = INT_TO_JSVAL(fp->argc);        } else {            atom = cx->runtime->atomState.calleeAtom;            if (str == ATOM_TO_STRING(atom)) {                tinyid = ARGS_CALLEE;                value = fp->argv ? fp->argv[-2]                                 : OBJECT_TO_JSVAL(fp->fun->object);            } else {                atom = NULL;                /* Quell GCC overwarnings. */                tinyid = 0;                value = JSVAL_NULL;            }        }        if (atom && !TEST_OVERRIDE_BIT(fp, tinyid)) {            if (!js_DefineNativeProperty(cx, obj, ATOM_TO_JSID(atom), value,                                         args_getProperty, args_setProperty, 0,                                         SPROP_HAS_SHORTID, tinyid, NULL)) {                return JS_FALSE;            }            *objp = obj;        }    }    return JS_TRUE;}