mirror of
https://github.com/oxc-project/oxc.git
synced 2026-09-14 19:36:11 +08:00
d5d575c1de
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [rust](https://rust-lang.org/) ([source](https://redirect.github.com/rust-lang/rust), [changelog](https://redirect.github.com/rust-lang/rust/blob/main/RELEASES.md)) | toolchain | minor | `1.97.1` → `1.98.0` | --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - "before 10am on monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zNS40IiwidXBkYXRlZEluVmVyIjoiNDQuMzUuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Cameron <cameron.clark@hey.com>
Oxc Codegen
High-performance code generation from AST back to JavaScript/TypeScript source code.
Overview
This crate converts AST nodes back into source code strings, supporting JavaScript, TypeScript, and JSX. It's designed for speed and correctness, producing clean, readable output.
Key Features
- Fast code generation: Optimized for performance with minimal allocations
- Source map support: Generate accurate source maps during output
- Configurable formatting: Control whitespace, semicolons, and other formatting options
- Comment preservation: Maintain comments during code generation
- Binary expression optimization: Intelligent parentheses insertion
Architecture
Code Generation Pipeline
- AST Traversal: Walk through AST nodes systematically
- Token Generation: Convert nodes to appropriate tokens/strings
- Formatting: Apply whitespace, indentation, and style rules
- Source Mapping: Track original source positions if enabled
Design Principles
- Correctness: Generated code must be functionally equivalent to original
- Performance: Minimize string allocations and copying
- Readability: Produce clean, well-formatted output
- Fidelity: Preserve semantic meaning and behavior
The codegen is adapted from esbuild's approach, optimized for Rust and oxc's AST structure.