static JSBool args_delProperty(JSContext *cx, HandleObject obj, HandleId id, MutableHandleValue vp) { ArgumentsObject &argsobj = obj->asArguments(); if (JSID_IS_INT(id)) { unsigned arg = unsigned(JSID_TO_INT(id)); if (arg < argsobj.initialLength() && !argsobj.isElementDeleted(arg)) argsobj.markElementDeleted(arg); } else if (JSID_IS_ATOM(id, cx->names().length)) { argsobj.markLengthOverridden(); } else if (JSID_IS_ATOM(id, cx->names().callee)) { argsobj.asNormalArguments().clearCallee(); } return true; }
static JSBool args_delProperty(JSContext *cx, HandleObject obj, HandleId id, Value *vp) { ArgumentsObject &argsobj = obj->asArguments(); if (JSID_IS_INT(id)) { unsigned arg = unsigned(JSID_TO_INT(id)); if (arg < argsobj.initialLength() && !argsobj.isElementDeleted(arg)) { argsobj.setElement(arg, UndefinedValue()); argsobj.markElementDeleted(arg); } } else if (JSID_IS_ATOM(id, cx->runtime->atomState.lengthAtom)) { argsobj.markLengthOverridden(); } else if (JSID_IS_ATOM(id, cx->runtime->atomState.calleeAtom)) { argsobj.asNormalArguments().clearCallee(); } return true; }