Skip to content

bundler: detect module.exports=require() redirect through a constant-test if/else - #35611

Open
robobun wants to merge 3 commits into
mainfrom
farm/af8da350/bundler-cjs-redirect-through-if
Open

bundler: detect module.exports=require() redirect through a constant-test if/else#35611
robobun wants to merge 3 commits into
mainfrom
farm/af8da350/bundler-cjs-redirect-through-if

Merge branch 'main' into farm/af8da350/bundler-cjs-redirect-through-if

916f6cb
Select commit
Loading
Failed to load commit list.
Claude / Claude Code Review completed Aug 6, 2026 in 17m 46s

Code review found 1 important issue

Found 1 candidates, confirmed 1. See review comments for details.

Details

Severity Count
🔴 Important 1
🟡 Nit 0
🟣 Pre-existing 0
Severity File:Line Issue
🔴 Important src/js_parser/parse/parse_entry.rs:1262-1266 Semantic merge conflict: SideEffects::to_boolean now returns Option

Annotations

Check failure on line 1266 in src/js_parser/parse/parse_entry.rs

See this annotation in the file changed.

@claude claude / Claude Code Review

Semantic merge conflict: SideEffects::to_boolean now returns Option<Known>

The merge with main (916f6cb0) pulled in a refactor where `SideEffects::to_boolean` now returns `Option<Known>` (scan_side_effects.rs:859-862), but this new peel loop still uses the old `.ok`/`.value`/`.side_effects` struct API, so the merged HEAD no longer compiles. Change to `let Some(effects) = SideEffects::to_boolean(p, &s_if.test.data) else { break };` then keep the `effects.side_effects` guard and branch on `effects.value`, matching every other caller in `visit_stmt.rs` / `visit_binary.rs`