Chromium Code Reviews| 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..7202d6a7c8a8ffbf801a9fe60025d7fd82b49591 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 - 1], templateLiteral); |
|
sergeyv
2015/05/14 13:01:17
expressionLength
lushnikov
2015/05/14 13:07:54
Nice catch, thanks!
|
| + } 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"], |