Files
oxc-guard 894c8f9cd8 release(crates): oxc v0.148.0 (#26198)
### 💥 BREAKING CHANGES

- a31567a allocator: [**BREAKING**] Make `Allocator::cursor_ptr` and `data_end_ptr` private (#26081) (overlookmotel)

### 🚀 Features

- 784e9fa minifier: Invert `!0` and `!1` in place for boolean context to `1` and `0` (#26050) (Armano)
- 1e902cc minifier: Expand fold leading assignments into the var decl (#26142) (Armano)
- 3ed4f6a minifier: Expand de morgan's optimization to allow move of `!` (#25930) (Armano)
- 5672585 parser: Attach all comments to nodes (#25944) (camc314)

### 🐛 Bug Fixes

- 4adfb4c semantic: Validate chained continue labels (#26157) (camc314)
- b874f48 ecmascript: `Math.round` only exact half ties (#26150) (camc314)
- a625378 minifier: Coerce omitted `indexOf` search argument (#26149) (camc314)
- dc7398b ecmascript: Trim trailing whitespace in string to number (#26148) (camc314)
- 243b685 transformer/object-rest: Lower multiple declarators correctly (#26147) (camc314)
- dc09a3a parser: Avoid panic on escaped string export names (#26146) (camc314)
- e412cf2 linter: Clamp invalid JS plugin locations (#26144) (camc314)
- c3dedc9 semantic: Skip function body bindings in parameters (#26099) (Dunqing)
- e74de61 transform-react: Match Babel diagnostic reporting (#26128) (Boshen)
- d5163d0 parser: Correctly classify unapplied pure annotations (#26084) (camc314)
- 8531b9b linter/plugins: Alter method for obtaining mutable `Program` when sending AST to JS plugins (#26077) (overlookmotel)
- 9b51658 regular_expression: Allow oversized decimal escape for Annex B (#26070) (leaysgur)
- c8de4df regular_expression: Reject oversized backreferences (#26055) (camc314)

### ⚡ Performance

- ac4785a diagnostics: Use fixed ANSI styles (#26130) (Boshen)
- 07a0793 packages/codegen: Flatten output in chunks (#26109) (overlookmotel)
- 487427a packages/codegen: Faster string flattening (#26108) (overlookmotel)
- 7785583 packages/codegen: Ensure indent strings are flattened (#26107) (overlookmotel)
- 0dd4db3 packages/codegen: Store mapping positions in an `Int32Array` (#26085) (overlookmotel)
2026-09-01 08:15:07 +00:00
..
…
…

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.