Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Side by Side Diff: Source/devtools/front_end/script_formatter_worker/ESTreeWalker.js

Issue 1125143004: DevTools: [PrettyPrint] support template literals in pretty-printing (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: address comments Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @constructor 6 * @constructor
7 * @param {function(!ESTree.Node)} beforeVisit 7 * @param {function(!ESTree.Node)} beforeVisit
8 * @param {function(!ESTree.Node)} afterVisit 8 * @param {function(!ESTree.Node)} afterVisit
9 */ 9 */
10 FormatterWorker.ESTreeWalker = function(beforeVisit, afterVisit) 10 FormatterWorker.ESTreeWalker = function(beforeVisit, afterVisit)
(...skipping 22 matching lines...) Expand all
33 node.parent = parent; 33 node.parent = parent;
34 34
35 this._beforeVisit.call(null, node); 35 this._beforeVisit.call(null, node);
36 36
37 var walkOrder = FormatterWorker.ESTreeWalker._walkOrder[node.type]; 37 var walkOrder = FormatterWorker.ESTreeWalker._walkOrder[node.type];
38 if (!walkOrder) { 38 if (!walkOrder) {
39 console.error("Walk order not defined for " + node.type); 39 console.error("Walk order not defined for " + node.type);
40 return; 40 return;
41 } 41 }
42 42
43 for (var i = 0; i < walkOrder.length; ++i) { 43 if (node.type === "TemplateLiteral") {
44 var entity = node[walkOrder[i]]; 44 var templateLiteral = /** @type {!ESTree.TemplateLiteralNode} */ (no de);
45 if (Array.isArray(entity)) 45 var expressionsLength = templateLiteral.expressions.length;
46 this._walkArray(entity, node); 46 for (var i = 0; i < expressionsLength; ++i) {
47 else 47 this._innerWalk(templateLiteral.quasis[i], templateLiteral);
48 this._innerWalk(entity, node); 48 this._innerWalk(templateLiteral.expressions[i], templateLiteral) ;
49 }
50 this._innerWalk(templateLiteral.quasis[expressionsLength], templateL iteral);
51 } else {
52 for (var i = 0; i < walkOrder.length; ++i) {
53 var entity = node[walkOrder[i]];
54 if (Array.isArray(entity))
55 this._walkArray(entity, node);
56 else
57 this._innerWalk(entity, node);
58 }
49 } 59 }
50 60
51 this._afterVisit.call(null, node); 61 this._afterVisit.call(null, node);
52 }, 62 },
53 63
54 /** 64 /**
55 * @param {!Array.<!ESTree.Node>} nodeArray 65 * @param {!Array.<!ESTree.Node>} nodeArray
56 * @param {?ESTree.Node} parentNode 66 * @param {?ESTree.Node} parentNode
57 */ 67 */
58 _walkArray: function(nodeArray, parentNode) 68 _walkArray: function(nodeArray, parentNode)
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 "MethodDefinition": ["key", "value"], 103 "MethodDefinition": ["key", "value"],
94 "NewExpression": ["callee", "arguments"], 104 "NewExpression": ["callee", "arguments"],
95 "ObjectExpression": ["properties"], 105 "ObjectExpression": ["properties"],
96 "Program": ["body"], 106 "Program": ["body"],
97 "Property": ["key", "value"], 107 "Property": ["key", "value"],
98 "ReturnStatement": ["argument"], 108 "ReturnStatement": ["argument"],
99 "SequenceExpression": ["expressions"], 109 "SequenceExpression": ["expressions"],
100 "Super": [], 110 "Super": [],
101 "SwitchCase": ["test", "consequent"], 111 "SwitchCase": ["test", "consequent"],
102 "SwitchStatement": ["discriminant", "cases"], 112 "SwitchStatement": ["discriminant", "cases"],
113 "TaggedTemplateExpression": ["tag", "quasi"],
114 "TemplateElement": [],
115 "TemplateLiteral": ["quasis", "expressions"],
103 "ThisExpression": [], 116 "ThisExpression": [],
104 "ThrowStatement": ["argument"], 117 "ThrowStatement": ["argument"],
105 "TryStatement": ["block", "handler", "finalizer"], 118 "TryStatement": ["block", "handler", "finalizer"],
106 "UnaryExpression": ["argument"], 119 "UnaryExpression": ["argument"],
107 "UpdateExpression": ["argument"], 120 "UpdateExpression": ["argument"],
108 "VariableDeclaration": ["declarations"], 121 "VariableDeclaration": ["declarations"],
109 "VariableDeclarator": ["id", "init"], 122 "VariableDeclarator": ["id", "init"],
110 "WhileStatement": ["test", "body"], 123 "WhileStatement": ["test", "body"],
111 "WithStatement": ["object", "body"], 124 "WithStatement": ["object", "body"],
112 "YieldExpression": ["argument"] 125 "YieldExpression": ["argument"]
113 } 126 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698