MDN’s new design is in Beta! A sneak peek:


This article covers features introduced in SpiderMonkey 38

Convert an ordinary object to a primitive value.


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.


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.

See Also

Document Tags and Contributors

 Contributors to this page: kscarfone, arai
 Last updated by: kscarfone,