## 4.2.1 (22 September 2024)

- fix Ruby 3.4 compatiblity, drop Ruby 2.3 and older support (#195)
- fix typos (#194)

## 4.2.0 (25 September 2019)

- show code context for error messages (#167)
- defer initialisation of ExecJS context to fix #165

## 4.1.20 (17 November 2018)

- update UglifyJS to [3.4.8](https://github.com/mishoo/UglifyJS2/compare/v3.4.9...v3.4.8)

## 4.1.19 (11 September 2018)

- update UglifyJS to [3.4.9](https://github.com/mishoo/UglifyJS2/compare/v3.4.7...v3.4.9)

## 4.1.18 (09 August 2018)

- update UglifyJS to [3.4.7](https://github.com/mishoo/UglifyJS2/compare/v3.4.6...v3.4.7)

## 4.1.17 (29 July 2018)

- update UglifyJS to [3.4.6](https://github.com/mishoo/UglifyJS2/compare/v3.4.5...v3.4.6)

## 4.1.16 (22 July 2018)

- update UglifyJS to [3.4.5](https://github.com/mishoo/UglifyJS2/compare/v3.4.4...v3.4.5)

## 4.1.15 (13 July 2018)

- update UglifyJS to [3.4.4](https://github.com/mishoo/UglifyJS2/compare/v3.4.3...v3.4.4)

## 4.1.14 (02 July 2018)

- update UglifyJS to [3.4.3](https://github.com/mishoo/UglifyJS2/compare/v3.4.2...v3.4.3)

## 4.1.13 (30 June 2018)

- update UglifyJS to [3.4.2](https://github.com/mishoo/UglifyJS2/compare/v3.4.1...v3.4.2)

## 4.1.12 (20 June 2018)

- update UglifyJS to [3.4.1](https://github.com/mishoo/UglifyJS2/compare/v3.4.0...v3.4.1)

## 4.1.11 (02 June 2018)

- update UglifyJS to [3.3.28](https://github.com/mishoo/UglifyJS2/compare/v3.3.22...v3.3.28)

## 4.1.10 (21 April 2018)

- update UglifyJS to [3.3.22](https://github.com/mishoo/UglifyJS2/compare/v3.3.20...v3.3.22)

## 4.1.9 (11 April 2018)

- update UglifyJS to [3.3.20](https://github.com/mishoo/UglifyJS2/compare/v3.3.16...v3.3.20)

## 4.1.8 (14 March 2018)

- update UglifyJS to [3.3.15](https://github.com/mishoo/UglifyJS2/compare/v3.3.14...v3.3.15)

## 4.1.7 (11 March 2018)

- update UglifyJS to [3.3.14](https://github.com/mishoo/UglifyJS2/compare/v3.3.10...v3.3.14)

## 4.1.6 (08 February 2018)

- update UglifyJS to [3.3.10](https://github.com/mishoo/UglifyJS2/compare/v3.3.9...v3.3.10)
- update uglify-es to [3.3.10](https://github.com/mishoo/UglifyJS2/compare/harmony-v3.3.9...harmony-v3.3.10)

## 4.1.5 (28 January 2018)

- update UglifyJS to [3.3.9](https://github.com/mishoo/UglifyJS2/compare/v3.3.8...v3.3.9)
- update uglify-es to [3.3.9](https://github.com/mishoo/UglifyJS2/compare/harmony-v3.3.8...harmony-v3.3.9)

## 4.1.4 (22 January 2018)

- update UglifyJS to [3.3.8](https://github.com/mishoo/UglifyJS2/compare/v3.3.5...v3.3.8)
- update uglify-es to [3.3.8](https://github.com/mishoo/UglifyJS2/compare/harmony-v3.3.5...harmony-v3.3.8)

## 4.1.3 (7 January 2018)

- update UglifyJS to 3.3.5

## 4.1.2 (30 December 2017)

- update UglifyJS to 3.3.4

## 4.1.1 (29 December 2017)

- update UglifyJS to 3.3.3

## 4.1.0 (28 December 2017)

- update UglifyJS to 3.3.2
- `cascade` compress option is merged into `collapse_vars`

## 4.0.2 (10 December 2017)

- update UglifyJS to 3.2.2
- show harmony suggestion when using for-of loops

## 4.0.1 (3 December 2017)

- update UglifyJS to 3.2.1

## 4.0.0 (2 December 2017)

- update UglifyJS to 3.2.0
- remove Angular ngInject processing
- add unsafe_math compress option
- add reduce_funcs compress option
- add parse options
- add shebang output option
- add keep_infinity compress option
- add quote_style output option
- add side_effects compress option
- add switches compress option
- more helpful error Message in Harmony mode

Dropped options:

- output: angular
- mangle: except => reserved
- mangle_properties: ignore_quoted => keep_quoted
- enclose
- squeeze, copyright and screw_ie8 options


## 3.2.0 (9 April 2017)

- experimental ES6/Harmony mode based on UglifyJS2 Harmony branch
- update UglifyJS to 2.8.22

## 3.1.13 (3 April 2017)

- update UglifyJS to 2.8.21

## 3.1.12 (31 March 2017)

- update UglifyJS to 2.8.20

## 3.1.11 (28 March 2017)

- update UglifyJS to 2.8.17

## 3.1.10 (25 March 2017)

- update UglifyJS to 2.8.16

## 3.1.9 (19 March 2017)

- update UglifyJS to 2.8.14

## 3.1.8 (17 March 2017)

- update UglifyJS to 2.8.13

## 3.1.7 (11 March 2017)

- fix NoMethodError on `Uglifier.compile(source, source_map: false)` (#114)
- update UglifyJS to 2.8.12

## 3.1.6 (9 March 2017)

- update UglifyJS to 2.8.11

## 3.1.5 (8 March 2017)

- update UglifyJS to 2.8.9

## 3.1.4 (5 March 2017)

- Update UglifyJS to 2.8.7

## 3.1.3 (2 March 2017)

- update UglifyJS to 2.8.5
- default passes to 1
- allow source_map option to be `true` instead of a hash

## 3.1.2 (1 March 2017)

- fix `reduce_vars` compressor option
- add `passes` compressor option
- update UglifyJS to 2.8.4

## 3.1.1 (27 February 2017)

- disable `reduce_vars` by default as it causes JS errors (#110)

## 3.1.0 (27 February 2017)

- update UglifyJS to 2.8.0
- add reduce_vars compress option
- enable `reduce_vars` and `collapse_vars` compress options by default
- unused top-level function and variable removal with `toplevel` compress option
- add `top_retain` compress option to specify list of top-level variables to always retain
- add `unsafe_comps` and `unsafe_proto` options

## 3.0.4 (30 November 2016)

- update UglifyJS to 2.7.5
- implement ignore_quoted and debug options for mangle_properties

## 3.0.3 (24 October 2016)

- update UglifyJS to 2.7.4
- add wrap_iife output option to wrap IIFEs in parenthesis

## 3.0.2 (20 August 2016)

- add top-level keep_fnames option that implies both compressor and mangler keep_fnames
- update UglifyJS to 2.7.3

## 3.0.1 (28 July 2016)

- update UglifyJS to 2.7.0
- split JS dependencies to separate files

## 3.0.0 (22 March 2016)

- drop support for Ruby 1.8
- remove json as dependency
- discard unused function arguments only in unsafe mode
- add `keep_fnames` option to preserve function names in compressed code
- add `collapse_vars` option to collapse single-use variables
- backwards incompatible changes to source map options
- support for inline base64 encoded source maps
- mangle property names option (disabled by default)
- update UglifyJS to 2.6.2

## 2.7.2 (26 August 2015)

- update UglifyJS to 2.4.24

## 2.7.1 (27 February 2015)

- fix compatibility with experimental Alaska ExecJS runtime

## 2.7.0 (8 January 2015)

- copyright comment preservation also includes comments starting with a bang (!)

## 2.6.1 (1 January 2015)

- update UglifyJS to 2.4.16

## 2.6.0 (8 December 2014)

- allow metadata to be appended to minified code

## 2.5.3 (18 July 2014)

- no changes

## 2.5.2 (18 July 2014)

- update UglifyJS to 2.4.15

## 2.5.1 (13 June 2014)

- update UglifyJS to 2.4.14

## 2.5.0 (15 March 2014)

- update UglifyJS to 2.4.13
- process Angular @ngInject annotations
- add keep_fargs option
- change `ascii_only` default to true

## 2.4.0 (19 December 2013)

- update UglifyJS to 2.4.8
- add drop_console compress option

## 2.3.3 (12 December 2013)

- update UglifyJS to 2.4.7

## 2.3.2 (1 December 2013)

- update UglifyJS to 2.4.6
- document missing mangler and output options

## 2.3.1 (8 November 2013)

 - update UglifyJS to 2.4.3

## 2.3.0 (26 October 2013)

  - use JSON gem instead of multi_json
  - update UglifyJS to 2.4.1
  - fix issues with some Unicode JS identifiers (#47, #58)

## 2.2.1 (28 August 2013)

  - fix IE8 compatibility

## 2.2.0 (25 August 2013)

  - update UglifyJS to 2.4.0
  - add `negate_iife` compressor option
  - escape null characters as \x00, so that null followed by number isn't
    interpreted as octal (#47)

## 2.1.2 (7 July 2013)

  - update UglifyJS to 2.3.6

## 2.1.1 (18 May 2013)

  - fix JScript compatibility
  - update UglifyJS to 2.3.4

## 2.1.0 (8 May 2013)

  - update to UglifyJS 2.3.0
  - add enclose and screw_ie8 options

## 2.0.1 (6 April 2013)

  - fix compatibility with Sprockets 2.9.0

## 2.0.0 (6 April 2013)

This release is backwards incompatible for JS compressor options.

  - update UglifyJS to 2.2.5
  - change compressor arguments to align with UglifyJS2
  - `compile_with_map`: generate source maps for minified code
