Oxc v0.126.0: Turbopack Magic Comments Land in the Parser, Allocator Breaking Changes

Oxc v0.126.0: Turbopack Magic Comments Land in the Parser, Allocator Breaking Changes

lschvn

What Changed

Oxc's April 16 release, crates v0.126.0, is a relatively quiet one in terms of user-facing features but ships meaningful tooling improvements and one unavoidable breaking change.

Turbopack Magic Comments in the Parser

The headline feature is parser support for Turbopack magic comments. These are special comments like /* webpackChunkName */, /* webpackPreload */, and /* resource */ that bundlers use to communicate metadata about dynamic imports and code splitting. Until now, the Oxc parser treated them as plain comments. With this change, they're recognized and preserved semantically, which means tools built on Oxc, including Rolldown, the Rust-based successor to Rollup, can process webpack-annotated code more accurately.

If you're using Rolldown or any toolchain that wraps Oxc's parser, this should reduce spurious warnings and improve tree-shaking decisions when working with code originally written for webpack.

Allocator Breaking Changes

The more disruptive change is a rename of Box and Vec methods in the allocator crate. This is a breaking change targeting projects that directly depend on Oxc's internal allocator API, most users of Oxc through Rolldown or oxlint won't be affected.

The rename aligns the allocator's method naming with updated Rust idioms and removes some historical inconsistencies that accumulated as the crate evolved. If you're maintaining a fork or a deep integration with Oxc internals, budget time to update your method calls after upgrading.

NAPI Transform: Enum Optimization Controls

The NAPI transform, used by the Node.js binding for oxc_transform, now exposes optimizeConstEnums and optimizeEnums as configurable options. These flags control whether the transformer should inline enum values at compile time, reducing runtime enum lookup overhead. The addition is straightforward but useful for performance-sensitive TypeScript projects that use enums heavily.

Performance: Arena and Lexer

Two commits targeted steady-state performance improvements:

Neither of these are user-visible behavior changes, but they contribute to Oxc's continuing lead in JavaScript parsing and transformation benchmarks.

Bug Fixes

A handful of fixes landed in this release:

FAQ

Does this affect oxlint users?

No. oxlint is built on Oxc's linting infrastructure, not the allocator or parser changes in this release. You should be able to update without any config changes.

What about Rolldown users?

Rolldown benefits from the Turbopack magic comment support and any parser correctness fixes. The allocator breaking change is internal and should not affect Rolldown's public API.

How do I update?

cargo update -p oxc_allocator

And rebuild. If you have a direct dependency on the allocator crate's Box or Vec methods, check the CHANGELOG for the full list of renamed methods.

Is there an oxlint release tied to this?

Yes, oxlint v1.60.0 was released on April 13 alongside this cycle's work, bringing oxlint's lint rule coverage up to date with the latest parser changes.

Related articles

More coverage with overlapping topics and tags.

Rolldown 1.1.4 Disables `experimental.lazyBarrel` by Default Again, One Month After 1.1.0 Made It Default-On
tooling

Rolldown 1.1.4 Disables `experimental.lazyBarrel` by Default Again, One Month After 1.1.0 Made It Default-On

Rolldown [v1.1.4](https://github.com/rolldown/rolldown/releases/tag/v1.1.4), published 2026-07-01T14:02:02Z, ships one feature change and 19 bug fixes. The feature change is a partial reversal of the [v1.1.0 default-flip](https://github.com/rolldown/rolldown/releases/tag/v1.1.0) that landed on 2026-06-03: `experimental.lazyBarrel` is now disabled by default again, after four weeks of correctness reports against the default-on behaviour. The release also hardens the dev-mode path by forcing `lazyBarrel` off whenever `experimental.devMode` is set (PR [#10060](https://github.com/rolldown/rolldown/pull/10060)), on top of the existing force-off for `treeshake`. The default-flip revert (PR [#10071](https://github.com/rolldown/rolldown/pull/10071)) and the dev-mode fix both author as one line each: "disable `experimental.lazyBarrel` by default" and "fix(dev): disable lazy barrel in dev mode", and the root-cause tracking is the new [issue #10085](https://github.com/rolldown/rolldown/issues/10085) "Tracking strictExecutionOrder correctness and architecture issues", opened the day after the release. The release follows [Rolldown v1.1.3](https://github.com/rolldown/rolldown/releases/tag/v1.1.3) (2026-06-24) and is the first release since 1.1.0 to touch the lazyBarrel config surface.
Prettier 3.9 Overhauls Five Parsers: micromark for Markdown, yaml v2, GraphQL.js v17, a Rust-Based Flow Parser, and Angular
tooling

Prettier 3.9 Overhauls Five Parsers: micromark for Markdown, yaml v2, GraphQL.js v17, a Rust-Based Flow Parser, and Angular

Prettier 3.9.0, released June 27, 2026 (prettier/prettier, blog post by Fisker Cheung), is a parser-heavy release that upgrades Markdown from remark-parse v8 to micromark v4 (better CommonMark and GFM compliance and a stack of long-standing bug fixes), YAML to yaml v2, GraphQL to GraphQL.js v17 (fragment arguments and directives on directive definitions), Flow to the Flow team's new Rust-based oxidized parser (roughly 37% faster on Prettier's valid Flow fixtures and 43% faster on flow_parser.js in local parser-only benchmarks), and Angular. The JavaScript and TypeScript printer is reworked too, particularly in --no-semi mode where comments around break and continue are now stable across repeated formats (an idempotency fix), plus redundant parenthesis removal in return statements, embedded-template interpolation alignment, and logical-not inlining. The release drops the legacy import ... assert {} syntax (Babel 8 removed the parser plugin; migrate to with), fixes a silently broken --cache-strategy content option, and stops EditorConfig files above Git worktrees from leaking in. The team reiterates pinning the exact version in package.json because the formatting changes will produce diffs.
Playwright v1.61.0 Lands WebAuthn Passkeys, a Real WebStorage API, and Trace-Style Video Modes for the Test Runner
tooling

Playwright v1.61.0 Lands WebAuthn Passkeys, a Real WebStorage API, and Trace-Style Video Modes for the Test Runner

Playwright v1.61.0 (June 15, 2026) ships a virtual authenticator for WebAuthn/passkey ceremonies, a first-class page.localStorage / page.sessionStorage API, network security details on API responses, and brings test runner video recording to parity with trace recording. Browser channels: Chromium 149, Firefox 151, WebKit 26.5.

Comments

Log in Log in to join the conversation.

No comments yet. Be the first to share your thoughts.