Index: Source/devtools/front_end/script_formatter_worker/ESTreeWalker.js |
diff --git a/Source/devtools/front_end/script_formatter_worker/ESTreeWalker.js b/Source/devtools/front_end/script_formatter_worker/ESTreeWalker.js |
index 51486c9d329a8aab1fe185717a9440d9c1668764..65e31c52e7086d03dbd11d32df267e91206a255a 100644 |
--- a/Source/devtools/front_end/script_formatter_worker/ESTreeWalker.js |
+++ b/Source/devtools/front_end/script_formatter_worker/ESTreeWalker.js |
@@ -40,12 +40,22 @@ FormatterWorker.ESTreeWalker.prototype = { |
return; |
} |
- for (var i = 0; i < walkOrder.length; ++i) { |
- var entity = node[walkOrder[i]]; |
- if (Array.isArray(entity)) |
- this._walkArray(entity, node); |
- else |
- this._innerWalk(entity, node); |
+ if (node.type === "TemplateLiteral") { |
+ var templateLiteral = /** @type {!ESTree.TemplateLiteralNode} */ (node); |
+ var expressionsLength = templateLiteral.expressions.length; |
+ for (var i = 0; i < expressionsLength; ++i) { |
+ this._innerWalk(templateLiteral.quasis[i], templateLiteral); |
+ this._innerWalk(templateLiteral.expressions[i], templateLiteral); |
+ } |
+ this._innerWalk(templateLiteral.quasis[expressionsLength], templateLiteral); |
+ } else { |
+ for (var i = 0; i < walkOrder.length; ++i) { |
+ var entity = node[walkOrder[i]]; |
+ if (Array.isArray(entity)) |
+ this._walkArray(entity, node); |
+ else |
+ this._innerWalk(entity, node); |
+ } |
} |
this._afterVisit.call(null, node); |
@@ -100,6 +110,9 @@ FormatterWorker.ESTreeWalker._walkOrder = { |
"Super": [], |
"SwitchCase": ["test", "consequent"], |
"SwitchStatement": ["discriminant", "cases"], |
+ "TaggedTemplateExpression": ["tag", "quasi"], |
+ "TemplateElement": [], |
+ "TemplateLiteral": ["quasis", "expressions"], |
"ThisExpression": [], |
"ThrowStatement": ["argument"], |
"TryStatement": ["block", "handler", "finalizer"], |