This article covers features introduced in SpiderMonkey 17
Iterate over compartments and call the specified callback function on every compartment.
Syntax
void
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 dataparameter of theJSIterateCompartmentCallback. | 
| 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 * | dataparameter passed toJS_IterateCompartments. | 
| compartmentCallback | JSCompartment * | The pointer to the compartment. | 
Description
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.