Create a new JSContext
.
Syntax
JSContext * JS_NewContext(JSRuntime *rt, size_t stackChunkSize);
Name | Type | Description |
---|---|---|
rt |
JSRuntime * |
Parent runtime for the new context. JavaScript objects, functions, strings, and numbers may be shared among the contexts in a JSRuntime , but they cannot be shared across JSRuntime s. |
stackchunksize |
size_t |
The size, in bytes, of each "stack chunk". This is a memory management tuning parameter which most users should not adjust. 8192 is a good default value. |
Description
JS_NewContext
creates a new JSContext
in the runtime rt
. On success, it returns a pointer to the new context. Otherwise it returns NULL
. For more details about contexts, see JSContext
. For sample code that creates and initializes a JSContext
, see JSAPI User Guide.
The stackchunksize
parameter does not control the JavaScript stack size. (The JSAPI does not provide a way to adjust the stack depth limit.) Passing a large number for stackchunksize
is a mistake. In a DEBUG
build, large chunk sizes can degrade performance dramatically. The usual value of 8192
is recommended.
The application must call JS_DestroyContext
when it is done using the context. Before a JSRuntime
may be destroyed, all the JSContext
s associated with it must be destroyed.
The new JSContext
initially has no global object.
In a JS_THREADSAFE
build, the new JSContext
is initially associated with the calling thread. As long as it stays associated with that thread, no other thread may use it or destroy it. A JSContext
may be transferred from one thread to another using JS_ClearContextThread
and JS_SetContextThread
.