enhance collapse_vars (#1862)

- extend expression types
  - `a++`
  - `a=x;`
- extend scan range
  - `for(init;;);`
  - `switch(expr){case expr:}`
  - `a = x; a = a || y;`
- terminate upon `debugger;`

closes #1821
fixes #27
fixes #315
fixes #1858
This commit is contained in:
Alex Lam S.L
2017-05-06 16:15:43 +08:00
committed by GitHub
parent 5a25d24b56
commit dee5a27516
4 changed files with 753 additions and 173 deletions

View File

@@ -1114,3 +1114,36 @@ issue_1838: {
"}",
]
}
var_catch_toplevel: {
options = {
conditionals: true,
negate_iife: true,
reduce_vars: true,
side_effects: true,
toplevel: true,
unused: true,
}
input: {
function f() {
a--;
try {
a++;
} catch(a) {
if (a) var a;
var a = 10;
}
}
f();
}
expect: {
!function() {
a--;
try {
a++;
} catch(a) {
var a;
}
}();
}
}