reduce_vars: { options = { conditionals : true, evaluate : true, global_defs : { C : 0 }, reduce_vars : true, unused : true } input: { var A = 1; (function f0() { var a = 2; console.log(a - 5); console.log(A - 5); })(); (function f1() { var a = 2; console.log(a - 5); eval("console.log(a);"); })(); (function f2(eval) { var a = 2; console.log(a - 5); eval("console.log(a);"); })(eval); (function f3() { var b = typeof C !== "undefined"; var c = 4; if (b) { return 'yes'; } else { return 'no'; } })(); console.log(A + 1); } expect: { var A = 1; (function() { console.log(-3); console.log(A - 5); })(); (function f1() { var a = 2; console.log(-3); eval("console.log(a);"); })(); (function f2(eval) { var a = 2; console.log(-3); eval("console.log(a);"); })(eval); (function() { return "yes"; })(); console.log(A + 1); } }