better fix for #2506 (#3099)

This commit is contained in:
Alex Lam S.L
2018-04-25 04:46:07 +08:00
committed by GitHub
parent 27211cf2d5
commit 9e87edfc2e
2 changed files with 4 additions and 9 deletions

View File

@@ -1031,19 +1031,14 @@ merge(Compressor.prototype, {
return node; return node;
} }
var def = candidate.name.definition(); var def = candidate.name.definition();
var value = candidate.value;
if (def.references.length - def.replaced == 1 && !compressor.exposed(def)) { if (def.references.length - def.replaced == 1 && !compressor.exposed(def)) {
def.replaced++; def.replaced++;
if (funarg && is_identifier_atom(value)) { return maintain_this_binding(parent, node, candidate.value);
return value.transform(compressor);
} else {
return maintain_this_binding(parent, node, value);
}
} }
return make_node(AST_Assign, candidate, { return make_node(AST_Assign, candidate, {
operator: "=", operator: "=",
left: make_node(AST_SymbolRef, candidate.name, candidate.name), left: make_node(AST_SymbolRef, candidate.name, candidate.name),
right: value right: candidate.value
}); });
} }
candidate.write_only = false; candidate.write_only = false;

View File

@@ -3751,7 +3751,7 @@ issue_2506: {
function f0(bar) { function f0(bar) {
function f1(Infinity_2) { function f1(Infinity_2) {
function f13(NaN) { function f13(NaN) {
if (false <= NaN & this >> 1 >= 0) { if (false <= NaN & f0 >> 1 >= 0) {
c++; c++;
} }
} }
@@ -3767,7 +3767,7 @@ issue_2506: {
function f0(bar) { function f0(bar) {
(function(Infinity_2) { (function(Infinity_2) {
(function(NaN) { (function(NaN) {
if (false <= 0/0 & this >> 1 >= 0) if (false <= 0/0 & f0 >> 1 >= 0)
c++; c++;
})(0, c++); })(0, c++);
})(); })();