This article covers features introduced in SpiderMonkey 17

Iterate over compartments and call the specified callback function on every compartment.


JS_IterateCompartments(JSRuntime *rt, void *data,
                       JSIterateCompartmentCallback compartmentCallback);
Name Type Description
cx JSRuntime * The runtime of the compartments to iterate over.
data void * This will be passed as the data parameter of the JSIterateCompartmentCallback.
compartmentCallback JSIterateCompartmentCallback Callback function (see below).

Callback function

typedef void
(*JSIterateCompartmentCallback)(JSRuntime *rt, void *data, JSCompartment *compartment);
Name Type Description
cx JSRuntime * The runtime of the compartments.
data void * data parameter passed to JS_IterateCompartments.
compartmentCallback JSCompartment * The pointer to the compartment.


JS_IterateCompartments calls compartmentCallback on every compartment. Beware that there is no guarantee that the compartment will survive after the callback returns. Also, barriers are disabled via the TraceSession.

See also

Document Tags and Contributors

Contributors to this page: mdnwebdocs-bot, arai, kscarfone
Last updated by: mdnwebdocs-bot,