Mozilla.com

  1. MDC
  2. Main Page
  3. SpiderMonkey
  4. JSAPI Reference
  5. JSObjectOps.lookupProperty
Table of contents
  1. 1. Syntax
  2. 2. Description
Redirected from En/JSLookupPropOp

JSObjectOps.lookupProperty

Table of contents
  1. 1. Syntax
  2. 2. Description

Warning sign
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 .

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.

Page last modified 21:16, 11 Apr 2008 by Jorend

Files (0)