Files
oxc-guard b6f1458dec release(crates): oxc v0.144.0 (#25474)
### 💥 BREAKING CHANGES

- a33788e ast: [**BREAKING**] Group class heritage into `ClassHeritage` (#25360) (camc314)
- 5c5cdcd ast: [**BREAKING**] Narrow `TSInterfaceHeritage::expression` to TSTypeName (#24360) (camc314)
- 6be314f ast: [**BREAKING**] Remove duplicated `VariableDeclarator::kind` (#25319) (camc314)
- 44fd320 ast: [**BREAKING**] Split TS external modules & Namespace Declarations (#25284) (camc314)

### 🚀 Features

- 9a37c41 napi: Restructure React transform options (#25326) (Boshen)
- b3c1b30 allocator: Add `ArenaVec::push_mut` (#25338) (overlookmotel)

### 🐛 Bug Fixes

- bbd6ed3 codegen: Wrap string literal in parens after directives (#25435) (overlookmotel)
- d07a293 codegen: Preserve cast parentheses in conditional tests (#25115) (camc314)
- 8b7d441 codegen: Preserve satisfies parentheses before bitwise operators (#25113) (camc314)
- e0fb2d7 minifier: Avoid unsafe return removal in labeled blocks (#25406) (Armano)
- c49f4ce parser: Preserve terminal license comments (#25400) (camc314)
- 9d19ab3 transform_react: Downgrade nonfatal compiler diagnostics (#25418) (Boshen)
- 937825c react_compiler: Disable exhaustive memo validation by default (#25417) (Boshen)
- 12937b3 parser: Reject comma expressions in class fields (#25385) (Cameron)
- 7d8a9b5 react_compiler: Preserve hook spans for React Refresh (#25393) (Boshen)
- 9e93ba6 parser: Reset auto-accessor initializer context (#25384) (camc314)
- cc2e28d parser: Reject trailing tokens in `Parser::parse_expression` (#25371) (camc314)
- 697c629 minifier: Preserve Annex B labeled-function bindings in implicit-return rewrite (#25349) (Armano)
- 4d723ca parser: Report TS1035 for quoted module names (#25305) (camc314)
- 0c9b980 semantic: Report module declaration diagnostics (#25285) (camc314)
- 2a1058a napi: Omit parser header from WASI declarations (#25254) (camc314)

### ⚡ Performance

- dd1430b semantic: Avoid allocation in class overload check (#25440) (camc314)
- e420816 parser: Optimize trailing comma tracking (#25376) (camc314)
- 6529d1a minifier: Short-circuit scope check when alternate already determines result (#25318) (Armano)

### 📚 Documentation

- fe111eb allocator: Improve doc comments for `Arena` methods (#24922) (overlookmotel)
2026-08-10 09:57:10 +00:00
..

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.