diff options
author | kzc <kzc@users.noreply.github.com> | 2017-03-02 14:51:15 -0500 |
---|---|---|
committer | Alex Lam S.L <alexlamsl@gmail.com> | 2017-03-03 03:51:15 +0800 |
commit | 4d63d4f5b30d2b46f3b6ed4cfced277f4f8e428f (patch) | |
tree | bb510a5fcd6c411b2f239dd85792d2c8ffd96e54 /lib | |
parent | 70d72ad8065421908ff9a8658539359789c4f460 (diff) | |
download | tracifyjs-4d63d4f5b30d2b46f3b6ed4cfced277f4f8e428f.tar.gz tracifyjs-4d63d4f5b30d2b46f3b6ed4cfced277f4f8e428f.zip |
collapse_vars should not replace constant in for-in init section (#1538)
fixes #1537
Diffstat (limited to 'lib')
-rw-r--r-- | lib/compress.js | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/compress.js b/lib/compress.js index f67f1d2c..deb55ade 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -480,8 +480,12 @@ merge(Compressor.prototype, { // Constant single use vars can be replaced in any scope. if (var_decl.value.is_constant()) { var ctt = new TreeTransformer(function(node) { - if (node === ref) - return replace_var(node, ctt.parent(), true); + if (node === ref) { + var parent = ctt.parent(); + if (!(parent instanceof AST_ForIn && parent.init === node)) { + return replace_var(node, parent, true); + } + } }); stat.transform(ctt); continue; @@ -570,7 +574,7 @@ merge(Compressor.prototype, { // Further optimize statement after substitution. stat.reset_opt_flags(compressor); - compressor.warn("Replacing " + (is_constant ? "constant" : "variable") + + compressor.warn("Collapsing " + (is_constant ? "constant" : "variable") + " " + var_name + " [{file}:{line},{col}]", node.start); CHANGED = true; return value; |