aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Lam S.L <alexlamsl@gmail.com>2018-04-25 04:46:07 +0800
committerGitHub <noreply@github.com>2018-04-25 04:46:07 +0800
commit9e87edfc2ef1ce0e517d5f2a5e2d30ed199d13c8 (patch)
treec01eb0b2ae8b1ff1ae14aabec40476aba16d04ea
parent27211cf2d58c1a28fad6d26e27d667d3ee6e0028 (diff)
downloadtracifyjs-9e87edfc2ef1ce0e517d5f2a5e2d30ed199d13c8.tar.gz
tracifyjs-9e87edfc2ef1ce0e517d5f2a5e2d30ed199d13c8.zip
better fix for #2506 (#3099)
-rw-r--r--lib/compress.js9
-rw-r--r--test/compress/collapse_vars.js4
2 files changed, 4 insertions, 9 deletions
diff --git a/lib/compress.js b/lib/compress.js
index d82a1a43..06ed35f5 100644
--- a/lib/compress.js
+++ b/lib/compress.js
@@ -1031,19 +1031,14 @@ merge(Compressor.prototype, {
return node;
}
var def = candidate.name.definition();
- var value = candidate.value;
if (def.references.length - def.replaced == 1 && !compressor.exposed(def)) {
def.replaced++;
- if (funarg && is_identifier_atom(value)) {
- return value.transform(compressor);
- } else {
- return maintain_this_binding(parent, node, value);
- }
+ return maintain_this_binding(parent, node, candidate.value);
}
return make_node(AST_Assign, candidate, {
operator: "=",
left: make_node(AST_SymbolRef, candidate.name, candidate.name),
- right: value
+ right: candidate.value
});
}
candidate.write_only = false;
diff --git a/test/compress/collapse_vars.js b/test/compress/collapse_vars.js
index 950ebd07..d1060563 100644
--- a/test/compress/collapse_vars.js
+++ b/test/compress/collapse_vars.js
@@ -3751,7 +3751,7 @@ issue_2506: {
function f0(bar) {
function f1(Infinity_2) {
function f13(NaN) {
- if (false <= NaN & this >> 1 >= 0) {
+ if (false <= NaN & f0 >> 1 >= 0) {
c++;
}
}
@@ -3767,7 +3767,7 @@ issue_2506: {
function f0(bar) {
(function(Infinity_2) {
(function(NaN) {
- if (false <= 0/0 & this >> 1 >= 0)
+ if (false <= 0/0 & f0 >> 1 >= 0)
c++;
})(0, c++);
})();