diff options
Diffstat (limited to 'lib/compress.js')
-rw-r--r-- | lib/compress.js | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/compress.js b/lib/compress.js index b371aadb..778d7fa9 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -1361,6 +1361,7 @@ merge(Compressor.prototype, { hit_stack.push(expr); if (expr instanceof AST_Assign) { candidates.push(hit_stack.slice()); + extract_candidates(expr.left); extract_candidates(expr.right); } else if (expr instanceof AST_Binary) { extract_candidates(expr.left); @@ -1376,6 +1377,8 @@ merge(Compressor.prototype, { extract_candidates(expr.alternative); } else if (expr instanceof AST_Definitions) { expr.definitions.forEach(extract_candidates); + } else if (expr instanceof AST_Dot) { + extract_candidates(expr.expression); } else if (expr instanceof AST_DWLoop) { extract_candidates(expr.condition); if (!(expr.body instanceof AST_Block)) { @@ -1407,6 +1410,9 @@ merge(Compressor.prototype, { expr.expressions.forEach(extract_candidates); } else if (expr instanceof AST_SimpleStatement) { extract_candidates(expr.body); + } else if (expr instanceof AST_Sub) { + extract_candidates(expr.expression); + extract_candidates(expr.property); } else if (expr instanceof AST_Switch) { extract_candidates(expr.expression); expr.body.forEach(extract_candidates); @@ -1465,6 +1471,7 @@ merge(Compressor.prototype, { return node; } if (parent instanceof AST_IterationStatement) return node; + if (parent instanceof AST_PropAccess) return node; if (parent instanceof AST_Sequence) { return find_stop(parent, level + 1, parent.tail_node() !== node); } |