diff options
-rw-r--r-- | lib/compress.js | 5 | ||||
-rw-r--r-- | test/compress/functions.js | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/lib/compress.js b/lib/compress.js index fd59fb32..300bc61d 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -1171,10 +1171,14 @@ merge(Compressor.prototype, { extract_candidates(expr.alternative); } else if (expr instanceof AST_Definitions) { expr.definitions.forEach(extract_candidates); + } else if (expr instanceof AST_DWLoop) { + extract_candidates(expr.condition); } else if (expr instanceof AST_Exit) { if (expr.value) extract_candidates(expr.value); } else if (expr instanceof AST_For) { if (expr.init) extract_candidates(expr.init); + if (expr.condition) extract_candidates(expr.condition); + if (expr.step) extract_candidates(expr.step); } else if (expr instanceof AST_If) { extract_candidates(expr.condition); } else if (expr instanceof AST_Sequence) { @@ -1205,6 +1209,7 @@ merge(Compressor.prototype, { if (parent instanceof AST_Conditional) return node; if (parent instanceof AST_Exit) return node; if (parent instanceof AST_If) return node; + if (parent instanceof AST_IterationStatement) return node; if (parent instanceof AST_Sequence) return find_stop(parent, level + 1); if (parent instanceof AST_Switch) return node; if (parent instanceof AST_VarDef) return node; diff --git a/test/compress/functions.js b/test/compress/functions.js index f38977b3..b6b68982 100644 --- a/test/compress/functions.js +++ b/test/compress/functions.js @@ -1416,7 +1416,7 @@ issue_2630_5: { !function() { do { c *= 10; - } while (c += 3, (c = 2 + c) < 100); + } while ((c = 2 + (c += 3)) < 100); }(); console.log(c); } |