oxc-project
oxc
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
fix(formatter,oxfmt): Remove redundant space after soft_line_break_or_space (#20562) Fixes #20548 Remove redundant `Space` elements that immediately followed `soft_line_break_or_space()` in three places: - Arrow function chain signatures - `class ... extends` with member expressions - `interface ... extends` with member expressions This, in turn, fixes the js-in-vue issue. --- The root cause is that `to_prettier_doc` cannot fully replicate the oxc_formatter printer's runtime behavior (e.g. deduplication of spaces). While this commit fixes the three identified IR-level issues, there are other known divergences between the printer and `to_prettier_doc` (e.g. `Space` ā `StartTag` ā `Space` patterns around comments) that will be addressed separately... TL;DR, converting between Prettier Doc and oxc_formatter IR doesn't seem to be straightforward after all. š„²
main
8 hours ago
feat(transformer): add optimize_enums option to inline and remove regular enum declarations Add `optimize_enums` option to `TypeScriptOptions` that treats regular enums with all-evaluable members the same as const enums: inlines member accesses and removes non-exported declarations. Includes 11 conformance test fixtures covering basic, string values, binary expressions, cross-member/cross-enum references, merged enums, exported (kept), non-evaluable (kept), template literals, and unary expressions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat/optimize-enums-option
8 hours ago
feat(transformer): support const enum inlining and declaration removal - Add `ConstantValue` type in `oxc_syntax` for enum member values (number/string) - Implement enum member value evaluation in `oxc_semantic` supporting numeric auto-increment, string values, binary/unary expressions, cross-member and cross-enum references, template literals, and merged enum declarations - Store evaluated enum member values in `Scoping` with getter/setter APIs - Inline const enum member accesses (`Foo.Bar` / `Foo["Bar"]`) to literal values when `optimize_const_enums` is enabled - Remove non-exported const enum declarations when all members are evaluable - Use `exit_statements` for enum removal so inlining happens before removal - Delete references when inlining enum member accesses for correct semantic data - Handle `IdentifierReferenceRename` for sibling enum member references in merged declarations Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat/const-enum-support
8 hours ago
feat(transformer): add optimize_enums option to inline and remove regular enum declarations Add `optimize_enums` option to `TypeScriptOptions` that treats regular enums with all-evaluable members the same as const enums: inlines member accesses and removes non-exported declarations. Includes 11 conformance test fixtures covering basic, string values, binary expressions, cross-member/cross-enum references, merged enums, exported (kept), non-evaluable (kept), template literals, and unary expressions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat/optimize-enums-option
8 hours ago
[autofix.ci] apply automated fixes
feat/const-enum-support
8 hours ago
[autofix.ci] apply automated fixes
costajohnt:feat/minify-ternary-numeric
8 hours ago
refactor(ast_tools): simplify struct field reordering (#20587) Follow-on after #20584. Simplify implementation of struct field ordering in `ast_tools`. This change does not alter any layouts, just shortens the code by taking a simpler approach to handling ZST fields.
main
14 hours ago
perf(ast): mark `AstKind::address` as `#[inline]` (#20586) Similar to #20585. As `AstKind`'s variants are all structs (no enums any more), and all structs have an `AstKind`, `AstKind::address` method boils down to a no-op. So mark it `#[inline]`. Also remove some defunct code from `AstKind` codegen which was handling when an `AstKind` refers to an enum. This circumstance is no longer possible, so remove this code.
main
14 hours ago
Latest Branches
CodSpeed Performance Gauge
0%
feat(transformer): add optimize_enums option to inline and remove regular enum declarations
#20539
1 day ago
7cb32b6
feat/optimize-enums-option
CodSpeed Performance Gauge
0%
feat(transformer): const enum inlining and optimize_enums support
#20508
8 hours ago
197cc6a
feat/const-enum-support
CodSpeed Performance Gauge
0%
feat(minifier): minify `x ? 1 : 0` to `+x` or `+!!x`
#20594
8 hours ago
cd6aacf
costajohnt:feat/minify-ternary-numeric
Ā© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs