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.
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.
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);
||The JS context in which we access the slot.|
||The object whose slot we access.|
||The index of the slot to access. See note below.|
||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/src/jsobj.c) access slots reserved by including a call to the
JSCLASS_HAS_RESERVED_SLOTS(n) macro in the
slot parameter is a zero-based index into obj slots, unlike the index parameter to the
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.