fix: rename __export to __exportAll to be compatible with cjs-module-lexer#7640
fix: rename __export to __exportAll to be compatible with cjs-module-lexer#7640graphite-app[bot] merged 1 commit intomainfrom
__export to __exportAll to be compatible with cjs-module-lexer#7640Conversation
How to use the Graphite Merge QueueAdd the label graphite: merge-when-ready 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. |
__export to __exportAll to be compatible with cjs-module-lexer
✅ Deploy Preview for rolldown-rs canceled.
|
There was a problem hiding this comment.
Pull request overview
This PR renames the runtime helper function __export to __exportAll to be compatible with cjs-module-lexer, which is used by Node.js to analyze CommonJS modules.
Key Changes
- Runtime helper
__exportrenamed to__exportAllin runtime-base.js and runtime-extra-dev-common.js - Rust enum
RuntimeHelper::Exportrenamed toRuntimeHelper::ExportAllin generated runtime_helper.rs - All Rust code references updated to use the new
__exportAllname - Test snapshots regenerated to reflect the renamed function
Reviewed changes
Copilot reviewed 129 out of 131 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| crates/rolldown_plugin_hmr/src/runtime/runtime-extra-dev-common.js | Updated import and property assignment from __export to __exportAll |
| crates/rolldown_common/src/generated/runtime_helper.rs | Renamed enum variant and constant from Export to ExportAll |
| crates/rolldown/src/runtime/runtime-base.js | Renamed function from __export to __exportAll |
| crates/rolldown/src/stages/link_stage/create_exports_for_ecma_modules.rs | Updated runtime symbol resolution call |
| crates/rolldown/src/stages/generate_stage/chunk_optimizer.rs | Updated comments and helper references |
| crates/rolldown/src/module_finalizers/mod.rs | Updated comments and symbol resolution calls |
| crates/rolldown/src/hmr/hmr_ast_finalizer.rs | Updated runtime property access and comments |
| test snapshots (126 files) | Regenerated snapshots showing __exportAll instead of __export in generated code |
Files not reviewed (1)
- crates/rolldown/tests/rolldown/function/advanced_chunks/split_node_modules/artifacts.snap: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Benchmarks Rust |
143dd58 to
60d105e
Compare
Merge activity
|
…dule-lexer` (#7640) Closes #7634 Rename `__export` to `__exportAll` to ensure compatibility with `cjs-module-lexer` versions older than 2.1.1 (which covers most Node.js versions). `cjs-module-lexer` has special handling for `__export` (a pattern used by TypeScript). Since it uses pattern matching to detect exports, it fails to parse `__export` when there is only one argument (e.g., `__export({ ... })`), expecting the form `__export(exports, { ... })` instead. By using a different name, we avoid triggering this faulty heuristic entirely. Background: why we change the `__export` runtime helper 1. #6114 2. #5926
60d105e to
271bba4
Compare
## [1.0.0-beta.57] - 2025-12-24 ✨ TypeScript Project References Support - Rolldown now supports TypeScript project references when manually specifying a `tsconfig` - See more details: https://rolldown.rs/options/tsconfig 💥 Rename `__export` to `__exportAll` - Update `rolldown-plugin-dts` to the latest version for compatibility ### 💥 BREAKING CHANGES - tsconfig: enable project references support in manual mode (#7545) by @shulaoda ### 🚀 Features - add `CANNOT_CALL_NAMESPACE` warning (#7636) by @sapphi-red - add import path for unresolved import diagnostics (#7625) by @sapphi-red - optimize dynamic entry facade chunks by merging with common chunks when they are captured by common chunks (#7486) by @IWANABETHATGUY ### 🐛 Bug Fixes - rename `__export` to `__exportAll` to be compatible with `cjs-module-lexer` (#7640) by @IWANABETHATGUY - strip UTF-8 BOM when using text loader (#7635) by @sapphi-red - rolldown_plugin_replace: avoid crashing with invalid delimiters (#7621) by @sapphi-red ### 🚜 Refactor - export all filter functions (#7622) by @sxzz - allow multiple help messages in diagnostics (#7624) by @sapphi-red ### 📚 Documentation - add README.md to packages/rolldown (#7556) by @Copilot ### ⚡ Performance - use fsevents on macOS for file watching (#7596) by @sapphi-red ### 🧪 Testing - handle re-exports of external modules in CJS format (#7641) by @IWANABETHATGUY - update integration to use vite's rolldown-canary branch (#7633) by @shulaoda ### ⚙️ Miscellaneous Tasks - docs: fix Netlify ignore condition to detect docs changes across all PR commits (#7637) by @Copilot - deps: update rollup submodule for tests to v4.54.0 (#7630) by @sapphi-red - skip benchmarks for PRs with 'graphite: merge-when-ready' label (#7631) by @Boshen - deps: update esbuild for tests to 0.27.2 (#7629) by @sapphi-red - fix "update-test-dependencies" workflow (#7628) by @sapphi-red - deps: update test262 submodule for tests (#7626) by @sapphi-red - deps: update dependency oxlint to v1.35.0 (#7623) by @renovate[bot] Co-authored-by: shulaoda <[email protected]>

Closes #7634
Rename
__exportto__exportAllto ensure compatibility withcjs-module-lexerversions older than 2.1.1 (which covers most Node.js versions).cjs-module-lexerhas special handling for__export(a pattern used by TypeScript). Since it uses pattern matching to detect exports, it fails to parse__exportwhen there is only one argument (e.g.,__export({ ... })), expecting the form__export(exports, { ... })instead.By using a different name, we avoid triggering this faulty heuristic entirely.
Background:
why we change the
__exportruntime helper__exportruntime helper to create target object internally #6114__exportruntime helper as pure #5926