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
, to define eagerly during JS_EnumerateStandardClasses
(cx, obj)for...in
loops any classes not yet resolved lazily.