Obsolete since JSAPI 17
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.

Create a floating-point jsval


JS_NewDoubleValue(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. This must not be a value that could fit in an integer jsval (see INT_FITS_IN_JSVAL).
rval jsval * Out parameter. On success, *rval receives a JavaScript number with the value d.


JS_NewDoubleValue creates a floating-point jsval.

Warning: The argument d must not be a value that could fit in an integer jsval. If it is, JS_NewDoubleValue creates a bad jsval that might behave as desired in some cases but not others.

The result 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_NewDoubleValue 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