Obsolete since JSAPI 39
This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.
Remove a specified numeric property from an object.
Renamed to JS_DeleteElement
in JSAPI 39
Syntax
bool JS_DeleteElement2(JSContext *cx, JS::HandleObject obj, uint32_t index, bool *succeeded);
Name | Type | Description |
---|---|---|
cx |
JSContext * |
The context in which to delete the property. Requires request. In a JS_THREADSAFE build, the caller must be in a request on this JSContext . |
obj |
JS::HandleObject |
The object from which to delete the property. |
index |
uint32_t |
Index of the property to delete. |
succeeded |
bool * |
Out parameter. On success, *succeeded receives false if the property was not deleted because it is permanent and true otherwise. |
Description
JS_DeleteElement2
removes a specified numeric property, index
, from an object, obj
. If obj
inherits the specified property from a prototype, the property is removed from the object, but not from the prototype. If deletion is successful, JS_DeleteElement2
stores true
to *succeeded
and returns true
. Otherwise it returns false
and the value of *succeeded
is undefined.
Notes
Per the ECMA standard, JS_DeleteElement2
removes read-only properties from objects as long as they are not also permanent
.
For JavaScript 1.2 and earlier, if deletion fails because the property is permanent, JS_DeleteElement2
reports the error and returns false
. For JavaScript 1.3, the attempt is silently ignored. In both these cases, *succeeded
will receive the stored value of the property that was not deleted.
To remove all properties from an object, call JS_ClearScope
.