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_THREADSAFE build, the caller must be in a request on this JSContext . |
obj |
JS::HandleObject |
The object to convert. |
type |
JSType |
The type of converted value. |
vp |
JS::MutableHandleValue |
Out parameter. On success, *vp receives 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.