
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
.
The JSObjectOps.getRequiredSlot and
setRequiredSlot callbacks get and set a required
slot—one that should already have been allocated.
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. |
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.
Page last modified 14:51, 20 Feb 2008 by Jorend