void QScriptEngineAgentPrivate::exceptionThrow(const JSC::DebuggerCallFrame& frame, intptr_t sourceID, bool hasHandler)
{
    JSC::CallFrame *oldFrame = engine->currentFrame;
    engine->currentFrame = frame.callFrame();
    QScriptValue value(engine->scriptValueFromJSCValue(frame.exception()));
    q_ptr->exceptionThrow(sourceID, value, hasHandler);
    engine->currentFrame = oldFrame;
    engine->setCurrentException(value);
};
void QScriptEngineAgentPrivate::exceptionCatch(const JSC::DebuggerCallFrame& frame, intptr_t sourceID)
{
    JSC::CallFrame *oldFrame = engine->currentFrame;
    engine->currentFrame = frame.callFrame();
    QScriptValue value(engine->scriptValueFromJSCValue(frame.exception()));
    q_ptr->exceptionCatch(sourceID, value);
    engine->currentFrame = oldFrame;
    engine->clearCurrentException();
}
Exemple #3
0
void QScriptEngineAgentPrivate::exceptionThrow(const JSC::DebuggerCallFrame& frame, intptr_t sourceID, bool hasHandler)
{
    JSC::CallFrame *oldFrame = engine->currentFrame;
    int oldAgentLineNumber = engine->agentLineNumber;
    engine->currentFrame = frame.callFrame();
    QScriptValue value(engine->scriptValueFromJSCValue(frame.exception()));
    engine->agentLineNumber = value.property(QLatin1String("lineNumber")).toInt32();
    q_ptr->exceptionThrow(sourceID, value, hasHandler);
    engine->agentLineNumber = oldAgentLineNumber;
    engine->currentFrame = oldFrame;
    engine->setCurrentException(value);
};