File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -9349,17 +9349,18 @@ Compressor.prototype.compress = function(node) {
93499349 var expr = self.expression;
93509350 if (expr.may_throw_on_access(compressor)) return self;
93519351 var prop = self.property;
9352- var optional = self.optional;
9353- if (!optional) {
9354- expr = expr.drop_side_effect_free(compressor, first_in_statement);
9355- if (!expr) return prop.drop_side_effect_free(compressor, first_in_statement);
9352+ if (self.optional) {
9353+ prop = prop.drop_side_effect_free(compressor);
9354+ if (!prop) return expr.drop_side_effect_free(compressor, first_in_statement);
9355+ self = self.clone();
9356+ self.property = prop;
9357+ return self;
93569358 }
9359+ expr = expr.drop_side_effect_free(compressor, first_in_statement);
9360+ if (!expr) return prop.drop_side_effect_free(compressor, first_in_statement);
93579361 prop = prop.drop_side_effect_free(compressor);
93589362 if (!prop) return expr;
9359- if (!optional) return make_sequence(self, [ expr, prop ]);
9360- self = self.clone();
9361- self.property = prop;
9362- return self;
9363+ return make_sequence(self, [ expr, prop ]);
93639364 });
93649365 def(AST_SymbolRef, function(compressor) {
93659366 return this.is_declared(compressor) && can_drop_symbol(this, compressor) ? null : this;
Original file line number Diff line number Diff line change @@ -669,3 +669,27 @@ issue_5900: {
669669 expect_stdout: "PASS"
670670 node_version: ">=14"
671671}
672+
673+ issue_5905: {
674+ options = {
675+ pure_getters : "strict" ,
676+ reduce_vars : true ,
677+ toplevel : true ,
678+ unused : true ,
679+ }
680+ input: {
681+ var a ;
682+ do {
683+ var b = a ++ ;
684+ var c = c ?? b ?. [ 42 ] ;
685+ } while ( console . log ( "PASS" ) ) ;
686+ }
687+ expect: {
688+ var a ;
689+ do {
690+ a ++ ;
691+ } while ( console . log ( "PASS" ) ) ;
692+ }
693+ expect_stdout: "PASS"
694+ node_version: ">=14"
695+ }
You can’t perform that action at this time.
0 commit comments