aboutsummaryrefslogtreecommitdiff
path: root/tools/js-optimizer.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/js-optimizer.js')
-rw-r--r--tools/js-optimizer.js10
1 files changed, 5 insertions, 5 deletions
diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js
index aa4ba39b..372cbea3 100644
--- a/tools/js-optimizer.js
+++ b/tools/js-optimizer.js
@@ -79,14 +79,14 @@ function traverseWithVariables(ast, callback) {
}
}
}, function(node, type, stack) {
- if (type in FUNCTION) {
+ if (type == 'toplevel' || type in FUNCTION) {
// We know all of the variables that are seen here, proceed to do relevant replacements
var allVars = stack.map(function(item) { return item ? item.vars : [] }).reduce(concatenator, []); // FIXME dictionary for speed?
- traverse(node, function(node, type, stack) {
+ traverse(node, function(node2, type2, stack2) {
// Be careful not to look into our inner functions. They have already been processed.
- if (sum(stack) > 1) return;
- if (type in FUNCTION) stack.push(1);
- return callback(node, type, allVars);
+ if (sum(stack2) > 1 || (type == 'toplevel' && sum(stack2) == 1)) return;
+ if (type2 in FUNCTION) stack2.push(1);
+ return callback(node2, type2, allVars);
}, null, []);
}
}, []);