Mozilla.com

  1. MDC
  2. Main Page
  3. SpiderMonkey
  4. JSAPI Reference
  5. JSObjectOps.defaultValue
Table of contents
  1. 1. Syntax
  2. 2. Description
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)