This is an archived page. It's not actively maintained.


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.

JSReserveSlotsOp is the type of the JSClass.reserveSlots.


typedef uint32
(* JSReserveSlotsOp)(JSContext *cx, JSObject *obj);
Name Type Description
cx JSContext * The JS context in which the new object is being created.
obj JSObject * The new object.


Warning: JSAPI applications should not use this hook. A class cannot freely use a reserveSlots hook to reserve a different number of slots for each object. Rather, within a JSRuntime, every call to the same reserveSlots hook must return the same value (excepting a few internal classes such as Function, Call, and Block).

JSClass hooks

JSClass offers the following hook:

  • The JSClass.reserveSlots callback is called each time a new object is created.

    The optional JSClass.reserveSlots hook allows a class to make computed per-instance object slots reservations, in addition to or instead of using JSCLASS_HAS_RESERVED_SLOTS(n) in the JSClass.flags initializer to reserve a constant-per-class number of slots. Implementations of this hook should return the number of slots to reserve, not including any reserved by using JSCLASS_HAS_RESERVED_SLOTS(n) in JSClass.flags.

See Also