Skip to content

Comments

fix: correct filter out unused cjs namespace #7602

Merged
IWANABETHATGUY merged 2 commits intomainfrom
12-20-fix_7597
Dec 20, 2025
Merged

fix: correct filter out unused cjs namespace #7602
IWANABETHATGUY merged 2 commits intomainfrom
12-20-fix_7597

Conversation

@IWANABETHATGUY
Copy link
Member

@IWANABETHATGUY IWANABETHATGUY commented Dec 20, 2025

closed #7597

Copy link
Member Author


How to use the Graphite Merge Queue

Add the label graphite: merge to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@socket-security
Copy link

socket-security bot commented Dec 20, 2025

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedutil-deprecate@​1.0.21001008375100
Addedtinyexec@​1.0.29910010085100
Updatedsemver@​7.7.2 ⏵ 7.7.3100 +1100100 +187100
Addedtypescript@​5.9.31001009010090

View full report

@netlify
Copy link

netlify bot commented Dec 20, 2025

Deploy Preview for rolldown-rs canceled.

Name Link
🔨 Latest commit eb96ef6
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/694659f9d3d85c0008c1bec8

@netlify
Copy link

netlify bot commented Dec 20, 2025

Deploy Preview for rolldown-rs canceled.

Name Link
🔨 Latest commit 8f1bc48
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/69465aca3418ac0008f5680f

@IWANABETHATGUY IWANABETHATGUY changed the title fix: 7597 fix: use used_symbol_refs for namespace refs filtering Dec 20, 2025
@IWANABETHATGUY IWANABETHATGUY changed the title fix: use used_symbol_refs for namespace refs filtering fix: correct filter out unused cjs namespace Dec 20, 2025
@IWANABETHATGUY IWANABETHATGUY marked this pull request as ready for review December 20, 2025 09:14
Copilot AI review requested due to automatic review settings December 20, 2025 09:14
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes issue #7597 by correctly filtering out unused CommonJS namespace references during code splitting. The fix ensures that CJS namespace bindings are only included in the output when they are actually used, not just when their containing module is included.

Key Changes:

  • Updated the filtering logic in merge_cjs_namespace to use used_symbol_refs instead of is_included
  • Added comprehensive test case demonstrating the fix with both used and unused CJS imports

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
crates/rolldown/src/stages/generate_stage/code_splitting.rs Changed filter from checking module inclusion to checking actual symbol usage, removing unused CJS namespace references from output
crates/rolldown/tests/rolldown/issues/7597/*.js Test case files demonstrating the scenario: b.js imports but doesn't use c.js (CJS), while a.js imports and uses it
crates/rolldown/tests/rolldown/issues/7597/artifacts.snap Expected output showing c.js is only imported in a.js where it's actually used
crates/rolldown/tests/rolldown/issues/7597/_config.json Empty test configuration
crates/rolldown/tests/rolldown/issues/7597/package.json Package config with sideEffects: false to enable proper tree-shaking
crates/rolldown/tests/snapshots/integration_rolldown__filename_with_hash.snap Updated snapshot including the new test case

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@IWANABETHATGUY IWANABETHATGUY merged commit bd3a07a into main Dec 20, 2025
40 checks passed
@IWANABETHATGUY IWANABETHATGUY deleted the 12-20-fix_7597 branch December 20, 2025 12:08
IWANABETHATGUY added a commit that referenced this pull request Dec 21, 2025
closed #7597

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
shulaoda added a commit that referenced this pull request Dec 22, 2025
## [1.0.0-beta.56] - 2025-12-22

### 💥 BREAKING CHANGES

- rename `MIXED_EXPORT` error to `MIXED_EXPORTS` (#7565) by @sapphi-red

### 🚀 Features

- rename `id` property to `exporter` in CIRCULAR_REEXPORT error (#7592) by @sapphi-red
- add `ids` property to `CIRCULAR_DEPENDENCY` error (#7591) by @sapphi-red
- node/dev: expose `devMode.lazy` (#7549) by @hyf0
- set log and pos properties for `parseAst` function errors (#7568) by @sapphi-red
- set log and pos properties for logs (#7567) by @sapphi-red
- test-dev-sever: support to manually configure port, run tests in concurrent (#7576) by @hyf0
- add `exporter` property to `MISSING_EXPORT` error (#7564) by @sapphi-red
- add `id` property to `PARSE_ERROR` error (#7563) by @sapphi-red
- support ImporterId hook filter (#7540) by @IWANABETHATGUY

### 🐛 Bug Fixes

- types: better "go to definition" experience for interface `OutputPlugin` (#7610) by @KazariEX
- `postBanner` content should be placed after shebang (#7583) by @btea
- use sanitized filename for preserve modules chunk name (#7603) by @IWANABETHATGUY
- correct filter out unused cjs namespace  (#7602) by @IWANABETHATGUY
- watch: property respect `notify.pollInternal` and `notify.compareContents` (#7595) by @sapphi-red
- make `cleanDir` work with default output directory (#7579) by @shulaoda
- merge `MISSING_NAME_OPTION_FOR_UMD_EXPORT` error to `MISSING_NAME_OPTION_FOR_IIFE_EXPORT` error (#7566) by @sapphi-red
- dev/hmr: ensure cjs modules with no exports reference correct `module` identifier (#7544) by @leegeunhyeok

### 🚜 Refactor

- remove `stable_id` field from `PARSE_ERROR` error (#7593) by @sapphi-red
- make include_runtime_symbol reuseable after linking stage (#7580) by @IWANABETHATGUY
- rust/dev: construct the bundler within itself (#7553) by @hyf0
- rust/watcher: polish API of `Watcher` struct (#7551) by @hyf0
- use `LinkingMetadata::stmt_info_included` to check if a stmt_info is included (#7572) by @IWANABETHATGUY
- use `LinkingMetadata::is_included` to check if a module is included (#7571) by @IWANABETHATGUY
- store module and stmt_info is included info to module meta (#7570) by @IWANABETHATGUY
- make include_* method reunsable after linking stage (#7552) by @IWANABETHATGUY
- rust/watcher: construct the bundler within watcher itself (#7550) by @hyf0
- extract make include_runtime_symbol reusable (#7546) by @IWANABETHATGUY

### ⚙️ Miscellaneous Tasks

- renovate: add `kill-port` in `ignoreDeps` in renovate.json (#7619) by @sapphi-red
- deps: update rust crates (#7617) by @renovate[bot]
- deps: update npm packages (#7616) by @renovate[bot]
- deps: update github-actions (#7615) by @renovate[bot]
- ci: skip benchmark workflows on draft PRs (#7611) by @Copilot
- deps: update dependency rolldown-plugin-dts to ^0.19.0 (#7607) by @renovate[bot]
- deps: update dependency oxlint-tsgolint to v0.10.0 (#7601) by @renovate[bot]
- deps: update dependency rolldown-plugin-dts to v0.18.4 (#7599) by @renovate[bot]
- deps: update notify (#7594) by @sapphi-red
- test-dev-server: add retry mechanism to hmr-full-bundle-mode tests (#7588) by @Copilot
- deps: update napi to v3.7.1 (#7590) by @renovate[bot]
- add JSDoc documentation for memfs type (#7587) by @Copilot
- deps: update dependency oxlint to v1.34.0 (#7589) by @renovate[bot]
- move some tests in ignored-by-unsupported-features that are passing (#7569) by @sapphi-red
- deps: update dependency oxlint-tsgolint to v0.9.2 (#7582) by @renovate[bot]
- deps: update oxc resolver to v11.16.0 (#7574) by @renovate[bot]
- test/dev-server: don't run `pnpm install` during tests (#7560) by @hyf0
- test/dev-server: use `kill-port@1` to improve performance (#7575) by @hyf0
- normalize error object to make some Rollup tests pass (#7562) by @sapphi-red
- ci: separate dev-server(hmr) tests and normal tests (#7558) by @hyf0
- ci: make native rolldown build reusable (#7557) by @hyf0
- resolve some TODOs (#7561) by @sapphi-red

### ❤️ New Contributors

* @KazariEX made their first contribution in [#7610](#7610)
* @leegeunhyeok made their first contribution in [#7544](#7544)

Co-authored-by: shulaoda <[email protected]>
hyf0 added a commit that referenced this pull request Dec 25, 2025
@hyf0 hyf0 restored the 12-20-fix_7597 branch December 25, 2025 14:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: panic in v1.0.0-beta.55 with react-bootstrap and --minify

2 participants