@@ -8438,12 +8438,20 @@ merge(Compressor.prototype, {
|
|||||||
if (value) {
|
if (value) {
|
||||||
if (value instanceof AST_Sequence) value = value.clone();
|
if (value instanceof AST_Sequence) value = value.clone();
|
||||||
var name = make_node(AST_SymbolRef, defn.name, defn.name);
|
var name = make_node(AST_SymbolRef, defn.name, defn.name);
|
||||||
name.fixed = value;
|
var assign = make_node(AST_Assign, defn, {
|
||||||
a.push(make_node(AST_Assign, defn, {
|
|
||||||
operator: "=",
|
operator: "=",
|
||||||
left: name,
|
left: name,
|
||||||
right: value,
|
right: value,
|
||||||
}));
|
});
|
||||||
|
a.push(assign);
|
||||||
|
name.fixed = function() {
|
||||||
|
return assign.right;
|
||||||
|
};
|
||||||
|
name.fixed.assigns = [ assign ];
|
||||||
|
def.references.forEach(function(ref) {
|
||||||
|
var assigns = ref.fixed && ref.fixed.assigns;
|
||||||
|
if (assigns && assigns[0] === defn) assigns[0] = assign;
|
||||||
|
});
|
||||||
def.references.push(name);
|
def.references.push(name);
|
||||||
}
|
}
|
||||||
def.eliminated++;
|
def.eliminated++;
|
||||||
|
|||||||
@@ -232,9 +232,8 @@ issue_4736: {
|
|||||||
expect: {
|
expect: {
|
||||||
(function() {
|
(function() {
|
||||||
(function() {
|
(function() {
|
||||||
var b = 1 << 30;
|
|
||||||
0,
|
0,
|
||||||
console.log(b);
|
console.log(1073741824);
|
||||||
})();
|
})();
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
@@ -373,3 +372,27 @@ issue_4893_2: {
|
|||||||
}
|
}
|
||||||
expect_stdout: "PASS"
|
expect_stdout: "PASS"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_4898: {
|
||||||
|
options = {
|
||||||
|
collapse_vars: true,
|
||||||
|
evaluate: true,
|
||||||
|
hoist_vars: true,
|
||||||
|
loops: true,
|
||||||
|
reduce_vars: true,
|
||||||
|
toplevel: true,
|
||||||
|
unused: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
do {
|
||||||
|
var b = [ console.log("PASS") ];
|
||||||
|
var c = b;
|
||||||
|
} while (c.p = 0);
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
var b;
|
||||||
|
b = [ console.log("PASS") ];
|
||||||
|
b.p = 0;
|
||||||
|
}
|
||||||
|
expect_stdout: "PASS"
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user