Get an interned string - a JSString that is protected from GC and automatically shared with other code that needs a JSString with the same value.


JSString *
JS_InternString(JSContext *cx, const char *s);

JSString *
JS_InternStringN(JSContext *cx, const char *s, size_t length);

JSString *
JS_InternUCString(JSContext *cx, const char16_t *s);

JSString *
JS_InternUCStringN(JSContext *cx, const char16_t *s, size_t length);


Name Type Description
cx JSContext * A context. Requires request. In a JS_THREADSAFE build, the caller must be in a request on this JSContext.
s const char * or const char16_t * Pointer to a character array containing the data for the string. In JS_InternString and JS_InternUCString, the string must be null-terminated.
length size_t (only in JS_InternStringN and JS_InternUCStringN) The length of s in characters.


JS_InternString and JS_InternStringN return an interned JavaScript string with a specified value, s. JS_InternUCString and JS_InternUCStringN are the Unicode versions of the function.

Each JSRuntime keeps a table of all existing interned strings. If an interned string already exists with the desired value, these functions return the existing string. Otherwise a new string is created and added to the table. Strings created with these functions are protected from garbage collection for the lifetime of the JSRuntime.

On success, these functions return a pointer to the interned string. Otherwise they report an error and return NULL.

See Also