typedef JSBool (*JSNative)(JSContext *cx, JSObject *obj, unsigned int argc, jsval *argv, jsval *rval)

Description

This function signature describes C-level implementations of JavaScript functions in the following situations:

  • The cx pointer is a pointer to an opaque JSContext structure, which must be passed to some of the functions in the JavaScript API. This variable holds the interpreter's execution context.
  • The obj pointer is a pointer to the object in whose context the script executes. While the script is running, the this keyword is equal to this object.
  • The argc integer is the number of arguments being passed to the function.
  • The argv pointer is a pointer to an array of jsval structures. The array is argc elements in length.
  • The rval pointer is a pointer to a single jsval structure. The function's return value should be written to *rval.

The function returns JS_TRUE if successful; JS_FALSE otherwise. If the function returns JS_FALSE, the current script stops executing and an error message appears.