JSObjectOps.setProto

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.

Syntax

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.

Description

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