JS_NewContext

There was a scripting error on this page. While it is being addressed by site editors, you can view partial content below.

{{SpiderMonkeySidebar("JSAPI")}}

Create a new JSContext.

Syntax

JSContext *
JS_NewContext(JSRuntime *rt, size_t stackChunkSize);
Name Type Description
rt {{jsapixref("JSRuntime", "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 {{jsapixref("JSRuntime", "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 {{jsapixref("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.

The new JSContext is associated with the calling thread.  No other thread may use it or destroy it.

See Also

  • {{ LXRSearch("ident", "i", "JS_NewContext") }}
  • {{jsapixref("JS_DestroyContext")}}
  • {{jsapixref("JS_ContextIterator")}}
  • {{jsapixref("JS_SetContextCallback")}}

Document Tags and Contributors

Last updated by: DemiMarie,