Skip to content

Commit abefd94

Browse files
authored
fix corner case in unused (#5920)
fixes #5918
1 parent f34fbb2 commit abefd94

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

lib/compress.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7253,6 +7253,10 @@ Compressor.prototype.compress = function(node) {
72537253
var def = node.definition();
72547254
var_defs[def.id] = (var_defs[def.id] || 0) + 1;
72557255
assignments.add(def.id, node);
7256+
var fixed = node.fixed_value(true);
7257+
if (fixed && fixed.tail_node().operator == "=") {
7258+
verify_safe_usage(def, node, value_modified[def.id]);
7259+
}
72567260
return true;
72577261
}
72587262
if (node instanceof AST_SymbolImport) {

test/compress/drop-unused.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3870,3 +3870,32 @@ issue_5908_2: {
38703870
}
38713871
expect_stdout: "PASS"
38723872
}
3873+
3874+
issue_5918: {
3875+
options = {
3876+
pure_getters: "strict",
3877+
reduce_vars: true,
3878+
unused: true,
3879+
}
3880+
input: {
3881+
var a;
3882+
(function(b) {
3883+
b.p = 42;
3884+
})(a = function() {
3885+
arguments;
3886+
});
3887+
for (var i in a)
3888+
console.log("PASS");
3889+
}
3890+
expect: {
3891+
var a;
3892+
(function(b) {
3893+
b.p = 42;
3894+
})(a = function() {
3895+
arguments;
3896+
});
3897+
for (var i in a)
3898+
console.log("PASS");
3899+
}
3900+
expect_stdout: "PASS"
3901+
}

0 commit comments

Comments
 (0)