Loading js/src/jsapi.c +7 −7 Original line number Diff line number Diff line Loading @@ -4699,7 +4699,7 @@ JS_ExecuteScriptPart(JSContext *cx, JSObject *obj, JSScript *script, JSExecPart part, jsval *rval) { JSScript tmp; JSDebugHooks *hooks; JSRuntime *rt; JSBool ok; /* Make a temporary copy of the JSScript structure and farble it a bit. */ Loading @@ -4712,16 +4712,16 @@ JS_ExecuteScriptPart(JSContext *cx, JSObject *obj, JSScript *script, } /* Tell the debugger about our temporary copy of the script structure. */ hooks = cx->debugHooks; if (hooks->newScriptHook) { hooks->newScriptHook(cx, tmp.filename, tmp.lineno, &tmp, NULL, hooks->newScriptHookData); rt = cx->runtime; if (rt->newScriptHook) { rt->newScriptHook(cx, tmp.filename, tmp.lineno, &tmp, NULL, rt->newScriptHookData); } /* Execute the farbled struct and tell the debugger to forget about it. */ ok = JS_ExecuteScript(cx, obj, &tmp, rval); if (hooks->destroyScriptHook) hooks->destroyScriptHook(cx, &tmp, hooks->destroyScriptHookData); if (rt->destroyScriptHook) rt->destroyScriptHook(cx, &tmp, rt->destroyScriptHookData); return ok; } Loading js/src/jscntxt.c +7 −8 Original line number Diff line number Diff line Loading @@ -225,7 +225,6 @@ js_NewContext(JSRuntime *rt, size_t stackChunkSize) memset(cx, 0, sizeof *cx); cx->runtime = rt; cx->debugHooks = &rt->globalDebugHooks; #if JS_STACK_GROWTH_DIRECTION > 0 cx->stackLimit = (jsuword)-1; #endif Loading Loading @@ -852,11 +851,11 @@ ReportError(JSContext *cx, const char *message, JSErrorReport *reportp) */ if (!js_ErrorToException(cx, message, reportp)) { js_ReportErrorAgain(cx, message, reportp); } else if (cx->debugHooks->debugErrorHook && cx->errorReporter) { JSDebugErrorHook hook = cx->debugHooks->debugErrorHook; } else if (cx->runtime->debugErrorHook && cx->errorReporter) { JSDebugErrorHook hook = cx->runtime->debugErrorHook; /* test local in case debugErrorHook changed on another thread */ if (hook) hook(cx, message, reportp, cx->debugHooks->debugErrorHookData); hook(cx, message, reportp, cx->runtime->debugErrorHookData); } } Loading Loading @@ -901,9 +900,9 @@ js_ReportOutOfMemory(JSContext *cx) * sending the error on to the regular ErrorReporter. */ if (onError) { JSDebugErrorHook hook = cx->debugHooks->debugErrorHook; JSDebugErrorHook hook = cx->runtime->debugErrorHook; if (hook && !hook(cx, msg, &report, cx->debugHooks->debugErrorHookData)) { !hook(cx, msg, &report, cx->runtime->debugErrorHookData)) { onError = NULL; } } Loading Loading @@ -1203,10 +1202,10 @@ js_ReportErrorAgain(JSContext *cx, const char *message, JSErrorReport *reportp) * sending the error on to the regular ErrorReporter. */ if (onError) { JSDebugErrorHook hook = cx->debugHooks->debugErrorHook; JSDebugErrorHook hook = cx->runtime->debugErrorHook; if (hook && !hook(cx, cx->lastMessage, reportp, cx->debugHooks->debugErrorHookData)) { cx->runtime->debugErrorHookData)) { onError = NULL; } } Loading js/src/jscntxt.h +21 −5 Original line number Diff line number Diff line Loading @@ -264,8 +264,27 @@ struct JSRuntime { /* List of active contexts sharing this runtime; protected by gcLock. */ JSCList contextList; /* Per runtime debug hooks -- see jsprvtd.h and jsdbgapi.h. */ JSDebugHooks globalDebugHooks; /* These are used for debugging -- see jsprvtd.h and jsdbgapi.h. */ JSTrapHandler interruptHandler; void *interruptHandlerData; JSNewScriptHook newScriptHook; void *newScriptHookData; JSDestroyScriptHook destroyScriptHook; void *destroyScriptHookData; JSTrapHandler debuggerHandler; void *debuggerHandlerData; JSSourceHandler sourceHandler; void *sourceHandlerData; JSInterpreterHook executeHook; void *executeHookData; JSInterpreterHook callHook; void *callHookData; JSObjectHook objectHook; void *objectHookData; JSTrapHandler throwHook; void *throwHookData; JSDebugErrorHook debugErrorHook; void *debugErrorHookData; /* More debugging state, see jsdbgapi.c. */ JSCList trapList; Loading Loading @@ -767,9 +786,6 @@ struct JSContext { /* Stack of thread-stack-allocated temporary GC roots. */ JSTempValueRooter *tempValueRooters; /* Debug hooks associated with the current context. */ JSDebugHooks *debugHooks; }; #ifdef JS_THREADSAFE Loading js/src/jsdbgapi.c +24 −43 Original line number Diff line number Diff line Loading @@ -296,8 +296,8 @@ JS_HandleTrap(JSContext *cx, JSScript *script, jsbytecode *pc, jsval *rval) JS_PUBLIC_API(JSBool) JS_SetInterrupt(JSRuntime *rt, JSTrapHandler handler, void *closure) { rt->globalDebugHooks.interruptHandler = handler; rt->globalDebugHooks.interruptHandlerData = closure; rt->interruptHandler = handler; rt->interruptHandlerData = closure; return JS_TRUE; } Loading @@ -305,11 +305,11 @@ JS_PUBLIC_API(JSBool) JS_ClearInterrupt(JSRuntime *rt, JSTrapHandler *handlerp, void **closurep) { if (handlerp) *handlerp = (JSTrapHandler)rt->globalDebugHooks.interruptHandler; *handlerp = (JSTrapHandler)rt->interruptHandler; if (closurep) *closurep = rt->globalDebugHooks.interruptHandlerData; rt->globalDebugHooks.interruptHandler = 0; rt->globalDebugHooks.interruptHandlerData = 0; *closurep = rt->interruptHandlerData; rt->interruptHandler = 0; rt->interruptHandlerData = 0; return JS_TRUE; } Loading Loading @@ -1115,16 +1115,16 @@ JS_GetScriptVersion(JSContext *cx, JSScript *script) JS_PUBLIC_API(void) JS_SetNewScriptHook(JSRuntime *rt, JSNewScriptHook hook, void *callerdata) { rt->globalDebugHooks.newScriptHook = hook; rt->globalDebugHooks.newScriptHookData = callerdata; rt->newScriptHook = hook; rt->newScriptHookData = callerdata; } JS_PUBLIC_API(void) JS_SetDestroyScriptHook(JSRuntime *rt, JSDestroyScriptHook hook, void *callerdata) { rt->globalDebugHooks.destroyScriptHook = hook; rt->globalDebugHooks.destroyScriptHookData = callerdata; rt->destroyScriptHook = hook; rt->destroyScriptHookData = callerdata; } /***************************************************************************/ Loading Loading @@ -1375,56 +1375,56 @@ JS_PutPropertyDescArray(JSContext *cx, JSPropertyDescArray *pda) JS_PUBLIC_API(JSBool) JS_SetDebuggerHandler(JSRuntime *rt, JSTrapHandler handler, void *closure) { rt->globalDebugHooks.debuggerHandler = handler; rt->globalDebugHooks.debuggerHandlerData = closure; rt->debuggerHandler = handler; rt->debuggerHandlerData = closure; return JS_TRUE; } JS_PUBLIC_API(JSBool) JS_SetSourceHandler(JSRuntime *rt, JSSourceHandler handler, void *closure) { rt->globalDebugHooks.sourceHandler = handler; rt->globalDebugHooks.sourceHandlerData = closure; rt->sourceHandler = handler; rt->sourceHandlerData = closure; return JS_TRUE; } JS_PUBLIC_API(JSBool) JS_SetExecuteHook(JSRuntime *rt, JSInterpreterHook hook, void *closure) { rt->globalDebugHooks.executeHook = hook; rt->globalDebugHooks.executeHookData = closure; rt->executeHook = hook; rt->executeHookData = closure; return JS_TRUE; } JS_PUBLIC_API(JSBool) JS_SetCallHook(JSRuntime *rt, JSInterpreterHook hook, void *closure) { rt->globalDebugHooks.callHook = hook; rt->globalDebugHooks.callHookData = closure; rt->callHook = hook; rt->callHookData = closure; return JS_TRUE; } JS_PUBLIC_API(JSBool) JS_SetObjectHook(JSRuntime *rt, JSObjectHook hook, void *closure) { rt->globalDebugHooks.objectHook = hook; rt->globalDebugHooks.objectHookData = closure; rt->objectHook = hook; rt->objectHookData = closure; return JS_TRUE; } JS_PUBLIC_API(JSBool) JS_SetThrowHook(JSRuntime *rt, JSTrapHandler hook, void *closure) { rt->globalDebugHooks.throwHook = hook; rt->globalDebugHooks.throwHookData = closure; rt->throwHook = hook; rt->throwHookData = closure; return JS_TRUE; } JS_PUBLIC_API(JSBool) JS_SetDebugErrorHook(JSRuntime *rt, JSDebugErrorHook hook, void *closure) { rt->globalDebugHooks.debugErrorHook = hook; rt->globalDebugHooks.debugErrorHookData = closure; rt->debugErrorHook = hook; rt->debugErrorHookData = closure; return JS_TRUE; } Loading Loading @@ -1574,22 +1574,3 @@ JS_FlagSystemObject(JSContext *cx, JSObject *obj) flagp = js_GetGCThingFlags(obj); *flagp |= GCF_SYSTEM; } /************************************************************************/ JS_PUBLIC_API(JSDebugHooks *) JS_GetGlobalDebugHooks(JSRuntime *rt) { return &rt->globalDebugHooks; } JS_PUBLIC_API(JSDebugHooks *) JS_SetContextDebugHooks(JSContext *cx, JSDebugHooks *hooks) { JSDebugHooks *old; JS_ASSERT(hooks); old = cx->debugHooks; cx->debugHooks = hooks; return old; } js/src/jsdbgapi.h +0 −8 Original line number Diff line number Diff line Loading @@ -404,14 +404,6 @@ JS_IsSystemObject(JSContext *cx, JSObject *obj); extern JS_PUBLIC_API(void) JS_FlagSystemObject(JSContext *cx, JSObject *obj); /************************************************************************/ extern JS_PUBLIC_API(JSDebugHooks *) JS_GetGlobalDebugHooks(JSRuntime *rt); extern JS_PUBLIC_API(JSDebugHooks *) JS_SetContextDebugHooks(JSContext *cx, JSDebugHooks *hooks); JS_END_EXTERN_C #endif /* jsdbgapi_h___ */ Loading
js/src/jsapi.c +7 −7 Original line number Diff line number Diff line Loading @@ -4699,7 +4699,7 @@ JS_ExecuteScriptPart(JSContext *cx, JSObject *obj, JSScript *script, JSExecPart part, jsval *rval) { JSScript tmp; JSDebugHooks *hooks; JSRuntime *rt; JSBool ok; /* Make a temporary copy of the JSScript structure and farble it a bit. */ Loading @@ -4712,16 +4712,16 @@ JS_ExecuteScriptPart(JSContext *cx, JSObject *obj, JSScript *script, } /* Tell the debugger about our temporary copy of the script structure. */ hooks = cx->debugHooks; if (hooks->newScriptHook) { hooks->newScriptHook(cx, tmp.filename, tmp.lineno, &tmp, NULL, hooks->newScriptHookData); rt = cx->runtime; if (rt->newScriptHook) { rt->newScriptHook(cx, tmp.filename, tmp.lineno, &tmp, NULL, rt->newScriptHookData); } /* Execute the farbled struct and tell the debugger to forget about it. */ ok = JS_ExecuteScript(cx, obj, &tmp, rval); if (hooks->destroyScriptHook) hooks->destroyScriptHook(cx, &tmp, hooks->destroyScriptHookData); if (rt->destroyScriptHook) rt->destroyScriptHook(cx, &tmp, rt->destroyScriptHookData); return ok; } Loading
js/src/jscntxt.c +7 −8 Original line number Diff line number Diff line Loading @@ -225,7 +225,6 @@ js_NewContext(JSRuntime *rt, size_t stackChunkSize) memset(cx, 0, sizeof *cx); cx->runtime = rt; cx->debugHooks = &rt->globalDebugHooks; #if JS_STACK_GROWTH_DIRECTION > 0 cx->stackLimit = (jsuword)-1; #endif Loading Loading @@ -852,11 +851,11 @@ ReportError(JSContext *cx, const char *message, JSErrorReport *reportp) */ if (!js_ErrorToException(cx, message, reportp)) { js_ReportErrorAgain(cx, message, reportp); } else if (cx->debugHooks->debugErrorHook && cx->errorReporter) { JSDebugErrorHook hook = cx->debugHooks->debugErrorHook; } else if (cx->runtime->debugErrorHook && cx->errorReporter) { JSDebugErrorHook hook = cx->runtime->debugErrorHook; /* test local in case debugErrorHook changed on another thread */ if (hook) hook(cx, message, reportp, cx->debugHooks->debugErrorHookData); hook(cx, message, reportp, cx->runtime->debugErrorHookData); } } Loading Loading @@ -901,9 +900,9 @@ js_ReportOutOfMemory(JSContext *cx) * sending the error on to the regular ErrorReporter. */ if (onError) { JSDebugErrorHook hook = cx->debugHooks->debugErrorHook; JSDebugErrorHook hook = cx->runtime->debugErrorHook; if (hook && !hook(cx, msg, &report, cx->debugHooks->debugErrorHookData)) { !hook(cx, msg, &report, cx->runtime->debugErrorHookData)) { onError = NULL; } } Loading Loading @@ -1203,10 +1202,10 @@ js_ReportErrorAgain(JSContext *cx, const char *message, JSErrorReport *reportp) * sending the error on to the regular ErrorReporter. */ if (onError) { JSDebugErrorHook hook = cx->debugHooks->debugErrorHook; JSDebugErrorHook hook = cx->runtime->debugErrorHook; if (hook && !hook(cx, cx->lastMessage, reportp, cx->debugHooks->debugErrorHookData)) { cx->runtime->debugErrorHookData)) { onError = NULL; } } Loading
js/src/jscntxt.h +21 −5 Original line number Diff line number Diff line Loading @@ -264,8 +264,27 @@ struct JSRuntime { /* List of active contexts sharing this runtime; protected by gcLock. */ JSCList contextList; /* Per runtime debug hooks -- see jsprvtd.h and jsdbgapi.h. */ JSDebugHooks globalDebugHooks; /* These are used for debugging -- see jsprvtd.h and jsdbgapi.h. */ JSTrapHandler interruptHandler; void *interruptHandlerData; JSNewScriptHook newScriptHook; void *newScriptHookData; JSDestroyScriptHook destroyScriptHook; void *destroyScriptHookData; JSTrapHandler debuggerHandler; void *debuggerHandlerData; JSSourceHandler sourceHandler; void *sourceHandlerData; JSInterpreterHook executeHook; void *executeHookData; JSInterpreterHook callHook; void *callHookData; JSObjectHook objectHook; void *objectHookData; JSTrapHandler throwHook; void *throwHookData; JSDebugErrorHook debugErrorHook; void *debugErrorHookData; /* More debugging state, see jsdbgapi.c. */ JSCList trapList; Loading Loading @@ -767,9 +786,6 @@ struct JSContext { /* Stack of thread-stack-allocated temporary GC roots. */ JSTempValueRooter *tempValueRooters; /* Debug hooks associated with the current context. */ JSDebugHooks *debugHooks; }; #ifdef JS_THREADSAFE Loading
js/src/jsdbgapi.c +24 −43 Original line number Diff line number Diff line Loading @@ -296,8 +296,8 @@ JS_HandleTrap(JSContext *cx, JSScript *script, jsbytecode *pc, jsval *rval) JS_PUBLIC_API(JSBool) JS_SetInterrupt(JSRuntime *rt, JSTrapHandler handler, void *closure) { rt->globalDebugHooks.interruptHandler = handler; rt->globalDebugHooks.interruptHandlerData = closure; rt->interruptHandler = handler; rt->interruptHandlerData = closure; return JS_TRUE; } Loading @@ -305,11 +305,11 @@ JS_PUBLIC_API(JSBool) JS_ClearInterrupt(JSRuntime *rt, JSTrapHandler *handlerp, void **closurep) { if (handlerp) *handlerp = (JSTrapHandler)rt->globalDebugHooks.interruptHandler; *handlerp = (JSTrapHandler)rt->interruptHandler; if (closurep) *closurep = rt->globalDebugHooks.interruptHandlerData; rt->globalDebugHooks.interruptHandler = 0; rt->globalDebugHooks.interruptHandlerData = 0; *closurep = rt->interruptHandlerData; rt->interruptHandler = 0; rt->interruptHandlerData = 0; return JS_TRUE; } Loading Loading @@ -1115,16 +1115,16 @@ JS_GetScriptVersion(JSContext *cx, JSScript *script) JS_PUBLIC_API(void) JS_SetNewScriptHook(JSRuntime *rt, JSNewScriptHook hook, void *callerdata) { rt->globalDebugHooks.newScriptHook = hook; rt->globalDebugHooks.newScriptHookData = callerdata; rt->newScriptHook = hook; rt->newScriptHookData = callerdata; } JS_PUBLIC_API(void) JS_SetDestroyScriptHook(JSRuntime *rt, JSDestroyScriptHook hook, void *callerdata) { rt->globalDebugHooks.destroyScriptHook = hook; rt->globalDebugHooks.destroyScriptHookData = callerdata; rt->destroyScriptHook = hook; rt->destroyScriptHookData = callerdata; } /***************************************************************************/ Loading Loading @@ -1375,56 +1375,56 @@ JS_PutPropertyDescArray(JSContext *cx, JSPropertyDescArray *pda) JS_PUBLIC_API(JSBool) JS_SetDebuggerHandler(JSRuntime *rt, JSTrapHandler handler, void *closure) { rt->globalDebugHooks.debuggerHandler = handler; rt->globalDebugHooks.debuggerHandlerData = closure; rt->debuggerHandler = handler; rt->debuggerHandlerData = closure; return JS_TRUE; } JS_PUBLIC_API(JSBool) JS_SetSourceHandler(JSRuntime *rt, JSSourceHandler handler, void *closure) { rt->globalDebugHooks.sourceHandler = handler; rt->globalDebugHooks.sourceHandlerData = closure; rt->sourceHandler = handler; rt->sourceHandlerData = closure; return JS_TRUE; } JS_PUBLIC_API(JSBool) JS_SetExecuteHook(JSRuntime *rt, JSInterpreterHook hook, void *closure) { rt->globalDebugHooks.executeHook = hook; rt->globalDebugHooks.executeHookData = closure; rt->executeHook = hook; rt->executeHookData = closure; return JS_TRUE; } JS_PUBLIC_API(JSBool) JS_SetCallHook(JSRuntime *rt, JSInterpreterHook hook, void *closure) { rt->globalDebugHooks.callHook = hook; rt->globalDebugHooks.callHookData = closure; rt->callHook = hook; rt->callHookData = closure; return JS_TRUE; } JS_PUBLIC_API(JSBool) JS_SetObjectHook(JSRuntime *rt, JSObjectHook hook, void *closure) { rt->globalDebugHooks.objectHook = hook; rt->globalDebugHooks.objectHookData = closure; rt->objectHook = hook; rt->objectHookData = closure; return JS_TRUE; } JS_PUBLIC_API(JSBool) JS_SetThrowHook(JSRuntime *rt, JSTrapHandler hook, void *closure) { rt->globalDebugHooks.throwHook = hook; rt->globalDebugHooks.throwHookData = closure; rt->throwHook = hook; rt->throwHookData = closure; return JS_TRUE; } JS_PUBLIC_API(JSBool) JS_SetDebugErrorHook(JSRuntime *rt, JSDebugErrorHook hook, void *closure) { rt->globalDebugHooks.debugErrorHook = hook; rt->globalDebugHooks.debugErrorHookData = closure; rt->debugErrorHook = hook; rt->debugErrorHookData = closure; return JS_TRUE; } Loading Loading @@ -1574,22 +1574,3 @@ JS_FlagSystemObject(JSContext *cx, JSObject *obj) flagp = js_GetGCThingFlags(obj); *flagp |= GCF_SYSTEM; } /************************************************************************/ JS_PUBLIC_API(JSDebugHooks *) JS_GetGlobalDebugHooks(JSRuntime *rt) { return &rt->globalDebugHooks; } JS_PUBLIC_API(JSDebugHooks *) JS_SetContextDebugHooks(JSContext *cx, JSDebugHooks *hooks) { JSDebugHooks *old; JS_ASSERT(hooks); old = cx->debugHooks; cx->debugHooks = hooks; return old; }
js/src/jsdbgapi.h +0 −8 Original line number Diff line number Diff line Loading @@ -404,14 +404,6 @@ JS_IsSystemObject(JSContext *cx, JSObject *obj); extern JS_PUBLIC_API(void) JS_FlagSystemObject(JSContext *cx, JSObject *obj); /************************************************************************/ extern JS_PUBLIC_API(JSDebugHooks *) JS_GetGlobalDebugHooks(JSRuntime *rt); extern JS_PUBLIC_API(JSDebugHooks *) JS_SetContextDebugHooks(JSContext *cx, JSDebugHooks *hooks); JS_END_EXTERN_C #endif /* jsdbgapi_h___ */