@@ -2797,7 +2797,7 @@ merge(Compressor.prototype, {
|
|||||||
if (!compressor.option("hoist_props") || compressor.has_directive("use asm")) return self;
|
if (!compressor.option("hoist_props") || compressor.has_directive("use asm")) return self;
|
||||||
var top_retain = self instanceof AST_Toplevel && compressor.top_retain || return_false;
|
var top_retain = self instanceof AST_Toplevel && compressor.top_retain || return_false;
|
||||||
var defs_by_id = Object.create(null);
|
var defs_by_id = Object.create(null);
|
||||||
return self.transform(new TreeTransformer(function(node) {
|
return self.transform(new TreeTransformer(function(node, descend) {
|
||||||
if (node instanceof AST_VarDef) {
|
if (node instanceof AST_VarDef) {
|
||||||
var sym = node.name, def, value;
|
var sym = node.name, def, value;
|
||||||
if (sym.scope === self
|
if (sym.scope === self
|
||||||
@@ -2807,6 +2807,7 @@ merge(Compressor.prototype, {
|
|||||||
&& !top_retain(def)
|
&& !top_retain(def)
|
||||||
&& (value = sym.fixed_value()) === node.value
|
&& (value = sym.fixed_value()) === node.value
|
||||||
&& value instanceof AST_Object) {
|
&& value instanceof AST_Object) {
|
||||||
|
descend(node, this);
|
||||||
var defs = new Dictionary();
|
var defs = new Dictionary();
|
||||||
var assignments = [];
|
var assignments = [];
|
||||||
value.properties.forEach(function(prop) {
|
value.properties.forEach(function(prop) {
|
||||||
|
|||||||
@@ -633,3 +633,34 @@ issue_2508_5: {
|
|||||||
}
|
}
|
||||||
expect_stdout: true
|
expect_stdout: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_2519: {
|
||||||
|
options = {
|
||||||
|
collapse_vars: true,
|
||||||
|
evaluate: true,
|
||||||
|
hoist_props: true,
|
||||||
|
reduce_vars: true,
|
||||||
|
unused: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
function testFunc() {
|
||||||
|
var dimensions = {
|
||||||
|
minX: 5,
|
||||||
|
maxX: 6,
|
||||||
|
};
|
||||||
|
var scale = 1;
|
||||||
|
var d = {
|
||||||
|
x: (dimensions.maxX + dimensions.minX) / 2,
|
||||||
|
};
|
||||||
|
return d.x * scale;
|
||||||
|
}
|
||||||
|
console.log(testFunc());
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
function testFunc() {
|
||||||
|
return 1 * ((6 + 5) / 2);
|
||||||
|
}
|
||||||
|
console.log(testFunc());
|
||||||
|
}
|
||||||
|
expect_stdout: "5.5"
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user