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.
Syntax
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_THREADSAFEbuild, the caller must be in a request on thisJSContext. | 
| s | const char *orconst char16_t * | Pointer to a character array containing the data for the string. In JS_InternStringandJS_InternUCString, the string must be null-terminated. | 
| length | size_t | (only in JS_InternStringNandJS_InternUCStringN) The length ofsin characters. | 
Description
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.