fix TreeWalker scan order (#3114)

fixes #3113
This commit is contained in:
Alex Lam S.L
2018-05-03 00:27:45 +08:00
committed by GitHub
parent 1a314e9f60
commit a0ca595c2c
2 changed files with 40 additions and 5 deletions

View File

@@ -544,11 +544,10 @@ var AST_Call = DEFNODE("Call", "expression args", {
}, },
_walk: function(visitor) { _walk: function(visitor) {
return visitor._visit(this, function() { return visitor._visit(this, function() {
var args = this.args;
for (var i = 0, len = args.length; i < len; i++) {
args[i]._walk(visitor);
}
this.expression._walk(visitor); this.expression._walk(visitor);
this.args.forEach(function(node) {
node._walk(visitor);
});
}); });
} }
}); });

View File

@@ -5833,3 +5833,39 @@ issue_3110_3: {
"foo", "foo",
] ]
} }
issue_3113: {
options = {
evaluate: true,
reduce_vars: true,
}
input: {
var c = 0;
(function() {
function f() {
while (g());
}
var a = f();
function g() {
a && a[c++];
}
g(a = 1);
})();
console.log(c);
}
expect: {
var c = 0;
(function() {
function f() {
while (g());
}
var a = f();
function g() {
a && a[c++];
}
g(a = 1);
})();
console.log(c);
}
expect_stdout: "1"
}