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"),