@@ -577,9 +577,10 @@ merge(Compressor.prototype, {
|
|||||||
sym.fixed = d.fixed = eq ? function() {
|
sym.fixed = d.fixed = eq ? function() {
|
||||||
return node.right;
|
return node.right;
|
||||||
} : function() {
|
} : function() {
|
||||||
return make_node(AST_Binary, node, {
|
var value = fixed instanceof AST_Node ? fixed : fixed();
|
||||||
|
return value && make_node(AST_Binary, node, {
|
||||||
operator: node.operator.slice(0, -1),
|
operator: node.operator.slice(0, -1),
|
||||||
left: fixed instanceof AST_Node ? fixed : fixed(),
|
left: value,
|
||||||
right: node.right
|
right: node.right
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -858,11 +859,12 @@ merge(Compressor.prototype, {
|
|||||||
var fixed = d.fixed;
|
var fixed = d.fixed;
|
||||||
if (!fixed) return;
|
if (!fixed) return;
|
||||||
exp.fixed = d.fixed = function() {
|
exp.fixed = d.fixed = function() {
|
||||||
return make_node(AST_Binary, node, {
|
var value = fixed instanceof AST_Node ? fixed : fixed();
|
||||||
|
return value && make_node(AST_Binary, node, {
|
||||||
operator: node.operator.slice(0, -1),
|
operator: node.operator.slice(0, -1),
|
||||||
left: make_node(AST_UnaryPrefix, node, {
|
left: make_node(AST_UnaryPrefix, node, {
|
||||||
operator: "+",
|
operator: "+",
|
||||||
expression: fixed instanceof AST_Node ? fixed : fixed()
|
expression: value
|
||||||
}),
|
}),
|
||||||
right: make_node(AST_Number, node, {
|
right: make_node(AST_Number, node, {
|
||||||
value: 1
|
value: 1
|
||||||
|
|||||||
@@ -7033,3 +7033,24 @@ issue_3844: {
|
|||||||
}
|
}
|
||||||
expect_stdout: "undefined"
|
expect_stdout: "undefined"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_3866: {
|
||||||
|
options = {
|
||||||
|
dead_code: true,
|
||||||
|
evaluate: true,
|
||||||
|
reduce_vars: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
console.log(function() {
|
||||||
|
{
|
||||||
|
return "PASS";
|
||||||
|
var a = 0;
|
||||||
|
}
|
||||||
|
return --a;
|
||||||
|
}());
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
console.log("PASS");
|
||||||
|
}
|
||||||
|
expect_stdout: "PASS"
|
||||||
|
}
|
||||||
|
|||||||
@@ -1181,7 +1181,7 @@ for (var round = 1; round <= num_iterations; round++) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
uglify_code = uglify_code.error;
|
uglify_code = uglify_result = uglify_code.error;
|
||||||
ok = sandbox.same_stdout(original_result, uglify_result);
|
ok = sandbox.same_stdout(original_result, uglify_result);
|
||||||
}
|
}
|
||||||
if (verbose || (verbose_interval && !(round % INTERVAL_COUNT)) || !ok) log(options);
|
if (verbose || (verbose_interval && !(round % INTERVAL_COUNT)) || !ok) log(options);
|
||||||
|
|||||||
Reference in New Issue
Block a user