Skip to content

Commit

Permalink
fix corner case in unused (#5906)
Browse files Browse the repository at this point in the history
fixes #5905
  • Loading branch information
alexlamsl authored Aug 4, 2024
1 parent 76803d6 commit 8bbbc51
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 8 deletions.
17 changes: 9 additions & 8 deletions lib/compress.js
Original file line number Diff line number Diff line change
Expand Up @@ -9349,17 +9349,18 @@ Compressor.prototype.compress = function(node) {
var expr = self.expression;
if (expr.may_throw_on_access(compressor)) return self;
var prop = self.property;
var optional = self.optional;
if (!optional) {
expr = expr.drop_side_effect_free(compressor, first_in_statement);
if (!expr) return prop.drop_side_effect_free(compressor, first_in_statement);
if (self.optional) {
prop = prop.drop_side_effect_free(compressor);
if (!prop) return expr.drop_side_effect_free(compressor, first_in_statement);
self = self.clone();
self.property = prop;
return self;
}
expr = expr.drop_side_effect_free(compressor, first_in_statement);
if (!expr) return prop.drop_side_effect_free(compressor, first_in_statement);
prop = prop.drop_side_effect_free(compressor);
if (!prop) return expr;
if (!optional) return make_sequence(self, [ expr, prop ]);
self = self.clone();
self.property = prop;
return self;
return make_sequence(self, [ expr, prop ]);
});
def(AST_SymbolRef, function(compressor) {
return this.is_declared(compressor) && can_drop_symbol(this, compressor) ? null : this;
Expand Down
24 changes: 24 additions & 0 deletions test/compress/optional-chains.js
Original file line number Diff line number Diff line change
Expand Up @@ -669,3 +669,27 @@ issue_5900: {
expect_stdout: "PASS"
node_version: ">=14"
}

issue_5905: {
options = {
pure_getters: "strict",
reduce_vars: true,
toplevel: true,
unused: true,
}
input: {
var a;
do {
var b = a++;
var c = c ?? b?.[42];
} while (console.log("PASS"));
}
expect: {
var a;
do {
a++;
} while (console.log("PASS"));
}
expect_stdout: "PASS"
node_version: ">=14"
}

0 comments on commit 8bbbc51

Please sign in to comment.