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.

See Also