pub type JSObjectCallAsFunctionCallback = Option<unsafe extern "C" fn(ctx: JSContextRef, function: JSObjectRef, thisObject: JSObjectRef, argumentCount: usize, arguments: *const JSValueRef, exception: *mut JSValueRef) -> *const OpaqueJSValue>;
Expand description

The callback invoked when an object is called as a function.

  • ctx: The execution context to use.
  • function: A JSObject that is the function being called.
  • thisObject: A JSObject that is the this variable in the function’s scope.
  • argumentCount: An integer count of the number of arguments in arguments.
  • arguments: A JSValue array of the arguments passed to the function.
  • exception: A pointer to a JSValueRef in which to return an exception, if any.

Returns a JSValue that is the function’s return value.

If you named your function CallAsFunction, you would declare it like this:

JSValueRef
CallAsFunction(JSContextRef ctx, JSObjectRef function,
               JSObjectRef thisObject,
               size_t argumentCount, const JSValueRef arguments[],
               JSValueRef* exception);

If your callback were invoked by the JavaScript expression myObject.myFunction(), function would be set to myFunction, and thisObject would be set to myObject.

If this callback is NULL, calling your object as a function will throw an exception.