From 65648d84a5f1df20e6a839cde9fc9dcabc7e13ea Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Wed, 20 Mar 2019 23:31:21 +0800 Subject: enhance `collapse_vars` (#3351) --- lib/compress.js | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib/compress.js') 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); } -- cgit v1.2.3