JSEnumerateOp is the type of the JSClass.enumerate callback. For new code, consider providing a JSNewEnumerateOp callback instead.


typedef JSBool (*JSEnumerateOp)(JSContext *cx, JSObject *obj);
Name Type Description
cx JSContext * Pointer to the JS context in which the enumeration is taking place.
obj JSObject * Pointer to the object to be enumerated.


The old-style JSClass.enumerate hook is for classes that implement lazy properties using JSClass.resolve.

The hook is called just before an object is enumerated (via a forin statement, an array comprehension, or a call to JS_Enumerate). It should define any remaining lazy properties that should be enumerable but are not yet defined in obj. This hook does not implement iteration: once the properties are defined, the JavaScript engine can enumerate them.

Document Tags and Contributors

Contributors to this page: Jorend
Last updated by: Jorend,