MDN wants to learn about developers like you:


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.setProto and setParent callbacks implement the JS_SetPrototype and JS_SetParent functions. These callbacks share the same type, JSSetObjectSlotOp.


typedef JSBool (*JSSetObjectSlotOp)(JSContext *cx, JSObject *obj,
    uint32 slot, JSObject *pobj);
Name Type Description
cx JSContext * Pointer to the JS context in which the object's prototype or parent is being modified.
obj JSObject * The object whose prototype or parent is being modified.
slot uint32 The index of the slot being modified: JSSLOT_PROTO for the JSObjectOps.setProto callback, and JSSLOT_PARENT for the JSObjectOps.setParent callback.
pobj JSObject * The new prototype or parent object.


These hooks must check for cycles without deadlocking, and otherwise take special steps. See js_SetPrototype or js_SetParent in js/src/jsobj.c for an example.

Document Tags and Contributors

 Contributors to this page: arai, fscholz, abdllh, tschneidereit, Jorend, Jimb
 Last updated by: arai,