Convert a JavaScript value to an integer type as specified by the ECMAScript standard.


JSBool JS_ValueToECMAInt32(JSContext *cx, jsval v, int32 *ip);

JSBool JS_ValueToECMAUint32(JSContext *cx, jsval v, uint32 *ip);

JSBool JS_ValueToUint16(JSContext *cx, jsval v, uint16 *ip);
Name Type Description
cx JSContext * The context in which to perform the conversion. Requires request. In a JS_THREADSAFE build, the caller must be in a request on this JSContext.
v jsval The JavaScript value to convert.
ip int32 *
or uint32 *
or uint16 *
Out parameter. On success, *ip receives the converted value.


JS_ValueToECMAInt32, JS_ValueToECMAUint32, and JS_ValueToUint16 convert a JavaScript value to various integer types as specified in the ECMAScript specification.

  • JS_ValueToECMAInt32 implements the ToInt32 operator specified in ECMA 262-3 §9.5.
  • JS_ValueToECMAUint32 implements the ToUint32 operator specified in ECMA 262-3 §9.6.
  • JS_ValueToUint16 implements the ToUint16 operator specified in ECMA 262-3 §9.7.

All three functions first convert v to a floating-point number as if by calling JS_ValueToNumber; NaN values are then converted to zero. If that succeeds, the result is then converted to the target integer type. This second conversion cannot fail.

On success, JS_ValueToECMAInt32 stores the converted value in *ip and returns JS_TRUE. On error or exception, it returns JS_FALSE, and the value left in *ip is undefined.

See Also

MXR ID Search for JS_ValueToECMAInt32
MXR ID Search for JS_ValueToECMAUint32
MXR ID Search for JS_ValueToUint16

JS_ConvertArguments, JS_ValueToInt32

Document Tags and Contributors

Contributors to this page: Wesgarland, MMondor, Dria, Jorend
Last updated by: Jorend,