Skip to content

Commit

Permalink
fix corner case in unused (#3599)
Browse files Browse the repository at this point in the history
fixes #3598
  • Loading branch information
alexlamsl committed Nov 18, 2019
1 parent c289ba1 commit 67278e7
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 2 deletions.
4 changes: 2 additions & 2 deletions lib/compress.js
Expand Up @@ -455,7 +455,7 @@ merge(Compressor.prototype, {
if (def.fixed == null) {
if (is_arguments(def)) return false;
if (def.global && def.name == "arguments") return false;
def.fixed = make_node(AST_Undefined, def.orig);
def.fixed = make_node(AST_Undefined, def.orig[0]);
}
return true;
}
Expand Down Expand Up @@ -3870,7 +3870,7 @@ merge(Compressor.prototype, {
def.value = null;
head.push(def);
} else {
var value = def.value && def.value.drop_side_effect_free(compressor);
var value = def.value && !def.value.single_use && def.value.drop_side_effect_free(compressor);
if (value) {
AST_Node.warn("Side effects in initialization of unused variable {name} [{file}:{line},{col}]", template(def.name));
side_effects.push(value);
Expand Down
31 changes: 31 additions & 0 deletions test/compress/drop-unused.js
Expand Up @@ -2235,3 +2235,34 @@ function_assign: {
}
expect_stdout: "PASS"
}

issue_3598: {
options = {
collapse_vars: true,
reduce_vars: true,
unused: true,
}
input: {
var a = "FAIL";
try {
(function() {
var b = void 0;
a = "PASS";
c.p = 0;
var c = b[!1];
})();
} catch (e) {}
console.log(a);
}
expect: {
var a = "FAIL";
try {
(function() {
a = "PASS";
var c = (void (c.p = 0))[!1];
})();
} catch (e) {}
console.log(a);
}
expect_stdout: "PASS"
}

0 comments on commit 67278e7

Please sign in to comment.