diff --git a/crates/oxc_mangler/src/lib.rs b/crates/oxc_mangler/src/lib.rs index 8deabaf82d94a..ea3fdb395d000 100644 --- a/crates/oxc_mangler/src/lib.rs +++ b/crates/oxc_mangler/src/lib.rs @@ -570,10 +570,10 @@ impl<'t> Mangler<'t> { frequencies[index].frequency += scoping.get_resolved_reference_ids(symbol_id).len(); frequencies[index].symbol_ids.push(symbol_id); } + + // Remove slots that have no symbols to rename before sorting. + frequencies.retain(|x| !x.symbol_ids.is_empty()); frequencies.sort_unstable_by_key(|x| std::cmp::Reverse(x.frequency)); - if let Some(idx) = frequencies.iter().position(|x| x.symbol_ids.is_empty()) { - frequencies.truncate(idx); - } frequencies } diff --git a/crates/oxc_minifier/tests/mangler/snapshots/mangler.snap b/crates/oxc_minifier/tests/mangler/snapshots/mangler.snap index c2d76641fcb74..2d074732f3433 100644 --- a/crates/oxc_minifier/tests/mangler/snapshots/mangler.snap +++ b/crates/oxc_minifier/tests/mangler/snapshots/mangler.snap @@ -18,7 +18,7 @@ function foo(e) { var x; function foo(a) { ({ x } = y) } var x; -function foo(a) { +function foo(e) { ({x} = y); }