Index: Source/bindings/v8/ScriptDebugServer.cpp |
diff --git a/Source/bindings/v8/ScriptDebugServer.cpp b/Source/bindings/v8/ScriptDebugServer.cpp |
index 0c61ce7494e9737c677e1026a26de1b3585053ff..5524743e3c3b967fbe2a85b9e74326f924c56d47 100644 |
--- a/Source/bindings/v8/ScriptDebugServer.cpp |
+++ b/Source/bindings/v8/ScriptDebugServer.cpp |
@@ -287,8 +287,8 @@ bool ScriptDebugServer::setScriptSource(const String& sourceID, const String& ne |
if (jsonResult) |
*result = jsonResult->asObject(); |
// Call stack may have changed after if the edited function was on the stack. |
- if (!preview && isPaused()) |
- *newCallFrames = currentCallFrames(); |
+ if (!preview && isAnyScriptPaused()) |
+ newCallFrames->merge(currentCallFrames()); |
return true; |
} |
// Compile error. |
@@ -345,18 +345,19 @@ PassRefPtrWillBeRawPtr<JavaScriptCallFrame> ScriptDebugServer::wrapCallFrames(in |
StackTrace ScriptDebugServer::currentCallFramesInner(ScopeInfoDetails scopeDetails) |
{ |
if (!m_isolate->InContext()) |
- return StackTrace(ScriptValue()); |
+ return StackTrace(); |
v8::HandleScope handleScope(m_isolate); |
RefPtrWillBeRawPtr<JavaScriptCallFrame> currentCallFrame = wrapCallFrames(0, scopeDetails); |
if (!currentCallFrame) |
- return StackTrace(ScriptValue()); |
+ return StackTrace(); |
V8ScriptState* scriptState = m_pausedScriptState ? m_pausedScriptState->v8ScriptState() : V8ScriptState::current(m_isolate); |
V8ScriptState::Scope scope(scriptState); |
- return StackTrace(ScriptValue(scriptState, toV8(currentCallFrame.release(), scriptState->context()->Global(), m_isolate))); |
+ return StackTrace(ScriptValue(scriptState, toV8(currentCallFrame.release(), scriptState->context()->Global(), m_isolate)), scriptState); |
} |
+ |
StackTrace ScriptDebugServer::currentCallFrames() |
{ |
return currentCallFramesInner(AllScopes); |
@@ -426,7 +427,8 @@ void ScriptDebugServer::handleProgramBreak(ScriptState* pausedScriptState, v8::H |
m_pausedScriptState = pausedScriptState; |
m_executionState = executionState; |
- ScriptDebugListener::SkipPauseRequest result = listener->didPause(pausedScriptState, currentCallFrames(), ScriptValue(pausedScriptState->v8ScriptState(), exception), breakpointIds); |
+ |
+ ScriptDebugListener::SkipPauseRequest result = listener->didPause(pausedScriptState, ScriptValue(pausedScriptState->v8ScriptState(), exception), breakpointIds); |
if (result == ScriptDebugListener::NoSkip) { |
m_runningNestedMessageLoop = true; |
runMessageLoopOnPause(pausedScriptState->v8ScriptState()->context()); |