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.
