diff --git a/lib/ast.js b/lib/ast.js index e162ede6..739c21c2 100644 --- a/lib/ast.js +++ b/lib/ast.js @@ -543,11 +543,11 @@ var AST_Call = DEFNODE("Call", "expression args", { }, _walk: function(visitor) { return visitor._visit(this, function(){ - this.expression._walk(visitor); var args = this.args; for (var i = 0, len = args.length; i < len; i++) { args[i]._walk(visitor); } + this.expression._walk(visitor); }); } }); diff --git a/test/compress/reduce_vars.js b/test/compress/reduce_vars.js index b877dada..6e079c1a 100644 --- a/test/compress/reduce_vars.js +++ b/test/compress/reduce_vars.js @@ -2087,6 +2087,35 @@ var_assign_4: { } } +var_assign_5: { + options = { + evaluate: true, + reduce_vars: true, + sequences: true, + side_effects: true, + unused: true, + } + input: { + !function() { + var a; + !function(b) { + a = 2; + console.log(a, b); + }(a); + }(); + } + expect: { + !function() { + var a; + !function(b) { + a = 2, + console.log(a, b); + }(a); + }(); + } + expect_stdout: "2 undefined" +} + immutable: { options = { evaluate: true,