Obsolete since JavaScript 1.8.5
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.
Warning: JSObjectOps
is not a supported API. Details of the API may change from one release to the next. This documentation should be considered SpiderMonkey internals documentation, not API documentation. See bug 408416 for details.
The JSObjectOps.getRequiredSlot
and setRequiredSlot
callbacks get and set a required slot—one that should already have been allocated.
Syntax
typedef jsval (*JSGetRequiredSlotOp)(JSContext *cx, JSObject *obj, uint32 slot); typedef JSBool (*JSSetRequiredSlotOp)(JSContext *cx, JSObject *obj, uint32 slot, jsval v);
Name | Type | Description |
---|---|---|
cx |
JSContext * |
The JS context in which we access the slot. |
obj |
JSObject * |
The object whose slot we access. |
slot |
uint32 |
The index of the slot to access. See note below. |
v |
jsval |
The value to store in the slot, for JSSetRequiredSlotOp. |
Description
Get and set a required slot, one that should already have been allocated. These operations are infallible, so required slots must be pre-allocated, or implementations must suppress out-of-memory errors. The native ops (js_ObjectOps
, see js/src/jsobj.c
) access slots reserved by including a call to the JSCLASS_HAS_RESERVED_SLOTS(n)
macro in the JSClass.flags
initializer.
Note: The slot
parameter is a zero-based index into obj slots, unlike the index parameter to the JS_GetReservedSlot
and JS_SetReservedSlot
API entry points, which is a zero-based index into the JSCLASS_RESERVED_SLOTS(clasp)
reserved slots that come after the initial well-known slots: proto, parent, class, and optionally, the private data slot.