# What changed in @rolldown/browser

> 57 changes in @rolldown/browser 1 from its official release notes, upgrade guides and advisories: 1 breaking, 4 new APIs and options. Each one cited. Sources checked 2026-10-19. HTML: https://unstale.sh/npm/@rolldown/browser/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @rolldown/browser 1

### Breaking changes

- Rejects non-ESM output formats in dev mode. (1.2.12) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1212---2026-09-30)

### New APIs and options

- Adds the output.charset option to configure output character encoding. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Adds an option for experimental dev-mode hot updates. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Ships imported bindings for HMR partial accept. (1.2.12) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1212---2026-09-30)
- Adds experimental support for inlining common chunks containing import() and deduplicating shared code in lazy chunks. (1.2.12) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1212---2026-09-30)

### Performance

- Deduplicates shared code along known loading paths, reducing duplicate code in inline common chunks. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- In dev, ships only rows with dynamic edges in registerGraph. (1.2.12) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1212---2026-09-30)

### Behavior and default changes

- Routes independent ESM re-exports per consumer during code splitting. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Passes the watch exclusion setting to notify as its ignore filter. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)

### Fixes and other changes

- Reports ASSIGN_TO_IMPORT when code writes to re-exported namespace members. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Makes repeated close() calls a no-op. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Prints a CommonJS module's top-level this as a wrapper parameter named by Rolldown. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Watches lazily compiled files even when a build starts first. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Keeps files loaded by the HMR stage watched when the same task rebuilds. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Handles output.charset set to 'ascii' when output.minify is false. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Keeps internal bindings out of entry exports. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Avoids assigning fixed names to bindings that would capture them. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Keeps an external require() local in a CJS module off the top-level names. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Avoids renaming entry top-level bindings onto their nested bindings. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Keeps generated top-level names off inner bindings. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Shims deep namespace reads through default imports. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Shims missing static namespace members. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Preserves sourcemap boundaries when tracing has no mapping. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Accounts for init imports during code splitting. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Avoids eager loading through mixed re-exports. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Preserves initialization of wrapped ESM re-exports during tree-shaking. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Tree-shakes expression statements that coerce known constants. (1.2.14) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1214---2026-10-14)
- Uses computed access for arbitrary import names. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Fails on chunk syntax errors and escapes export names once. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Escapes dependency paths in CJS output. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Avoids cycles caused by redundant re-export initialization. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Escapes export names in defineProperty calls. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Devtools now honors the configured session ID. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Treats re-exports of the same external binding as one export. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Honors externalLiveBindings for imported exports. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Imported function calls in HMR patches keep `this` undefined, matching the expected call behavior. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Prevents a late payload from replacing newer module code. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Reloads the page when an HMR update fails after merging its edit. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Ships newly imported modules that the client has not received. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Escapes namespace properties in IIFE output. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Avoids moving initialization calls in front of unwrapped JSON modules. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Ships dependencies of a module when a patch shipped that module but never ran. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Sanitizes preserveModules chunk names after resolving the relative path. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Each renderChunk call receives its own meta object. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Generates valid bindings for shimmed exports. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Reads string-named imports correctly in HMR patches and lazy chunks. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Makes the dev module factory async to support top-level await. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Escapes namespace properties and dependency paths in UMD output. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Keeps the `with` clause on bare external imports. (1.2.13) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1213---2026-10-07)
- Re-derives chunk execution orders after the runtime leaves its host chunk. (1.2.12) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1212---2026-09-30)
- Makes entries-aware chunk merging deterministic. (1.2.12) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1212---2026-09-30)
- Aligns dependency handling with Vite. (1.2.12) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1212---2026-09-30)
- Avoids restarting the macOS watcher for unchanged paths. (1.2.12) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1212---2026-09-30)
- Gates member-read initialization paths on the reading statement. (1.2.12) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1212---2026-09-30)
- Retains initialization paths through re-exported namespaces. (1.2.12) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1212---2026-09-30)
- Clears the resolver cache when a file is created or deleted. (1.2.12) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1212---2026-09-30)
- Names the resolved specifier in unresolved import diagnostics. (1.2.12) — [release notes](https://github.com/rolldown/rolldown/blob/c9a8cda42bc0fdd84c7b4b4e6d7f95ae83e8b5f7/CHANGELOG.md#1212---2026-09-30)
