This article covers features introduced in SpiderMonkey 38
Convert an ordinary object to a primitive value.
Syntax
bool
JS::OrdinaryToPrimitive(JSContext *cx, JS::HandleObject obj, JSType type,
                        JS::MutableHandleValue vp);
| Name | Type | Description | 
|---|---|---|
| cx | JSContext * | The context in which to perform the conversion. Requires request. In a JS_THREADSAFEbuild, the caller must be in a request on thisJSContext. | 
| obj | JS::HandleObject | The object to convert. | 
| type | JSType | The type of converted value. | 
| vp | JS::MutableHandleValue | Out parameter. On success, *vpreceives the converted value. | 
Description
JS::OrdinaryToPrimitive converts a JavaScript object to a specified type value, by the algorithm specified in ES6 draft rev 28 (2014 Oct 14) 7.1.1, second algorithm.
Most users should not call this -- use JS::ToNumber, JS::ToBoolean, or JS::ToString instead. This should only be called from custom convert hooks. It implements the default conversion behavior shared by most objects in JS, so it's useful as a fallback.
On success, JS::OrdinaryToPrimitive stores the converted value in *vp and returns true. On error or exception, it returns false, and the value left in *vp is undefined.