aboutsummaryrefslogtreecommitdiff
path: root/lib/compress.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/compress.js')
-rw-r--r--lib/compress.js14
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) {