crates/oxc_minifier/docs/ARCHITECTURE.md
Achieve maximum compression through comprehensive optimizations while maintaining correctness.
compressor.rs)Orchestrates the optimization pipeline with fixed-point iteration.
pub struct Compressor<'a> {
allocator: &'a Allocator,
}
Key responsibilities:
peephole/)17+ transformation passes including:
Each optimization implements transformations in the AST traversal visitor pattern.
ctx.rs)Shared utilities for optimizations:
pub struct Ctx<'a, 'b> {
// Provides access to:
// - AST builder
// - Scoping information
// - Symbol values
// - Optimization options
}
state.rs)Tracks optimization state:
1. Parse and Build Semantic Model
└─> SemanticBuilder creates scoping and symbols
2. Normalization Pass
└─> Convert to canonical form for optimizations
3. Peephole Optimization Loop
└─> Apply all optimizations
└─> Check if any changes made
└─> Repeat until fixed-point (no changes)
4. Optional Mangling
└─> Rename variables for size
5. Code Generation
└─> Output optimized JavaScript
oxc_allocatorTakeIn traitUsing oxc_traverse for AST walking:
oxc_ast: AST node definitionsoxc_semantic: Scope and symbol analysisoxc_ecmascript: ECMAScript operationsoxc_mangler: Variable renamingoxc_codegen: Output generation