improve unused (#1832)

- extract leading value with side-effects out of `var` statement
- reduce scanning of `AST_Definitions` from 3 passes to just once
This commit is contained in:
Alex Lam S.L
2017-04-20 13:06:14 +08:00
committed by GitHub
parent 88e7a542cd
commit f05d4f7af3
4 changed files with 82 additions and 105 deletions

View File

@@ -701,10 +701,10 @@ collapse_vars_lvalues_drop_assign: {
function f2(x) { var z = x, a = ++z; return z += a; }
function f3(x) { var a = (x -= 3); return x + a; }
function f4(x) { var a = (x -= 3); return x + a; }
function f5(x) { var v = (e1(), e2()), c = v = --x; return x - c; }
function f5(x) { e1(); var v = e2(), c = v = --x; return x - c; }
function f6(x) { e1(), e2(); return --x - x; }
function f7(x) { var c = (e1(), e2() - x); return x - c; }
function f8(x) { var v = (e1(), e2()); return x - (v - x); }
function f7(x) { e1(); var c = e2() - x; return x - c; }
function f8(x) { e1(); var v = e2(); return x - (v - x); }
function f9(x) { e1(); return e2() - x - x; }
}
}

View File

@@ -935,7 +935,8 @@ issue_1715_3: {
try {
console;
} catch (a) {
var a = x();
var a;
x();
}
}
f();

View File

@@ -53,9 +53,7 @@ reduce_vars: {
console.log(-3);
eval("console.log(a);");
})(eval);
(function() {
return "yes";
})();
"yes";
console.log(2);
}
expect_stdout: true
@@ -1699,9 +1697,7 @@ redefine_arguments_2: {
console.log(function() {
var arguments;
return typeof arguments;
}(), function() {
return"number";
}(), function(x) {
}(), "number", function(x) {
var arguments = x;
return typeof arguments;
}());
@@ -1810,9 +1806,7 @@ redefine_farg_2: {
console.log(function(a) {
var a;
return typeof a;
}([]), function() {
return "number";
}(),function(a, b) {
}([]), "number",function(a, b) {
var a = b;
return typeof a;
}([]));