Files
oxc-guard 0389c4010e release(crates): oxc v0.146.0 (#25912)
### 🚀 Features

- 83cb516 minifier: Improve negation of expressions in boolean context (#25755) (Armano)

### 🐛 Bug Fixes

- 134fb22 isolated-declarations: Preserve unresolved parameter types (#25909) (Dunqing)
- 526c2b3 codegen: Remove deprecated test APIs (#25889) (camc314)
- 344a9b2 codegen: Align enum template sourcemaps (#25872) (camc314)

### ⚡ Performance

- 5ef0c93 minifier: Unwrap all unary exprs without creating dummy expressions (#25891) (Armano)
- 8783524 packages/codegen: Remove loop from `growMappingBuffer` (#25886) (overlookmotel)
- b6b14c0 packages/codegen: Remove redundant branch (#25885) (overlookmotel)
- be6adf0 packages/sourcemap: Make `location` passed to `recordSourceMapping` always a number (#25884) (overlookmotel)
- f720f15 packages/codegen: Take named-mapping only code off hot path in `recordSourceMapping` (#25883) (overlookmotel)
- a734af5 packages/codegen: Remove redundant setting of `last` in `printImportAttributes` and `printIf` (#25882) (overlookmotel)
- c6e44c6 packages/codegen: Combine 2 writes in `printJSXElement` (#25881) (overlookmotel)
- 8801662 packages/codegen: Remove redundant mapping from `printParams` (#25880) (overlookmotel)

### 📚 Documentation

- 5ad330e packages/codegen: Reformat comments (#25876) (overlookmotel)
2026-08-19 08:29:51 +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.