Title: [189095] trunk/Source/WebInspectorUI
Revision
189095
Author
[email protected]
Date
2015-08-28 05:57:07 -0700 (Fri, 28 Aug 2015)

Log Message

Web Inspector: Type Profiler does not understand Functions inside Template Strings (ScriptSyntaxTree warnings)
https://bugs.webkit.org/show_bug.cgi?id=148556

Patch by Joseph Pecoraro <[email protected]> on 2015-08-28
Reviewed by Timothy Hatcher.

* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype._recurse):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
(WebInspector.ScriptSyntaxTree):
Add support for abstracting and recursing through the Esprima template nodes.

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (189094 => 189095)


--- trunk/Source/WebInspectorUI/ChangeLog	2015-08-28 11:16:05 UTC (rev 189094)
+++ trunk/Source/WebInspectorUI/ChangeLog	2015-08-28 12:57:07 UTC (rev 189095)
@@ -1,3 +1,16 @@
+2015-08-28  Joseph Pecoraro  <[email protected]>
+
+        Web Inspector: Type Profiler does not understand Functions inside Template Strings (ScriptSyntaxTree warnings)
+        https://bugs.webkit.org/show_bug.cgi?id=148556
+
+        Reviewed by Timothy Hatcher.
+
+        * UserInterface/Models/ScriptSyntaxTree.js:
+        (WebInspector.ScriptSyntaxTree.prototype._recurse):
+        (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
+        (WebInspector.ScriptSyntaxTree):
+        Add support for abstracting and recursing through the Esprima template nodes.
+
 2015-08-27  Joseph Pecoraro  <[email protected]>
 
         Web Inspector: Standardize on CSSStyleSheet.Type enum and move more protocol enum conversion to the manager

Modified: trunk/Source/WebInspectorUI/UserInterface/Models/ScriptSyntaxTree.js (189094 => 189095)


--- trunk/Source/WebInspectorUI/UserInterface/Models/ScriptSyntaxTree.js	2015-08-28 11:16:05 UTC (rev 189094)
+++ trunk/Source/WebInspectorUI/UserInterface/Models/ScriptSyntaxTree.js	2015-08-28 12:57:07 UTC (rev 189095)
@@ -459,6 +459,19 @@
             this._recurse(node.consequent, callback, state);
             this._recurse(node.alternate, callback, state);
             break;
+        case WebInspector.ScriptSyntaxTree.NodeType.TaggedTemplateExpression:
+            callback(node, state);
+            this._recurse(node.tag, callback, state);
+            this._recurse(node.quasi, callback, state);
+            break;
+        case WebInspector.ScriptSyntaxTree.NodeType.TemplateElement:
+            callback(node, state);
+            break;
+        case WebInspector.ScriptSyntaxTree.NodeType.TemplateLiteral:
+            callback(node, state);
+            this._recurseArray(node.quasis, callback, state);
+            this._recurseArray(node.expressions, callback, state);
+            break;
         case WebInspector.ScriptSyntaxTree.NodeType.ThisExpression:
             callback(node, state);
             break;
@@ -809,6 +822,27 @@
                 consequent: node.consequent.map(this._createInternalSyntaxTree.bind(this))
             };
             break;
+        case "TaggedTemplateExpression":
+            result = {
+                type: WebInspector.ScriptSyntaxTree.NodeType.TaggedTemplateExpression,
+                tag: this._createInternalSyntaxTree(node.tag),
+                quasi: this._createInternalSyntaxTree(node.quasi)
+            };
+            break;
+        case "TemplateElement":
+            result = {
+                type: WebInspector.ScriptSyntaxTree.NodeType.TemplateElement,
+                value: node.value,
+                tail: node.tail
+            };
+            break;
+        case "TemplateLiteral":
+            result = {
+                type: WebInspector.ScriptSyntaxTree.NodeType.TemplateLiteral,
+                quasis: node.quasis.map(this._createInternalSyntaxTree.bind(this)),
+                expressions: node.expressions.map(this._createInternalSyntaxTree.bind(this))
+            };
+            break;
         case "ThisExpression":
             result = {
                 type: WebInspector.ScriptSyntaxTree.NodeType.ThisExpression
@@ -931,6 +965,9 @@
     SpreadElement: Symbol("spread-element"),
     SwitchCase: Symbol("switch-case"),
     SwitchStatement: Symbol("switch-statement"),
+    TaggedTemplateExpression: Symbol("tagged-template-_expression_"),
+    TemplateElement: Symbol("template-element"),
+    TemplateLiteral: Symbol("template-literal"),
     ThisExpression: Symbol("this-_expression_"),
     ThrowStatement: Symbol("throw-statement"),
     TryStatement: Symbol("try-statement"),
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to