Bun 1.3.9 Released: parallel script runner, ESM bytecode support, and JSC performance wins
Bun 1.3.9 (Feb 8, 2026) is a focused, high‑utility update that delivers several developer-facing features that matter immediately for full‑stack teams: first-class parallel/sequential script orchestration, ESM bytecode support for compiled builds, finer CPU‑profiler control, and a significant JavaScriptCore (JSC) performance push that speeds common string and regex paths. These changes reduce friction in monorepo CI, improve runtime observability, and give compiled ESM workflows more predictable behavior for deployments and single‑file builds.
Key changes and practical impact
-
bun run --parallel / --sequential — Run multiple npm scripts concurrently or in sequence with prefixed, colored output and workspace-aware filtering. This is a practical win for monorepos and CI: speed up cross‑package builds/tests without introducing custom Foreman scripts or external tools, and retain clear logs for troubleshooting.
-
ESM bytecode in --compile — Bun now supports emitting ESM bytecode when compiling with --compile/--bytecode. That makes compiled ESM apps more portable and improves startup consistency for ESM-first projects and single‑file executables that target fast cold starts.
-
JavaScriptCore upgrade — JSC received multiple microarchitecture optimizations (SIMD-accelerated regex prefix search, new string intrinsics, and JIT improvements) that translate to measurable speedups for regex-heavy code, string operations, and Map/Set size access patterns — useful for server request pipelines, templating, and text processing workloads.
-
Test ergonomics: Symbol.dispose for mocks — bun:test mock() and spyOn() now implement Symbol.dispose, enabling automatic restoration via the using pattern. Tests become safer and cleaner (less manual teardown), particularly for suites that create many temporary mocks.
-
Profiling and networking parity — New --cpu-prof-interval aligns Bun's profiler controls with Node.js sampling semantics; HTTP/2 connection upgrade and NO_PROXY fixes address real-world proxy, reverse‑proxy and HTTP/2 proxying scenarios that previously caused surprising failures.
Why this matters now
-
Faster monorepo CI and local dev loops: built‑in parallel/sequential script orchestration means fewer ad‑hoc scripts and more deterministic, visible output when running many package tasks in parallel. Teams can often remove small orchestration utilities and rely on a single runtime tool.
-
Better compiled ESM deployments: ESM bytecode support reduces variance between dev and compiled artifacts and makes single‑file compiled outputs more reliable for edge or containerized deployment patterns.
-
Real-world runtime robustness: fixes for NO_PROXY, HTTP/2 upgrades, and ARM SIGILL crashes close gaps that commonly surface when moving from dev to production images or heterogeneous cloud instances.
Recommendations for full‑stack teams
-
Try bun run --parallel in CI for independent package builds/tests to shorten wall time; validate log clarity and failure behavior with --no-exit-on-error first.
-
If you compile for production, test ESM bytecode artifacts across your target platforms to confirm startup and interoperability with native modules or external tooling.
-
Re-run flaky integration tests if you use proxies or HTTP/2 intermediaries — the NO_PROXY and connection‑upgrade fixes may resolve issues without code changes.
-
Use the new --cpu-prof-interval when profiling low-latency code paths to collect higher‑resolution samples and compare results against existing Node.js baselines.
Read the official release notes for full details and upgrade instructions. (bun.sh)
Source: Bun release notes (Bun v1.3.9).
Source
Read Next
Svelte 5.52.0 adds TrustedHTML support for {@html}, enabling safer Trusted Types integration
February 21, 2026Svelte 5.52.0 (Feb 18, 2026) adds TrustedHTML support to {@html} expressions so apps can interoperate with browser Trusted Types without string coercion—important for XSS-hardening in SSR and client-rendered apps.
Next.js 16 makes Turbopack stable and the default for dev and build
February 20, 2026Next.js 16 moves Turbopack to stable/default, raises the Node.js minimum, and ships production-facing caching primitives — what full‑stack teams must change now.
Vite 8.0.0‑beta.14 adds server‑side .wasm?init (WASM SSR) and updates Rolldown to 1.0.0‑rc.4
February 19, 2026Vite's Feb 12, 2026 beta introduces SSR support for pre-initialized WebAssembly modules and upgrades its bundler integration to Rolldown 1.0.0‑rc.4 — a practical change that reduces client hydration work and improves tooling stability for Wasm-heavy server renders.