void InspectorDebuggerAgent::setVariableValue(ErrorString* errorString, int scopeNumber, const String& variableName, const RefPtr<JSONObject>& newValue, const String* callFrameId, const String* functionObjectId) { InjectedScript injectedScript; if (callFrameId) { if (!isPaused() || m_currentCallStack.isNull()) { *errorString = "Attempt to access callframe when debugger is not on pause"; return; } injectedScript = m_injectedScriptManager->injectedScriptForObjectId(*callFrameId); if (injectedScript.hasNoValue()) { *errorString = "Inspected frame has gone"; return; } } else if (functionObjectId) { injectedScript = m_injectedScriptManager->injectedScriptForObjectId(*functionObjectId); if (injectedScript.hasNoValue()) { *errorString = "Function object id cannot be resolved"; return; } } else { *errorString = "Either call frame or function object must be specified"; return; } String newValueString = newValue->toJSONString(); injectedScript.setVariableValue(errorString, m_currentCallStack, callFrameId, functionObjectId, scopeNumber, variableName, newValueString); }