mirror of
https://github.com/oxc-project/oxc.git
synced 2026-09-14 19:36:11 +08:00
8ab883afaa
`@__KEY__` and `#__KEY__` are currently treated as normal comments. Codegen can drop them before a later property-mangling pass. The property may then be renamed while the annotated string keeps its old name.
This classifies the marker as a property-key annotation. Codegen keeps it next to string and no-substitution template literals when annotation comments are enabled, and the property mangler reads that classification instead of scanning source text. Final output still follows the normal comment options, so whitespace-minified or annotation-disabled output removes the marker.
## Example
Input:
```js
const object = { _field: 1 };
const key = /* #__KEY__ */ "_field";
object[key];
```
Before, an intermediate codegen pass could remove the marker:
```js
const object = { _field: 1 };
const key = "_field";
object[key];
```
After, the marker survives for the later property-mangling pass.
Verified with the affected crate suites, `just minsize`, workspace lint, docs, AST generation, and independent review. `just ready` is only blocked locally by existing Node-version and terminal-color snapshot differences.
Implemented with AI assistance (OpenAI Codex). I reviewed and understand the changes and remain responsible for this contribution under the repository AI usage policy.
Oxc Parser
High-performance JavaScript and TypeScript parser with comprehensive language support.
Overview
This crate provides a fast, spec-compliant parser for JavaScript and TypeScript that produces a complete Abstract Syntax Tree (AST). It supports all modern language features including JSX, TSX, and the latest ECMAScript proposals.
Key Features
- Complete language support: JavaScript, TypeScript, JSX, and TSX
- Latest ECMAScript: All stable ECMAScript features plus stage 3+ proposals
- High performance: Significantly faster than traditional parsers
- Error recovery: Continues parsing after errors to provide complete AST
- Comprehensive AST: Detailed node information with accurate source positions
Architecture
Parser Design
- Recursive descent: Traditional recursive descent parser architecture
- Error recovery: Sophisticated error recovery for IDE-friendly parsing
- Memory efficient: Uses arena allocation for optimal performance
- Streaming: Processes source text in a single pass
Language Support
- JavaScript: Full ECMAScript 2024+ support
- TypeScript: Complete TypeScript syntax including decorators
- JSX/TSX: React JSX and TypeScript JSX syntax
- Proposals: Stage 3 decorators and other advancing proposals
AST Structure
The parser produces an AST that closely follows ECMAScript specifications:
- Accurate positions: Every node has precise source location information
- Complete information: Preserves all syntactic details including trivia
- Type-safe: Leverages Rust's type system for correctness
- Visitor-friendly: Designed for easy traversal and transformation
The parser is designed as the foundation for all other oxc tools, providing the high-quality AST needed for analysis, transformation, and code generation.