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.lookupProperty
callback is called for every property access (except when a higher-level callback, such as JSObjectOps.getProperty
, is overloaded in a way that does not call lookupProperty
).
Syntax
typedef JSBool (*JSLookupPropOp)(JSContext *cx, JSObject *obj, jsid id, JSObject **objp, JSProperty **propp);
Name | Type | Description |
---|---|---|
cx |
JSContext * |
Pointer to the JS context in which the property lookup is happening. |
obj |
JSObject * |
The object whose properties are being searched. |
id |
jsid |
The name or index of the property to look up. |
objp |
JSObject ** |
Out parameter. If the property is found, the callback stores the object on which the property was found in *objp . |
propp |
JSProperty ** |
Out parameter. On success, the callback stores in *propp a pointer to the property, if it exists, or NULL if it doesn't. |
Description
Look for id
in obj
and its prototype chain, returning JS_FALSE
on error or exception, JS_TRUE
on success. On success, return null in *propp
if id
was not found. If id
was found, return the first object searching from obj
along its prototype chain in which id
names a direct property in *objp
, and return a non-null, opaque property pointer in *propp
.
If JSLookupPropOp
succeeds and returns with *propp
non-null, that pointer may be passed as the prop
parameter to a JSAttributesOp
, as a short-cut that bypasses id
re-lookup. In any case, a non-null *propp
result after a successful lookup must be dropped via JSObjectOps.dropProperty
.
Note: A successful return with non-null *propp
means the implementation may have locked *objp
and added a reference count associated with *propp
, so callers should not risk deadlock by nesting or interleaving other lookups or any obj-bearing ops before dropping *propp
.