Search completed in 0.98 seconds.
11 results for "JSTracer":
Tracing JIT
the tracing jit in spidermonkey consists of a generic, low level component called nanojit which is co-maintained between adobe and mozilla, and a spidermonkey-specific high level component called
jstracer.
...the
jstracer component consists of a monitor and a recorder.
... the recorder in
jstracer inserts lins values into a lir buffer held in a page, itself contained within a logical fragment, and the nanojit compilation pipeline and assembler transform the lins values into nins values.
... spidermonkey-specific high level component:
jstracer.* the files
jstracer.cpp and
jstracer.h contain a the mechanisms of monitoring and recording the activity of the interpreter.
Index
439 js_set_tracing_details jsapi reference, spidermonkey set debugging information about the next thing to be traced by a
jstracer.
... 537 tracing jit deprecated, spidermonkey the tracing jit in spidermonkey consists of a generic, low level component called nanojit which is co-maintained between adobe and mozilla, and a spidermonkey-specific high level component called
jstracer.
...the
jstracer component consists of a monitor and a recorder.
JS_SET_TRACING_DETAILS
this article covers features introduced in spidermonkey 1.8 set debugging information about the next thing to be traced by a
jstracer.
... syntax js_set_tracing_details(trc, printer, arg, index) name type description trc
jstracer * the tracer whose debugging hooks are to be set.
... callback syntax typedef void (*jstracenameprinter)(
jstracer *trc, char *buf, size_t bufsize); name type description trc
jstracer * the tracer.
JS_TracerInit
this article covers features introduced in spidermonkey 1.8 note: in jsapi 12, the macro js_tracer_init has been replaced by the function js_tracerinit initialize a
jstracer for object graph tracing.
... syntax void js_tracerinit(
jstracer *trc, jsruntime *rt, jstracecallback callback); name type description trc
jstracer * the tracer to be initialized.
... callback syntax typedef void (*jstracecallback)(
jstracer *trc, void *thing, uint32 kind); name type description trc
jstracer * the tracer visiting obj.
GC Rooting Guide
the usual way is to define a void trace(
jstracer* trc, const char* name) method on the class -- which is already enough be able to create a js::rooted<yourstruct> on the stack -- and then arrange for it to be called during tracing.
... static void trace(
jstracer* trc, jsobject* obj) { myclass* mine = static_cast<myclass*>(obj->getprivate()); mine->trace(trc, "myclass private field"); } } class myclass { heap<jsstring*> str; public: void trace(
jstracer* trc, const char* name) { js::traceedge(trc, &str, "my string"); } } if a pointer to your structure is stored in some other structure, then its trace() method should invoke yours: struct myowningstruct { myclass* mything; void trace(
jstracer* trc, const ch...
nsIXPCScriptable
bjectptr obj, in pruint32 argc, in jsvalptr argv, in jsvalptr vp); prbool construct(in nsixpconnectwrappednative wrapper, in jscontextptr cx, in jsobjectptr obj, in pruint32 argc, in jsvalptr argv, in jsvalptr vp); prbool hasinstance(in nsixpconnectwrappednative wrapper, in jscontextptr cx, in jsobjectptr obj, in jsval val, out prbool bp); void trace(in nsixpconnectwrappednative wrapper, in
jstracerptr trc, in jsobjectptr obj); prbool equality(in nsixpconnectwrappednative wrapper, in jscontextptr cx, in jsobjectptr obj, in jsval val); jsobjectptr outerobject(in nsixpconnectwrappednative wrapper, in jscontextptr cx, in jsobjectptr obj); jsobjectptr innerobject(in nsixpconnectwrappednative wrapper, in jscontextptr cx, in jsobjectptr obj); void postcreateprototype(in jscontextptr cx, in...
...jsvalptr argv, in jsvalptr vp ); parameters wrapper cx obj argc argv vp return value hasinstance() prbool hasinstance( in nsixpconnectwrappednative wrapper, in jscontextptr cx, in jsobjectptr obj, in jsval val, out prbool bp ); parameters wrapper cx obj val bp return value trace() void trace( in nsixpconnectwrappednative wrapper, in
jstracerptr trc, in jsobjectptr obj ); parameters wrapper trc obj equality() prbool equality( in nsixpconnectwrappednative wrapper, in jscontextptr cx, in jsobjectptr obj, in jsval val ); parameters wrapper cx obj val return value outerobject() jsobjectptr outerobject( in nsixpconnectwrappednative wrapper, in jscontextptr cx, in jsobjectptr obj ); para...
Nanojit - Archive of obsolete content
#include <stdio.h> #include <stdint.h> #include "jsapi.h" #include "
jstracer.h" #include "nanojit.h" using namespace nanojit; const uint32_t cache_size_log2 = 20; static avmplus::gc gc = avmplus::gc(); static avmplus::avmcore core = avmplus::avmcore(); int main() { logcontrol lc; #ifdef debug lc.lcbits = lc_readlir | lc_assembly; #else lc.lcbits = 0; #endif // set up the basic nanojit objects.
64-bit Compatibility
this article focuses on hacking tracemonkey code generation (
jstracer.cpp, jsregex.cpp) in ways that will work on both 32-bit and 64-bit jit backends.
JSTraceOp
syntax typedef void (* jstraceop)(
jstracer *trc, jsobject *obj); name type description trc
jstracer * the tracer visiting obj.
JS_SetExtraGCRoots
callback syntax typedef void jstracedataop (
jstracer *trc, void *data); argument meaning trc tracing data, to be passed through to js_calltracer.
JSAPI reference
(for example, these apis support very smooth integration between the js garbage collector and other garbage collectors.) struct
jstracer added in spidermonkey 1.8 js_tracechildren added in spidermonkey 1.8 js_traceruntime added in spidermonkey 1.8 jsval_is_traceable added in spidermonkey 1.8 obsolete since jsapi 31 jsval_to_traceable added in spidermonkey 1.8 obsolete since jsapi 31 jsval_trace_kind added in spidermonkey 1.8 obsolete since jsapi 31 js_tracer_init added in spidermonkey 1.8 obsolete since jsapi 12 js_trace...