diff --git a/lib/6to5/traverse/index.js b/lib/6to5/traverse/index.js index 0e66f70919..1995a5b992 100644 --- a/lib/6to5/traverse/index.js +++ b/lib/6to5/traverse/index.js @@ -40,8 +40,6 @@ function traverse(parent, callbacks, opts) { // type is blacklisted if (_.contains(blacklistTypes, node.type)) return; - var result; - // replace node var maybeReplace = function (result) { if (result === false) return; @@ -54,12 +52,11 @@ function traverse(parent, callbacks, opts) { // enter if (callbacks.enter) { - result = callbacks.enter(node, parent, opts2.scope); + var result = callbacks.enter(node, parent, opts2.scope); + maybeReplace(result); // stop iteration if (result === false) return; - - maybeReplace(result); } // traverse node @@ -114,25 +111,18 @@ traverse.hasType = function (tree, type, blacklistTypes) { var has = false; - if (_.isArray(tree)) { - // array of nodes, find the first - return tree.some(function (node) { - return traverse.hasType(node, type, blacklistTypes); - }); - } else { - // the node we're searching in is blacklisted - if (_.contains(blacklistTypes, tree.type)) return false; + // the node we're searching in is blacklisted + if (_.contains(blacklistTypes, tree.type)) return false; - // the type we're looking for is the same as the passed node - if (tree.type === type) return true; + // the type we're looking for is the same as the passed node + if (tree.type === type) return true; - traverse(tree, function (node) { - if (node.type === type) { - has = true; - return false; - } - }, { blacklist: blacklistTypes }); - } + traverse(tree, function (node) { + if (node.type === type) { + has = true; + return false; + } + }, { blacklist: blacklistTypes }); return has; };