This article covers features introduced in SpiderMonkey 1.8

Register externally maintained GC roots.


 void JS_SetExtraGCRoots(JSRuntime *rt, JSTraceDataOp traceop, void *data);
Argument Meaning
rt The runtime whose trace operation is to be set.
traceop The trace operation. This is described below.
data Closure pointer, to be passed through to traceop.

Callback Syntax

 typedef void JSTraceDataOp (JSTracer *trc, void *data);
Argument Meaning
trc Tracing data, to be passed through to JS_CallTracer.
data Closure pointer. This is the data value that was passed to JS_SetExtraGCRoots when this callback function was installed.

Callback Description

Generic trace operation that calls JS_CallTracer on additional traceable things.