Obsolete since JSAPI 37
This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.
Introduced in JavaScript 1.8.5
Sets a callback to be run whenever a JavaScript function is invoked or exited. This lets you trace the execution of code, and is particularly useful for JavaScript tracers and profilers since it works across all run modes (interpreter, method JIT, trace JIT). Using this function may have a significant performance impact. See Function tracing for an example.
MOZ_TRACE_JSCALLS
was defined at compile time using --enable-trace-jscalls
.Syntax
void JS_SetFunctionCallback(JSContext *cx, JSFunctionCallback fcb);
Name | Type | Description |
---|---|---|
cx |
JSContext * |
Pointer to a JS context from which to derive runtime information. Requires request. In a JS_THREADSAFE build, the caller must be in a request on this JSContext . |
fcb |
JSFunctionCallback |
The callback to execute when JavaScript functions are invoked and exited. Specify NULL to stop calling the current callback. The callback must not modify the current state of execution. The call stack cannot be relied upon, because this callback may be invoked from the JIT code when the stack frame and context are in an indeterminate state. |
Description
JS_SetFunctionCallback
sets a C function to be called each time a JavaScript function is invoked or exits.
fcb
is a pointer to the C function to call.
Note that debuggers should probably use JS_SetCallHook
in preference to this function, because it is invoked when the Javascript stack is guaranteed to be in a consistent state (and therefore it is valid to inspect and modify local variables, generate stack traces, and set breakpoints.)
Callback syntax
typedef void (* JSFunctionCallback)(const JSFunction *fun,const JSScript *scr, const JSContext *cx, int entering);
Name | Type | Description |
---|---|---|
fun |
const JSFunction * |
The JavaScript function being invoked or exited. |
scr |
const JSScript * |
The script being executed. |
cx |
JSContext * |
The JavaScript context in which the script is being run. |
entering |
int |
true if the callback is being called because the specified function is being invoked or false if the function is exiting. |