From 727dd1b167ffd49effa75d4640385f9b4f6b4d74 Mon Sep 17 00:00:00 2001
From: Aurindam Jana <aurindam.jana@nokia.com>
Date: Mon, 7 Nov 2011 14:58:45 +0100
Subject: [PATCH] QmlV8DebuggerClient: Evaluate Expression

V8 engine may return an anonymous event for Evaluation of an expression
instead of a response, if the expression has syntax error. This fix
handles this particular case.

Change-Id: Ic89252b04eb4d6f7e6b0b2e03067f031f1f446ed
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
---
 src/plugins/debugger/qml/qmlv8debuggerclient.cpp | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
index 12b618ad50a..bfc0a0b6665 100644
--- a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
+++ b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
@@ -1235,6 +1235,22 @@ void QmlV8DebuggerClient::messageReceived(const QByteArray &data)
                 d->requestListBreakpoints = true;
             }
 
+            //Sometimes we do not get event type!
+            //This is most probably due to a wrong eval expression.
+            //Redirect output to console.
+            if (eventType.isEmpty()) {
+                 bool success = resp.value(_("success")).toBool();
+                 QVariantMap map;
+                 map.insert(_(TYPE), QVariant(_("string")));
+                 map.insert(_(VALUE), resp.value(_("message")));
+                 //Since there is no sequence value, best estimate is
+                 //last sequence value
+                 updateEvaluationResult(d->sequence, success, QVariant(map), QVariant());
+                 if (!isV8Running
+                         && d->debugServiceState == QmlV8DebuggerClient::ProcessingRequestState)
+                     d->debugServiceState = QmlV8DebuggerClient::WaitingForRequestState;
+            }
+
             if (!isV8Running
                     && d->debugServiceState == QmlV8DebuggerClient::RunningState)
                 d->debugServiceState = QmlV8DebuggerClient::WaitingForRequestState;
-- 
GitLab