Title: [176325] trunk/Source/WebInspectorUI
Revision
176325
Author
[email protected]
Date
2014-11-19 10:34:19 -0800 (Wed, 19 Nov 2014)

Log Message

Web Inspector: Debugger should not mutate variable when hovering mouse over ++n _expression_
https://bugs.webkit.org/show_bug.cgi?id=138839

Patch by Joseph Pecoraro <[email protected]> on 2014-11-19
Reviewed by Timothy Hatcher.

* UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression):

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (176324 => 176325)


--- trunk/Source/WebInspectorUI/ChangeLog	2014-11-19 18:32:30 UTC (rev 176324)
+++ trunk/Source/WebInspectorUI/ChangeLog	2014-11-19 18:34:19 UTC (rev 176325)
@@ -1,5 +1,15 @@
 2014-11-19  Joseph Pecoraro  <[email protected]>
 
+        Web Inspector: Debugger should not mutate variable when hovering mouse over ++n _expression_
+        https://bugs.webkit.org/show_bug.cgi?id=138839
+
+        Reviewed by Timothy Hatcher.
+
+        * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
+        (WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression):
+
+2014-11-19  Joseph Pecoraro  <[email protected]>
+
         Web Inspector: Improve basic _javascript_ completion in inline <script>s
         https://bugs.webkit.org/show_bug.cgi?id=138845
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/CodeMirrorTokenTrackingController.js (176324 => 176325)


--- trunk/Source/WebInspectorUI/UserInterface/Controllers/CodeMirrorTokenTrackingController.js	2014-11-19 18:32:30 UTC (rev 176324)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/CodeMirrorTokenTrackingController.js	2014-11-19 18:34:19 UTC (rev 176325)
@@ -477,11 +477,20 @@
         var _expression_ = this._hoveredTokenInfo.token.string;
         var expressionStartPosition = {line: this._hoveredTokenInfo.position.line, ch: this._hoveredTokenInfo.token.start};
         while (true) {
-            var token = this._codeMirror.getTokenAt(expressionStartPosition);
-            var isDot = token && !token.type && token.string === ".";
-            var isExpression = token && token.type && token.type.indexOf("m-_javascript_") !== -1;
+            var token = this._codeMirror.getTokenAt(expressionStartPosition);            
+            if (!token)
+                break;
+
+            var isDot = !token.type && token.string === ".";
+            var isExpression = token.type && token.type.contains("m-_javascript_");
             if (!isDot && !isExpression)
                 break;
+
+            // Disallow operators. We want the hovered _expression_ to be just a single operand.
+            // Also, some operators can modify values, such as pre-increment and assignment operators.
+            if (isExpression && token.type.contains("operator"))
+                break;
+
             _expression_ = token.string + _expression_;
             expressionStartPosition.ch = token.start;
         }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to