This article covers features introduced in SpiderMonkey 24
Note: the preferred way of changing a context's current compartment is using JSAutoCompartment
.
Enter a different compartment on the given context, so that objects in that compartment can be accessed.
Syntax
JSCompartment * JS_EnterCompartment(JSContext *cx, JSObject *target);
Name | Type | Description |
---|---|---|
cx |
JSContext * |
The context on which a cross-compartment call is needed. |
target |
JSObject * |
The object in a different compartment to be accessed. This implicitly identifies the compartment to be entered. |
Description
Every
On success,
JSContext
has a current compartment. Any access to an object in a different compartment must be bracketed by calling JS_EnterCompartment
and JS_LeaveCompartment
.On success,
JS_EnterCompartment
returns a pointer to the previously entered compartment. To return to that compartment, pass it to JS_LeaveCompartment
. JS_EnterCompartment
is infallible, so a NULL
return value doesn't indicate failure.