crates_v0.150.0
oxc-project/oxccrates_v0.150.0Sep 14, 2026by github-actions[bot]
Upgrading?
AI Summary
This release focuses on parser robustness, introducing numerous fixes for modifiers and escape sequences, alongside significant minifier optimizations and new features like the `ascii_only` option.
Key Highlights
- Parser fixes for `accessor`, `readonly`, and `async` modifiers on constructors and methods.
- Minifier performance improvements including in-place expression updates and reduced allocations.
- New `ascii_only` option for codegen.
- Support for math constants as known globals in the ECMAScript module.
New Features
- Add `ascii_only` option to codegen.
- Define math constants as known globals and resolve their types.
- Negate binary comparison for `typeof x < 'u'` in minifier.
Full Release Notes
### 🚀 Features - ca649e0 ecma: Define math constants as known globals and resolve their types (#26585) (Armano) - 9ef028c codegen: Add `ascii_only` option (#25994) (Samuel Attard) - 80a76a0 minifier: Negate binary comparison for `typeof x < 'u'` (#26367) (Armano) ### 🐛 Bug Fixes - 8ca76da parser: Reject `accessor` modifiers on methods (#26617) (camc314) - 1916f31 parser: Reject `readonly` modifier on constructors (#26612) (camc314) - 1c42008 parser: Handle escaped let in for loops (#26583) (camc314) - d21d5cf parser: Recognize annotated empty arrows in conditionals (#26537) (camc314) - d7713ad parser: Classify Unicode line breaks in block comments (#26536) (camc314) - 75cd919 transformer: Preserve receivers in private optional chains (#26535) (camc314) - b32d25d parser: Reject escaped import-phase keywords (#26534) (camc314) - 47b8311 parser: Recognize contextual binding names in type lookaheads (#26532) (camc314) - d6b6705 parser: Require arrow separator in TypeScript function types (#26529) (camc314) - e98beef parser: Disambiguate await using in for initializers (#26527) (camc314) - 92afee6 parser: Allow parenthesized JSX comma expressions with preserve_parens=false (#26524) (camc314) - 31508b1 parser: Reject return types on constructor overloads (#26523) (camc314) - a091fc4 parser: Validate await context for await using declarations (#26495) (camc314) - 5501e86 parser: Disallow in expressions in using for-loop initializers (#26490) (camc314) - c8e5fa7 parser: Allow escaped type names in import and export specifiers (#26487) (camc314) - 2dcee2f parser: Reject async modifiers on class fields (#26486) (camc314) - 973d58e parser: Require comma after TypeScript this parameter (#26480) (camc314) - 32d00c5 codegen: Preserve instantiation expression precedence (#26424) (camc314) - cfa47ab parser: Allow `in` expressions in class static blocks (#26423) (camc314) - 5986187 packages/codegen: Preserve private-in right operand precedence (#26420) (camc314) - f8e6c6c packages/codegen: Preserve in restriction through yield arguments (#26421) (camc314) - d61e3bf parser: Validate TS named tuple rest elements (#26419) (camc314) - ae6c386 codegen: Preserve in restriction through yield arguments (#26413) (camc314) - 42ac916 codegen: Preserve private-in right operand precedence (#26411) (camc314) - 10521b2 parser: Allow escaped type default import bindings (#26409) (camc314) - 72cb5e3 parser: Reject rest parameters in getters (#26400) (camc314) - 6e15ad5 packages/codegen: Print matching quoted import names as identifiers (#26404) (camc314) - bbbb4bc packages/codegen: Preserve private-in left operand precedence (#26403) (camc314) - a111b5b packages/codegen: Print accessibility modifiers before abstract (#26402) (camc314) - 4e76602 parser: Allow `in` in arrow block bodies within `for` initializers (#26395) (camc314) - b20fc19 parser: Reject partially parenthesized mixed coalesce expressions (#26394) (camc314) ### ⚡ Performance - 1f902a6 isolated_declarations: Key scope maps by `Ident` (#26380) (Dunqing) - a242469 minfiier: Reduce allocs when creating indirect access (#26601) (Armano) - 5b4787f minifier: Update chain expressions in place (#26544) (Armano) - 0bc1661 minifier: Try merging before creating new expression statements (#26556) (Armano) - c78d707 minifier: Process newly created stmt in handle_if_statement (#26541) (Armano) - 029c84b minfier: Update expressions in place when substituting alternate syntax (#26460) (Armano) - d198982 codegen: Outline postfix source mapping work (#26450) (camc314) - 53f006e ecmascript: Format small integer literals with itoa (#26446) (camc314) - 8bfb8c0 codegen: Avoid duplicate sourcemap name lookups (#26441) (camc314) ### 📚 Documentation - 38533ac ast: Move type annotation span comment to span field (#26522) (camc314)
Related Repositories
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one