Only allow var definitions to be moved into the for-init clause
Fixes #1079
This commit is contained in:
@@ -802,7 +802,7 @@ merge(Compressor.prototype, {
|
||||
CHANGED = true;
|
||||
}
|
||||
else if (stat instanceof AST_For
|
||||
&& prev instanceof AST_Definitions
|
||||
&& prev instanceof AST_Var
|
||||
&& (!stat.init || stat.init.TYPE == prev.TYPE)) {
|
||||
CHANGED = true;
|
||||
a.pop();
|
||||
|
||||
40
test/compress/join-vars.js
Normal file
40
test/compress/join-vars.js
Normal file
@@ -0,0 +1,40 @@
|
||||
only_vars: {
|
||||
options = { join_vars: true };
|
||||
input: {
|
||||
let netmaskBinary = '';
|
||||
for (let i = 0; i < netmaskBits; ++i) {
|
||||
netmaskBinary += '1';
|
||||
}
|
||||
}
|
||||
expect: {
|
||||
let netmaskBinary = '';
|
||||
for (let i = 0; i < netmaskBits; ++i) netmaskBinary += '1';
|
||||
}
|
||||
}
|
||||
|
||||
issue_1079_with_vars: {
|
||||
options = { join_vars: true };
|
||||
input: {
|
||||
var netmaskBinary = '';
|
||||
for (var i = 0; i < netmaskBits; ++i) {
|
||||
netmaskBinary += '1';
|
||||
}
|
||||
}
|
||||
expect: {
|
||||
for (var netmaskBinary = '', i = 0; i < netmaskBits; ++i) netmaskBinary += '1';
|
||||
}
|
||||
}
|
||||
|
||||
issue_1079_with_mixed: {
|
||||
options = { join_vars: true };
|
||||
input: {
|
||||
var netmaskBinary = '';
|
||||
for (let i = 0; i < netmaskBits; ++i) {
|
||||
netmaskBinary += '1';
|
||||
}
|
||||
}
|
||||
expect: {
|
||||
var netmaskBinary = ''
|
||||
for (let i = 0; i < netmaskBits; ++i) netmaskBinary += '1';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user