This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

use JS_NumberValue instead

Convert a C floating-point number of type jsdouble to a jsval.


JS_NewNumberValue(JSContext *cx, jsdouble d, jsval *rval);
Name Type Description
cx JSContext * The context in which to create the new number. Requires request. In a JS_THREADSAFE build, the caller must be in a request on this JSContext.
d jsdouble The numeric value to convert.
rval jsval * Out parameter. On success, *rval receives a JavaScript number with the value d.


JS_NewNumberValue converts a C floating-point number of type jsdouble to jsval, the type of JavaScript values.

The result is an integer jsval if d can be stored that way. Otherwise, a new floating-point jsval is created.

Some space for the new value may be allocated from the JS garbage collection heap. In this case, the value is subject to garbage collection until you protect against it using a local root, an object property, or the JS_AddRoot function. This can be avoided by using the address of a rooted variable as rval.

On success, JS_NewNumberValue stores a numeric jsval in *rval and returns JS_TRUE. Otherwise it returns JS_FALSE and the value left in *rval is unspecified.

See Also