void InspectorRuntimeAgent::evaluate(ErrorString* errorString, const String& expression, const String* const objectGroup, const bool* const includeCommandLineAPI, const bool* const doNotPauseOnExceptions, const String* const frameId, const bool* const returnByValue, RefPtr<InspectorObject>* result, bool* wasThrown) { ScriptState* scriptState = 0; if (frameId) { scriptState = scriptStateForFrameId(*frameId); if (!scriptState) { *errorString = "Frame with given id not found."; return; } } else scriptState = getDefaultInspectedState(); InjectedScript injectedScript = m_injectedScriptManager->injectedScriptFor(scriptState); if (injectedScript.hasNoValue()) { *errorString = "Inspected frame has gone"; return; } #if ENABLE(JAVASCRIPT_DEBUGGER) ASSERT(m_scriptDebugServer); bool pauseStateChanged = false; ScriptDebugServer::PauseOnExceptionsState presentState = m_scriptDebugServer->pauseOnExceptionsState(); if (asBool(doNotPauseOnExceptions) && presentState != ScriptDebugServer::DontPauseOnExceptions) { m_scriptDebugServer->setPauseOnExceptionsState(ScriptDebugServer::DontPauseOnExceptions); pauseStateChanged = true; } #endif injectedScript.evaluate(errorString, expression, objectGroup ? *objectGroup : "", asBool(includeCommandLineAPI), asBool(returnByValue), result, wasThrown); #if ENABLE(JAVASCRIPT_DEBUGGER) if (pauseStateChanged) m_scriptDebugServer->setPauseOnExceptionsState(presentState); #endif }
void InspectorRuntimeAgent::evaluate(ErrorString* errorString, const String& expression, const String* const objectGroup, const bool* const includeCommandLineAPI, RefPtr<InspectorObject>* result, bool* wasThrown) { InjectedScript injectedScript = m_injectedScriptManager->injectedScriptFor(getDefaultInspectedState()); if (injectedScript.hasNoValue()) { *errorString = "Inspected frame has gone"; return; } injectedScript.evaluate(errorString, expression, objectGroup ? *objectGroup : "", includeCommandLineAPI ? *includeCommandLineAPI : false, result, wasThrown); }