User Guide

380 Chapter 4: C-Level Extensibility
JSBool JS_ValueToObject()
Usage
JSBool JS_ValueToObject(JSContext *cx, jsval v, JSObject **op);
Description
Method; extracts a function argument from a jsval structure, converts it to an object (if
possible), and passes the converted value back to the caller. If the object is an array, use
JS_GetArrayLength() and JS_GetElement() to read its contents.
Arguments
JSContext *cx
, jsval v, JSObject **op
The cx argument is the opaque JSContext pointer that passes to the JavaScript function.
The v argument is the jsval structure from which the object is to be extracted.
The op argument is a pointer to a JSObject pointer. This function stores the converted value
in
*op.
Returns
A Boolean value: JS_TRUE indicates success; JS_FALSE indicates failure.
JSBool JS_StringToValue()
Usage
JSBool JS_StringToValue(JSContext *cx, unsigned short *bytes, uint sz, jsval
*vp);
Description
Method; stores a string return value in a jsval structure. It allocates a new JavaScript string
object.
Arguments
JSContext *cx
, unsigned short *bytes, size_t sz, jsval *vp
The cx argument is the opaque JSContext pointer that passes to the JavaScript function.
The bytes argument is the string to be stored in the jsval structure. The string data is copied,
so the caller should free the string when it is not needed. If the string size is not specified (see
the
sz argument), the string must be null-terminated.
The sz argument is the size of the string, in bytes. If sz is 0, the length of the null-terminated
string is computed automatically.
The vp argument is a pointer to the jsval structure into which the contents of the string
should be copied.
Returns
A Boolean value: JS_TRUE indicates success; JS_FALSE indicates failure.