bool js::ScriptDebugEpilogue(JSContext *cx, AbstractFramePtr frame, bool okArg) { JS_ASSERT_IF(frame.isStackFrame(), frame.asStackFrame() == cx->fp()); JSBool ok = okArg; if (void *hookData = frame.maybeHookData()) { if (frame.isFramePushedByExecute()) { if (JSInterpreterHook hook = cx->runtime->debugHooks.executeHook) hook(cx, Jsvalify(frame), IsTopFrameConstructing(cx, frame), false, &ok, hookData); } else { if (JSInterpreterHook hook = cx->runtime->debugHooks.callHook) hook(cx, Jsvalify(frame), IsTopFrameConstructing(cx, frame), false, &ok, hookData); } } return Debugger::onLeaveFrame(cx, ok); }
bool js::ScriptDebugEpilogue(JSContext *cx, AbstractFramePtr frame, bool okArg) { JS_ASSERT_IF(frame.isStackFrame(), frame.asStackFrame() == cx->interpreterFrame()); bool ok = okArg; // We don't add hook data for self-hosted scripts, so we don't need to check for them, here. if (void *hookData = frame.maybeHookData()) { if (frame.isFramePushedByExecute()) { if (JSInterpreterHook hook = cx->runtime()->debugHooks.executeHook) hook(cx, Jsvalify(frame), IsTopFrameConstructing(cx, frame), false, &ok, hookData); } else { if (JSInterpreterHook hook = cx->runtime()->debugHooks.callHook) hook(cx, Jsvalify(frame), IsTopFrameConstructing(cx, frame), false, &ok, hookData); } } return Debugger::onLeaveFrame(cx, frame, ok); }