mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 10:28:47 +00:00
## Summary Fixes an issue where compiled standalone binaries included an extra executable name argument in `process.argv`, breaking code that uses `node:util.parseArgs()` with `process.argv.slice(2)`. ## Problem When running a compiled binary, `process.argv` incorrectly included the executable name as a third argument: ```bash ./my-app # process.argv = ["bun", "/$bunfs/root/my-app", "./my-app"] # BUG ``` This caused `parseArgs()` to fail with "Unexpected argument" errors, breaking previously valid code. ## Solution Fixed the `offset_for_passthrough` calculation in `cli.zig` to always skip the executable name for standalone binaries, ensuring `process.argv` only contains the runtime name and script path: ```bash ./my-app # process.argv = ["bun", "/$bunfs/root/my-app"] # FIXED ``` ## Test plan - [x] Added regression test in `test/regression/issue/22157.test.ts` - [x] Verified existing exec-argv functionality still works correctly - [x] Manual testing confirms the fix resolves the parseArgs issue Fixes #22157 🤖 Generated with [Claude Code](https://claude.ai/code) --------- Co-authored-by: Claude Bot <claude-bot@bun.sh> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Michael H <git@riskymh.dev> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>