# Minifier
A JavaScript minifier has three components:
1. printer
2. mangler
3. compressor
## Mangler
The mangler implementation is part of the `SymbolTable` residing in `oxc_semantic`.
It is responsible for shortening variables. Its algorithm should be gzip friendly.
The printer is also responsible for printing out the shortened variable names.
## Compressor
The compressor is responsible for rewriting statements and expressions for minimal text output.
[Terser](https://github.com/terser/terser) is a good place to start for learning the fundamentals.
## Terser Tests
The fixtures are copied from https://github.com/terser/terser/tree/v5.9.0/test/compress