nbits = MAXARGS(fp);
nbits = fp->argc;
MarkArgDeleted(JSContext *cx, JSStackFrame *fp, uintN slot){    JSObject *argsobj;    jsval bmapval, bmapint;    size_t nbits, nbytes;    jsbitmap *bitmap;    argsobj = fp->argsobj;    (void) JS_GetReservedSlot(cx, argsobj, 0, &bmapval);    nbits = MAXARGS(fp);    JS_ASSERT(slot < nbits);    if (JSVAL_IS_VOID(bmapval)) {        if (nbits <= JSVAL_INT_BITS) {            bmapint = 0;            bitmap = (jsbitmap *) &bmapint;        } else {            nbytes = JS_HOWMANY(nbits, JS_BITS_PER_WORD) * sizeof(jsbitmap);            bitmap = (jsbitmap *) JS_malloc(cx, nbytes);            if (!bitmap)                return JS_FALSE;            memset(bitmap, 0, nbytes);            bmapval = PRIVATE_TO_JSVAL(bitmap);            JS_SetReservedSlot(cx, argsobj, 0, bmapval);        }    } else {        if (nbits <= JSVAL_INT_BITS) {            bmapint = JSVAL_TO_INT(bmapval);            bitmap = (jsbitmap *) &bmapint;        } else {            bitmap = (jsbitmap *) JSVAL_TO_PRIVATE(bmapval);        }    }    JS_SET_BIT(bitmap, slot);    if (bitmap == (jsbitmap *) &bmapint) {        bmapval = INT_TO_JSVAL(bmapint);        JS_SetReservedSlot(cx, argsobj, 0, bmapval);    }    return JS_TRUE;}