Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

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 JSRuntimes.
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 JSContexts 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.

See Also

Document Tags and Contributors

 Contributors to this page: arai, fscholz, Jorend, Mgjbot, Wesgarland, Sheppy, Petermichaux, Dria, MMondor
 Last updated by: arai,