Mozilla.com

  1. MDC
  2. Main Page
  3. SpiderMonkey
  4. JSAPI Reference
  5. JSObjectOps.defaultValue
Table of contents
  1. 1. Syntax
  2. 2. Description
Redirected from En/JSConvertOp

JSObjectOps.defaultValue

Table of contents
  1. 1. Syntax
  2. 2. Description

Warning sign
Warning: JSObjectOps is not a supported API. Details of the API may change from one release to the next. This documentation should be considered SpiderMonkey internals documentation, not API documentation. See bug 408416 .

The JavaScript engine calls the JSObjectOps.defaultValue and JSClass.convert callbacks to convert objects to primitive values.

Syntax

typedef JSBool (*JSConvertOp)(JSContext *cx, JSObject *obj, JSType type,
    jsval *vp);
Name Type Description
cx JSContext * Pointer to the JS context in which the conversion is needed.
obj JSObject * The object to be converted.
type JSType The target type.
vp jsval * Out parameter. On success, the callback must store the converted value here.

Description

The JSObjectOps.defaultValue callback corresponds to the [[DefaultValue]] method defined in ECMA 262-3 §8.6.2.6 . Many expressions in the ECMAScript language, such as a+b, involve implicit conversion of the operands using [[DefaultValue]].

The behavior for ordinary objects is as described in ECMA 262-3 §8.6.2.6 for [[DefaultValue]]. It calls the JavaScript methods obj.valueOf() and/or obj.toString(). Provide a custom JSObjectOps.defaultValue callback to override this behavior.

The JSClass.convert callback is called from the parts of that default [[DefaultValue]] behavior that would call obj.valueOf(). It should convert obj to the given type, returning JS_TRUE with the resulting value in *vp on success, and returning JS_FALSE on error or exception.

JS_ConvertStub implements the default behavior for the JSClass.convert hook, which is to call obj.valueOf().

Page last modified 21:54, 6 Mar 2008 by Jorend

Files (0)