chained_evaluation_1: { options = { collapse_vars: true, evaluate: true, reduce_funcs: true, reduce_vars: true, unused: true, } input: { (function() { var a = 1; (function() { var b = a, c; c = f(b); c.bar = b; })(); })(); } expect: { (function() { (function() { f(1).bar = 1; })(); })(); } } chained_evaluation_2: { options = { collapse_vars: true, evaluate: true, reduce_funcs: true, reduce_vars: true, unused: true, } input: { (function() { var a = "long piece of string"; (function() { var b = a, c; c = f(b); c.bar = b; })(); })(); } expect: { (function() { (function() { var b = "long piece of string"; f(b).bar = b; })(); })(); } } chained_evaluation_3: { options = { collapse_vars: true, evaluate: 10, reduce_funcs: true, reduce_vars: true, unused: true, } input: { (function() { var a = "long piece of string"; (function() { var b = a, c; c = f(b); c.bar = b; })(); })(); } expect: { (function() { (function() { f("long piece of string").bar = "long piece of string"; })(); })(); } }