if (hook)
jsscript = JS_GetFrameScript(cx, fp); if (jsscript)
_callHook(JSDContext *jsdc, JSContext *cx, JSStackFrame *fp, JSBool before,          uintN type, JSD_CallHookProc hook, void *hookData){    JSDScript*        jsdscript;    JSScript*         jsscript;    JSBool            hookresult;        if (!jsdc || !jsdc->inited)        return JS_FALSE;        if (before && JS_IsConstructorFrame(cx, fp))        jsd_Constructing(jsdc, cx, JS_GetFrameThis(cx, fp), fp);    if (hook)    {        jsscript = JS_GetFrameScript(cx, fp);        if (jsscript) {            JSD_LOCK_SCRIPTS(jsdc);            jsdscript = jsd_FindJSDScript(jsdc, jsscript);            JSD_UNLOCK_SCRIPTS(jsdc);            if (jsdscript) {                hookresult = jsd_CallCallHook (jsdc, cx, type, hook, hookData);            }        }    }    else    {        hookresult = JS_TRUE;    }    #ifdef JSD_TRACE    _interpreterTrace(jsdc, cx, fp, before);    return JS_TRUE;#else    return hookresult;#endif}