oxc/crates/oxc_minifier
oxc-bot 857bc73302
Release crates v0.24.1 (#4798)
## [0.24.1] - 2024-08-10

### Features

- b3c3125 linter: Overhaul unicorn/no-useless-spread (#4791) (DonIsaac)
- c519295 minifier: Add `InjectGlobalVariables` plugin
(`@rollup/plugin-inject`) (#4759) (Boshen)

### Bug Fixes

- fff9da3 ast, ast_codegen: Use `generate_derive` instead of visitable
for generating span derives. (#4747) (rzvxa)
- f5eeebd ast_macros: Raise compile error on invalid `generate_derive`
input. (#4766) (rzvxa)
- 4d0b40a napi/transform: Fix wrong isolated declarations emit (Boshen)

### Refactor

- daa0b2e ast: `oxc_ast` crate re-export AST types from other crates
(#4773) (overlookmotel)
- d4a3be8 ast_codegen: Line breaks between types in layout assertions
(#4781) (overlookmotel)
- dbb5f4c ast_codegen: Remove unnecessary imports from generated files
(#4774) (overlookmotel)
- 7ea058d ast_codegen: Replace Windows-style line breaks with Unix-style
(#4769) (overlookmotel)
- 2dea0ca ast_codegen: Consistent import order (#4761) (overlookmotel)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
2024-08-10 15:26:40 +08:00
..
examples fix(minifier): fix keep_var keeping vars from arrow functions (#4680) 2024-08-06 07:04:25 +00:00
src feat(minifier): add InjectGlobalVariables plugin (@rollup/plugin-inject) (#4759) 2024-08-10 01:12:31 +00:00
tests feat(minifier): add InjectGlobalVariables plugin (@rollup/plugin-inject) (#4759) 2024-08-10 01:12:31 +00:00
Cargo.toml Release crates v0.24.1 (#4798) 2024-08-10 15:26:40 +08:00
CHANGELOG.md Release crates v0.24.1 (#4798) 2024-08-10 15:26:40 +08:00
README.md

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 is a good place to start for learning the fundamentals.

Terser Tests

The fixtures are copied from https://github.com/terser/terser/tree/master/test/compress