mirror of
https://github.com/oxc-project/oxc.git
synced 2026-09-14 19:36:11 +08:00
b6f1458dec
### 💥 BREAKING CHANGES -a33788east: [**BREAKING**] Group class heritage into `ClassHeritage` (#25360) (camc314) -5c5cdcdast: [**BREAKING**] Narrow `TSInterfaceHeritage::expression` to TSTypeName (#24360) (camc314) -6be314fast: [**BREAKING**] Remove duplicated `VariableDeclarator::kind` (#25319) (camc314) -44fd320ast: [**BREAKING**] Split TS external modules & Namespace Declarations (#25284) (camc314) ### 🚀 Features -9a37c41napi: Restructure React transform options (#25326) (Boshen) -b3c1b30allocator: Add `ArenaVec::push_mut` (#25338) (overlookmotel) ### 🐛 Bug Fixes -bbd6ed3codegen: Wrap string literal in parens after directives (#25435) (overlookmotel) -d07a293codegen: Preserve cast parentheses in conditional tests (#25115) (camc314) -8b7d441codegen: Preserve satisfies parentheses before bitwise operators (#25113) (camc314) -e0fb2d7minifier: Avoid unsafe return removal in labeled blocks (#25406) (Armano) -c49f4ceparser: Preserve terminal license comments (#25400) (camc314) -9d19ab3transform_react: Downgrade nonfatal compiler diagnostics (#25418) (Boshen) -937825creact_compiler: Disable exhaustive memo validation by default (#25417) (Boshen) -12937b3parser: Reject comma expressions in class fields (#25385) (Cameron) -7d8a9b5react_compiler: Preserve hook spans for React Refresh (#25393) (Boshen) -9e93ba6parser: Reset auto-accessor initializer context (#25384) (camc314) -cc2e28dparser: Reject trailing tokens in `Parser::parse_expression` (#25371) (camc314) -697c629minifier: Preserve Annex B labeled-function bindings in implicit-return rewrite (#25349) (Armano) -4d723caparser: Report TS1035 for quoted module names (#25305) (camc314) -0c9b980semantic: Report module declaration diagnostics (#25285) (camc314) -2a1058anapi: Omit parser header from WASI declarations (#25254) (camc314) ### ⚡ Performance -dd1430bsemantic: Avoid allocation in class overload check (#25440) (camc314) -e420816parser: Optimize trailing comma tracking (#25376) (camc314) -6529d1aminifier: Short-circuit scope check when alternate already determines result (#25318) (Armano) ### 📚 Documentation -fe111eballocator: Improve doc comments for `Arena` methods (#24922) (overlookmotel)
Oxc Syntax
Common JavaScript and TypeScript syntax definitions and utilities.
Overview
This crate provides shared syntax definitions, constants, and utilities used across the oxc toolchain. It contains fundamental types and enums that represent JavaScript and TypeScript language constructs.
Key Features
- Syntax constants: Keywords, operators, and language tokens
- AST utilities: Common patterns and helper functions for AST manipulation
- Identifier validation: ECMAScript identifier checking and utilities
- Operator precedence: Precedence tables for expression parsing
- Module records: Import/export relationship tracking
Key Components
Architecture
Design Principles
- Shared definitions: Avoid duplication across oxc crates
- Type safety: Use newtypes for different kinds of IDs
- Performance: Efficient representations for common operations
- Standards compliance: Follow ECMAScript specifications
Core Components
Language Constants
- Keywords: All JavaScript/TypeScript reserved words
- Operators: Binary, unary, and assignment operators
- Tokens: Punctuation and special symbols
AST Utilities
- Node flags: Metadata about AST nodes (computed properties, etc.)
- Traversal helpers: Common patterns for walking AST trees
- Type guards: Runtime type checking for AST nodes
Semantic Types
- IDs: Type-safe identifiers for nodes, symbols, scopes, references
- Flags: Bitfield metadata for semantic entities
- Relationships: Parent-child and reference relationships
Module System
- Import/Export tracking: Comprehensive module dependency analysis
- Resolution: Module specifier resolution utilities
- Metadata: Module type and format information
Integration
This crate serves as the foundation for:
- Parser: Uses syntax definitions during tokenization
- Semantic: Leverages ID types and flags for analysis
- Linter: References operator precedence and keyword tables
- Transformer: Uses module records for import/export handling
The syntax crate ensures consistency and type safety across all oxc components.