diff options
Diffstat (limited to 'lib/compress.js')
-rw-r--r-- | lib/compress.js | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/compress.js b/lib/compress.js index 0349e45f..b9ad8e9f 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -61,7 +61,7 @@ function Compressor(options, false_by_default) { booleans : !false_by_default, loops : !false_by_default, unused : !false_by_default, - toplevel : !!options["top_retain"], + toplevel : !!(options && options["top_retain"]), top_retain : null, hoist_funs : !false_by_default, keep_fargs : true, @@ -70,7 +70,7 @@ function Compressor(options, false_by_default) { if_return : !false_by_default, join_vars : !false_by_default, collapse_vars : !false_by_default, - reduce_vars : false, + reduce_vars : !false_by_default, cascade : !false_by_default, side_effects : !false_by_default, pure_getters : false, @@ -187,8 +187,8 @@ merge(Compressor.prototype, { if (node instanceof AST_SymbolRef) { var d = node.definition(); d.references.push(node); - if (!d.modified && (d.orig.length > 1 || isModified(node, 0))) { - d.modified = true; + if (d.fixed && (d.orig.length > 1 || isModified(node, 0))) { + d.fixed = false; } } if (node instanceof AST_Call && node.expression instanceof AST_Function) { @@ -205,7 +205,7 @@ merge(Compressor.prototype, { this.walk(tw); function reset_def(def) { - def.modified = false; + def.fixed = true; def.references = []; def.should_replace = undefined; if (unsafe && def.init) { @@ -1263,7 +1263,7 @@ merge(Compressor.prototype, { this._evaluating = true; try { var d = this.definition(); - if (compressor.option("reduce_vars") && !d.modified && d.init) { + if (compressor.option("reduce_vars") && d.fixed && d.init) { if (compressor.option("unsafe")) { if (d.init._evaluated === undefined) { d.init._evaluated = ev(d.init, compressor); @@ -3046,7 +3046,7 @@ merge(Compressor.prototype, { } if (compressor.option("evaluate") && compressor.option("reduce_vars")) { var d = self.definition(); - if (!d.modified && d.init) { + if (d.fixed && d.init) { if (d.should_replace === undefined) { var init = d.init.evaluate(compressor); if (init.length > 1) { |