Title: [188818] trunk/Source/WebInspectorUI
Revision
188818
Author
[email protected]
Date
2015-08-21 20:27:24 -0700 (Fri, 21 Aug 2015)

Log Message

Web Inspector: Type profiler shows 'Undefined' annotation for functions with no return statements
https://bugs.webkit.org/show_bug.cgi?id=146882

Patch by Saam barati <[email protected]> on 2015-08-21
Reviewed by Joseph Pecoraro.

* UserInterface/Controllers/TypeTokenAnnotator.js:
(WebInspector.TypeTokenAnnotator.prototype._insertTypeToken):
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
(WebInspector.ScriptSyntaxTree):

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (188817 => 188818)


--- trunk/Source/WebInspectorUI/ChangeLog	2015-08-22 02:32:41 UTC (rev 188817)
+++ trunk/Source/WebInspectorUI/ChangeLog	2015-08-22 03:27:24 UTC (rev 188818)
@@ -1,3 +1,16 @@
+2015-08-21  Saam barati  <[email protected]>
+
+        Web Inspector: Type profiler shows 'Undefined' annotation for functions with no return statements
+        https://bugs.webkit.org/show_bug.cgi?id=146882
+
+        Reviewed by Joseph Pecoraro.
+
+        * UserInterface/Controllers/TypeTokenAnnotator.js:
+        (WebInspector.TypeTokenAnnotator.prototype._insertTypeToken):
+        * UserInterface/Models/ScriptSyntaxTree.js:
+        (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
+        (WebInspector.ScriptSyntaxTree):
+
 2015-08-21  Joseph Pecoraro  <[email protected]>
 
         Web Inspector: WebInspector.domTreeManager.regionLayoutUpdated does not exist

Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/TypeTokenAnnotator.js (188817 => 188818)


--- trunk/Source/WebInspectorUI/UserInterface/Controllers/TypeTokenAnnotator.js	2015-08-22 02:32:41 UTC (rev 188817)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/TypeTokenAnnotator.js	2015-08-22 03:27:24 UTC (rev 188818)
@@ -105,7 +105,7 @@
         // If a function does not have an explicit return statement with an argument (i.e, "return x;" instead of "return;") 
         // then don't show a return type unless we think it's a constructor.
         var scriptSyntaxTree = this._script._scriptSyntaxTree;
-        if (!node.attachments.__typeToken && (scriptSyntaxTree.containsNonEmptyReturnStatement(node.body) || !WebInspector.TypeSet.fromPayload(functionReturnType.typeSet).isContainedIn(WebInspector.TypeSet.TypeBit.Undefined))) {
+        if (!node.attachments.__typeToken && (scriptSyntaxTree.containsNonEmptyReturnStatement(node.body) || !functionReturnType.typeSet.isContainedIn(WebInspector.TypeSet.TypeBit.Undefined))) {
             var functionName = node.id ? node.id.name : null;
             var offset = node.isGetterOrSetter ? node.getterOrSetterRange[0] : node.range[0];
             this._insertToken(offset, node, true, WebInspector.TypeTokenView.TitleType.ReturnStatement, functionName);

Modified: trunk/Source/WebInspectorUI/UserInterface/Models/ScriptSyntaxTree.js (188817 => 188818)


--- trunk/Source/WebInspectorUI/UserInterface/Models/ScriptSyntaxTree.js	2015-08-22 02:32:41 UTC (rev 188817)
+++ trunk/Source/WebInspectorUI/UserInterface/Models/ScriptSyntaxTree.js	2015-08-22 03:27:24 UTC (rev 188818)
@@ -731,9 +731,14 @@
                 kind: node.kind,
                 static: node.static
             };
+            if (result.kind === "get" || result.kind === "set") {
+                const length = result.key.range[1] - result.key.range[0];
+                result.value.getterOrSetterRange = node.range;
+                result.value.getterOrSetterRange[1] = node.range[0] + length;
+            } else
+                result.value.getterOrSetterRange = result.key.range;
             // FIXME: <https://webkit.org/b/143171> Web Inspector: Improve Type Profiler Support for ES6 Syntax
             result.value.isGetterOrSetter = true;
-            result.value.getterOrSetterRange = result.key.range;
             break;
         case "NewExpression":
             result = {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to