static void _dumpJSDScript(JSDContext* jsdc, JSDScript* jsdscript, const char* leadingtext) { const char* name; const char* fun; uintN base; uintN extent; char Buf[256]; name = jsd_GetScriptFilename(jsdc, jsdscript); fun = jsd_GetScriptFunctionName(jsdc, jsdscript); base = jsd_GetScriptBaseLineNumber(jsdc, jsdscript); extent = jsd_GetScriptLineExtent(jsdc, jsdscript); sprintf( Buf, "%sscript=%08X, %s, %s, %d-%d\n", leadingtext, (unsigned) jsdscript->script, name ? name : "no URL", fun ? fun : "no fun", base, base + extent - 1 ); OutputDebugString( Buf ); }
void jsd_Constructing(JSDContext* jsdc, JSContext *cx, JSObject *obj, JSStackFrame *fp) { JSDObject* jsdobj; JSScript* script; JSDScript* jsdscript; const char* ctorURL; const char* ctorName; JSD_LOCK_OBJECTS(jsdc); jsdobj = jsd_GetJSDObjectForJSObject(jsdc, obj); if( jsdobj && !jsdobj->ctorURL && !JS_IsNativeFrame(cx, fp) ) { script = JS_GetFrameScript(cx, fp); if( script ) { ctorURL = JS_GetScriptFilename(cx, script); if( ctorURL ) jsdobj->ctorURL = jsd_AddAtom(jsdc, ctorURL); JSD_LOCK_SCRIPTS(jsdc); jsdscript = jsd_FindOrCreateJSDScript(jsdc, cx, script, fp); JSD_UNLOCK_SCRIPTS(jsdc); if( jsdscript ) { ctorName = jsd_GetScriptFunctionName(jsdc, jsdscript); if( ctorName ) jsdobj->ctorName = jsd_AddAtom(jsdc, ctorName); } jsdobj->ctorLineno = JS_GetScriptBaseLineNumber(cx, script); } } TRACEOBJ(jsdc, jsdobj, 3); JSD_UNLOCK_OBJECTS(jsdc); }
JSD_GetScriptFunctionName(JSDContext* jsdc, JSDScript *jsdscript) { JSD_ASSERT_VALID_CONTEXT(jsdc); JSD_ASSERT_VALID_SCRIPT(jsdscript); return jsd_GetScriptFunctionName(jsdc, jsdscript); }