Please note, this is a STATIC archive of website from 03 Nov 2016, does not collect or store any user information, there is no "phishing" involved.


This article needs a technical review. How you can help.

Get and set locale specific string conversion and error message callbacks.


JSLocaleCallbacks *
JS_GetLocaleCallbacks(JSRuntime *rt);

JS_SetLocaleCallbacks(JSRuntime *rt, JSLocaleCallbacks *callbacks);
Name Type Description
cx JSContext * Pointer to a JS context from which to derive runtime information. Requires request. In a JS_THREADSAFE build, the caller must be in a request on this JSContext.
callbacks JSLocaleCallbacks * Pointer to a JSLocaleCallbacks struct.

Callback functions

struct JSLocaleCallbacks {
    JSLocaleToUpperCase     localeToUpperCase;
    JSLocaleToLowerCase     localeToLowerCase;
    JSLocaleCompare         localeCompare; // not used #if EXPOSE_INTL_API
    JSLocaleToUnicode       localeToUnicode;

typedef bool
(* JSLocaleToUpperCase)(JSContext *cx, JS::HandleString src, JS::MutableHandleValue rval);

typedef bool
(* JSLocaleToLowerCase)(JSContext *cx, JS::HandleString src, JS::MutableHandleValue rval);

typedef bool
(* JSLocaleCompare)(JSContext *cx, JS::HandleString src1, JS::HandleString src2,
                    JS::MutableHandleValue rval);

typedef bool
(* JSLocaleToUnicode)(JSContext *cx, const char *src, JS::MutableHandleValue rval);
Type Description
JSLocaleToUpperCase Implementation of String.prototype.toLocaleUpperCase() function.
JSLocaleToLowerCase Implementation of String.prototype.toLocaleLowerCase() function.
JSLocaleCompare Implementation of String.prototype.localeCompare() function. If EXPOSE_INTL_API is defined, Intl API is used instead.
JSLocaleToUnicode Convert locale specific string to Unicode string.


JS_SetLocaleCallbacks establishes locale callbacks. The pointer must persist as long as the JSRuntime. Passing nullptr restores the default behaviour.

JS_GetLocaleCallbacks returns the address of the current locale callbacks struct, which may be nullptr.

See Also

Document Tags and Contributors

 Contributors to this page: fscholz, arai
 Last updated by: fscholz,