JS_DeleteElement2

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.

Removes a specified element or 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 * Pointer to a JS context from which to derive runtime information. Requires request. In a JS_THREADSAFE build, the caller must be in a request on this JSContext.
obj JS::HandleObject Object from which to delete an element.
index uint32_t Index number of the element 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 element or numeric property, index, from an object, obj. If an object references an element belonging to a prototype, the element reference is removed from the object, but the prototype's element is not deleted. 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