Index: third_party/WebKit/Source/devtools/front_end/es_tree/ESTreeWalker.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/es_tree/ESTreeWalker.js b/third_party/WebKit/Source/devtools/front_end/es_tree/ESTreeWalker.js |
index dfa926c0ba32ebabaa210b6b4cbeee93e0c7c806..b990d423872d0695012cb5f18f13f035bd3e9716 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/es_tree/ESTreeWalker.js |
+++ b/third_party/WebKit/Source/devtools/front_end/es_tree/ESTreeWalker.js |
@@ -4,19 +4,29 @@ |
/** |
* @constructor |
- * @param {function(!ESTree.Node)} beforeVisit |
+ * @param {function(!ESTree.Node):(!Object|undefined)} beforeVisit |
* @param {function(!ESTree.Node)=} afterVisit |
*/ |
WebInspector.ESTreeWalker = function(beforeVisit, afterVisit) |
{ |
this._beforeVisit = beforeVisit; |
this._afterVisit = afterVisit || new Function(); |
+ this._walkNulls = false; |
} |
+/** @typedef {!Object} WebInspector.ESTreeWalker.SkipSubtree */ |
WebInspector.ESTreeWalker.SkipSubtree = {}; |
WebInspector.ESTreeWalker.prototype = { |
/** |
+ * @param {boolean} value |
+ */ |
+ setWalkNulls: function(value) |
+ { |
+ this._walkNulls = value; |
+ }, |
+ |
+ /** |
* @param {!ESTree.Node} ast |
*/ |
walk: function(ast) |
@@ -30,6 +40,14 @@ WebInspector.ESTreeWalker.prototype = { |
*/ |
_innerWalk: function(node, parent) |
{ |
+ if (!node && parent && this._walkNulls) { |
+ node = /** @type {!ESTree.Node} */ ({ |
+ type: "Literal", |
+ raw: "null", |
+ value: null |
+ }); |
+ } |
+ |
if (!node) |
return; |
node.parent = parent; |