JS_ResolveStandardClass

Resolve a standard class in an object.

Syntax

bool
JS_ResolveStandardClass(JSContext *cx, JS::HandleObject obj, JS::HandleId id,
                        bool *resolved);
Name Type Description
cx JSContext * Pointer to the executable script context for which to initialize JS function and object classes. Requires request. In a JS_THREADSAFE build, the caller must be in a request on this JSContext.
obj JS::HandleObject An object to resolve id to a standard class.
id JS::HandleId An id of a standard class name, which must contain either a string or an int.
resolved bool * Out parameter. If the id is resolved, true is stored into *resolved if success. false otherwise.

Description

JS_ResolveStandardClass resolves id, which must contain either a string or an int, to a standard class name in obj if possible, defining the class's constructor and/or prototype and storing true in *resolved. If id does not name a standard class or a top-level property induced by initializing a standard class, store false in *resolved and just return true. Return false on error, as usual for bool result-typed API entry points.

This API can be called directly from a global object class's resolve op, to define standard classes lazily. The class's enumerate op should call JS_EnumerateStandardClasses(cx, obj), to define eagerly during for...in loops any classes not yet resolved lazily.

See Also