@@ -9427,8 +9427,7 @@ merge(Compressor.prototype, {
|
|||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
} else {
|
} else {
|
||||||
value = fixed.optimize(compressor);
|
value = fixed.optimize(compressor).transform(new TreeTransformer(function(node, descend) {
|
||||||
if (value === fixed) value = value.transform(new TreeTransformer(function(node, descend) {
|
|
||||||
if (node instanceof AST_Scope) return node;
|
if (node instanceof AST_Scope) return node;
|
||||||
node = node.clone();
|
node = node.clone();
|
||||||
descend(node, this);
|
descend(node, this);
|
||||||
|
|||||||
@@ -158,3 +158,22 @@ issue_4487: {
|
|||||||
}
|
}
|
||||||
expect_stdout: "undefined"
|
expect_stdout: "undefined"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_4489: {
|
||||||
|
options = {
|
||||||
|
collapse_vars: true,
|
||||||
|
evaluate: true,
|
||||||
|
hoist_vars: true,
|
||||||
|
reduce_vars: true,
|
||||||
|
toplevel: true,
|
||||||
|
unused: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
A = 0;
|
||||||
|
var o = !0 || null;
|
||||||
|
for (var k in o);
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
for (var k in !(A = 0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -322,7 +322,16 @@ module.exports = function reduce_test(testcase, minify_options, reduce_options)
|
|||||||
}
|
}
|
||||||
else if (node instanceof U.AST_Object) {
|
else if (node instanceof U.AST_Object) {
|
||||||
// first property's value
|
// first property's value
|
||||||
var expr = node.properties[0] instanceof U.AST_ObjectKeyVal && node.properties[0].value;
|
var expr = node.properties[0];
|
||||||
|
if (expr instanceof U.AST_ObjectKeyVal) {
|
||||||
|
expr = expr.value;
|
||||||
|
} else if (expr instanceof U.AST_Spread) {
|
||||||
|
expr = expr.expression;
|
||||||
|
} else if (expr && expr.key instanceof U.AST_Node) {
|
||||||
|
expr = expr.key;
|
||||||
|
} else {
|
||||||
|
expr = null;
|
||||||
|
}
|
||||||
if (expr) {
|
if (expr) {
|
||||||
node.start._permute++;
|
node.start._permute++;
|
||||||
CHANGED = true;
|
CHANGED = true;
|
||||||
@@ -351,11 +360,6 @@ module.exports = function reduce_test(testcase, minify_options, reduce_options)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (node instanceof U.AST_Spread) {
|
|
||||||
node.start._permute++;
|
|
||||||
CHANGED = true;
|
|
||||||
return node.expression;
|
|
||||||
}
|
|
||||||
else if (node instanceof U.AST_Switch) {
|
else if (node instanceof U.AST_Switch) {
|
||||||
var expr = [
|
var expr = [
|
||||||
node.expression, // switch expression
|
node.expression, // switch expression
|
||||||
|
|||||||
Reference in New Issue
Block a user