uglifier 1.3.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6eb829d19c603a2d3760e02f0235d9d654f640111734caa9317449378e40fa26
4
+ data.tar.gz: '0774580cb6353b90d72e5febfdc6777bc05c6d6d773b09e4aab3b82178fe8acd'
5
+ SHA512:
6
+ metadata.gz: 81f5c10b9dd4b9c84a6fe850dfb45b30bb25e0d9b04fa089ff745683028d1733e6b0b1c92846788af96197ee8774d8a7d105b424bc88f38b0c5abab5971bded0
7
+ data.tar.gz: 3120b0abc086792140a2cdb3a8ecae725327c8c8ea7b55c49d98be196e97de526087583c5bb2b6a0c169e86277474e8ae8a82d6a02cc23cd58cf0276defff03a
@@ -0,0 +1,14 @@
1
+ name: Ruby
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ lint:
7
+ runs-on: ubuntu-latest
8
+
9
+ steps:
10
+ - uses: actions/checkout@v1
11
+ - uses: lautis/rubocop-action@master
12
+ name: Lint
13
+ env:
14
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
data/.gitignore ADDED
@@ -0,0 +1,44 @@
1
+ # rcov generated
2
+ coverage
3
+
4
+ # rdoc generated
5
+ rdoc
6
+
7
+ # yard generated
8
+ doc
9
+ .yardoc
10
+
11
+ # bundler
12
+ .bundle
13
+ Gemfile.lock
14
+ gemfiles/*.lock
15
+
16
+ # jeweler generated
17
+ pkg
18
+
19
+ # Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
20
+ #
21
+ # * Create a file at ~/.gitignore
22
+ # * Include files you want ignored
23
+ # * Run: git config --global core.excludesfile ~/.gitignore
24
+ #
25
+ # After doing this, these files will be ignored in all your git projects,
26
+ # saving you from having to 'pollute' every project you touch with them
27
+ #
28
+ # Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
29
+ #
30
+ # For MacOS:
31
+ #
32
+ #.DS_Store
33
+ #
34
+ # For TextMate
35
+ #*.tmproj
36
+ #tmtags
37
+ #
38
+ # For emacs:
39
+ #*~
40
+ #\#*
41
+ #.\#*
42
+ #
43
+ # For vim:
44
+ #*.swp
data/.gitmodules CHANGED
@@ -1,3 +1,12 @@
1
1
  [submodule "vendor/uglifyjs"]
2
2
  path = vendor/uglifyjs
3
- url = https://github.com/mishoo/UglifyJS.git
3
+ url = https://github.com/mishoo/UglifyJS2.git
4
+ [submodule "vendor/source-map"]
5
+ path = vendor/source-map
6
+ url = https://github.com/mozilla/source-map.git
7
+ [submodule "vendor/split"]
8
+ path = vendor/split
9
+ url = https://gist.github.com/2048056.git
10
+ [submodule "vendor/uglifyjs-harmony"]
11
+ path = vendor/uglifyjs-harmony
12
+ url = https://github.com/mishoo/UglifyJS2.git
data/.rubocop.yml ADDED
@@ -0,0 +1,54 @@
1
+ AllCops:
2
+ DisplayCopNames: true
3
+ Exclude:
4
+ - uglifier.gemspec
5
+ - lib/uglifier/version.rb
6
+ - "vendor/**/*"
7
+ - "gemfiles/vendor/**/*"
8
+
9
+ Metrics/AbcSize:
10
+ Max: 20
11
+
12
+ Metrics/BlockLength:
13
+ Enabled: true
14
+ Exclude:
15
+ - "spec/**/*_spec.rb"
16
+
17
+ Metrics/ClassLength:
18
+ Enabled: false
19
+
20
+ Metrics/LineLength:
21
+ Max: 100
22
+
23
+ Metrics/MethodLength:
24
+ Max: 20
25
+
26
+ Style/Encoding:
27
+ Enabled: false
28
+
29
+ Style/HashSyntax:
30
+ EnforcedStyle: hash_rockets
31
+
32
+ Style/PercentLiteralDelimiters:
33
+ Enabled: false
34
+
35
+ Style/PreferredHashMethods:
36
+ Enabled: false
37
+
38
+ Style/SignalException:
39
+ Enabled: false
40
+
41
+ Style/StringLiterals:
42
+ Enabled: false
43
+
44
+ Style/SymbolArray:
45
+ Enabled: false
46
+
47
+ Style/Alias:
48
+ Enabled: false
49
+
50
+ Style/MutableConstant:
51
+ Enabled: false
52
+
53
+ Style/ExpandPathArguments:
54
+ Enabled: false
data/.travis.yml CHANGED
@@ -1,18 +1,35 @@
1
+ sudo: false
2
+ language: ruby
3
+ cache: bundler
1
4
  rvm:
2
- - 1.8.7
3
- - 1.9.2
4
5
  - 1.9.3
5
- - jruby
6
- env:
7
- - EXECJS_RUNTIME=RubyRacer
8
- - EXECJS_RUNTIME=RubyRhino
6
+ - 2.0.0
7
+ - 2.1.10
8
+ - 2.2.10
9
+ - 2.3.8
10
+ - 2.4.5
11
+ - 2.5.3
12
+ - 2.6.0
13
+ - ruby-head
14
+ - jruby-9.2.5.0
15
+ before_install:
16
+ - gem install bundler -v 1.17.3
17
+ git:
18
+ submodules: false
19
+ gemfile:
20
+ - Gemfile
9
21
  matrix:
10
- exclude:
11
- - rvm: 1.8.7
12
- env: EXECJS_RUNTIME=RubyRhino
13
- - rvm: 1.9.2
14
- env: EXECJS_RUNTIME=RubyRhino
15
- - rvm: 1.9.3
16
- env: EXECJS_RUNTIME=RubyRhino
17
- - rvm: jruby
18
- env: EXECJS_RUNTIME=RubyRacer
22
+ include:
23
+ - rvm: 2.5.3
24
+ gemfile: gemfiles/rubyracer
25
+ - rvm: jruby-9.2.5.0
26
+ gemfile: gemfiles/rubyrhino
27
+ - rvm: 2.5.3
28
+ gemfile: gemfiles/alaska
29
+ env: ALASKA=1
30
+ allow_failures:
31
+ - rvm: 2.5.3
32
+ gemfile: gemfiles/alaska
33
+ env: ALASKA=1
34
+ - rvm: ruby-head
35
+ fast_finish: true
data/.yardopts ADDED
@@ -0,0 +1,4 @@
1
+ --title "Uglifier"
2
+ -
3
+ CHANGELOG.md
4
+ LICENSE.txt
data/CHANGELOG.md ADDED
@@ -0,0 +1,327 @@
1
+ ## 4.2.0 (25 September 2019)
2
+
3
+ - show code context for error messages (#167)
4
+ - defer initialisation of ExecJS context to fix #165
5
+
6
+ ## 4.1.20 (17 November 2018)
7
+
8
+ - update UglifyJS to [3.4.8](https://github.com/mishoo/UglifyJS2/compare/v3.4.9...v3.4.8)
9
+
10
+ ## 4.1.19 (11 September 2018)
11
+
12
+ - update UglifyJS to [3.4.9](https://github.com/mishoo/UglifyJS2/compare/v3.4.7...v3.4.9)
13
+
14
+ ## 4.1.18 (09 August 2018)
15
+
16
+ - update UglifyJS to [3.4.7](https://github.com/mishoo/UglifyJS2/compare/v3.4.6...v3.4.7)
17
+
18
+ ## 4.1.17 (29 July 2018)
19
+
20
+ - update UglifyJS to [3.4.6](https://github.com/mishoo/UglifyJS2/compare/v3.4.5...v3.4.6)
21
+
22
+ ## 4.1.16 (22 July 2018)
23
+
24
+ - update UglifyJS to [3.4.5](https://github.com/mishoo/UglifyJS2/compare/v3.4.4...v3.4.5)
25
+
26
+ ## 4.1.15 (13 July 2018)
27
+
28
+ - update UglifyJS to [3.4.4](https://github.com/mishoo/UglifyJS2/compare/v3.4.3...v3.4.4)
29
+
30
+ ## 4.1.14 (02 July 2018)
31
+
32
+ - update UglifyJS to [3.4.3](https://github.com/mishoo/UglifyJS2/compare/v3.4.2...v3.4.3)
33
+
34
+ ## 4.1.13 (30 June 2018)
35
+
36
+ - update UglifyJS to [3.4.2](https://github.com/mishoo/UglifyJS2/compare/v3.4.1...v3.4.2)
37
+
38
+ ## 4.1.12 (20 June 2018)
39
+
40
+ - update UglifyJS to [3.4.1](https://github.com/mishoo/UglifyJS2/compare/v3.4.0...v3.4.1)
41
+
42
+ ## 4.1.11 (02 June 2018)
43
+
44
+ - update UglifyJS to [3.3.28](https://github.com/mishoo/UglifyJS2/compare/v3.3.22...v3.3.28)
45
+
46
+ ## 4.1.10 (21 April 2018)
47
+
48
+ - update UglifyJS to [3.3.22](https://github.com/mishoo/UglifyJS2/compare/v3.3.20...v3.3.22)
49
+
50
+ ## 4.1.9 (11 April 2018)
51
+
52
+ - update UglifyJS to [3.3.20](https://github.com/mishoo/UglifyJS2/compare/v3.3.16...v3.3.20)
53
+
54
+ ## 4.1.8 (14 March 2018)
55
+
56
+ - update UglifyJS to [3.3.15](https://github.com/mishoo/UglifyJS2/compare/v3.3.14...v3.3.15)
57
+
58
+ ## 4.1.7 (11 March 2018)
59
+
60
+ - update UglifyJS to [3.3.14](https://github.com/mishoo/UglifyJS2/compare/v3.3.10...v3.3.14)
61
+
62
+ ## 4.1.6 (08 February 2018)
63
+
64
+ - update UglifyJS to [3.3.10](https://github.com/mishoo/UglifyJS2/compare/v3.3.9...v3.3.10)
65
+ - update uglify-es to [3.3.10](https://github.com/mishoo/UglifyJS2/compare/harmony-v3.3.9...harmony-v3.3.10)
66
+
67
+ ## 4.1.5 (28 January 2018)
68
+
69
+ - update UglifyJS to [3.3.9](https://github.com/mishoo/UglifyJS2/compare/v3.3.8...v3.3.9)
70
+ - update uglify-es to [3.3.9](https://github.com/mishoo/UglifyJS2/compare/harmony-v3.3.8...harmony-v3.3.9)
71
+
72
+ ## 4.1.4 (22 January 2018)
73
+
74
+ - update UglifyJS to [3.3.8](https://github.com/mishoo/UglifyJS2/compare/v3.3.5...v3.3.8)
75
+ - update uglify-es to [3.3.8](https://github.com/mishoo/UglifyJS2/compare/harmony-v3.3.5...harmony-v3.3.8)
76
+
77
+ ## 4.1.3 (7 January 2018)
78
+
79
+ - update UglifyJS to 3.3.5
80
+
81
+ ## 4.1.2 (30 December 2017)
82
+
83
+ - update UglifyJS to 3.3.4
84
+
85
+ ## 4.1.1 (29 December 2017)
86
+
87
+ - update UglifyJS to 3.3.3
88
+
89
+ ## 4.1.0 (28 December 2017)
90
+
91
+ - update UglifyJS to 3.3.2
92
+ - `cascade` compress option is merged into `collapse_vars`
93
+
94
+ ## 4.0.2 (10 December 2017)
95
+
96
+ - update UglifyJS to 3.2.2
97
+ - show harmony suggestion when using for-of loops
98
+
99
+ ## 4.0.1 (3 December 2017)
100
+
101
+ - update UglifyJS to 3.2.1
102
+
103
+ ## 4.0.0 (2 December 2017)
104
+
105
+ - update UglifyJS to 3.2.0
106
+ - remove Angular ngInject processing
107
+ - add unsafe_math compress option
108
+ - add reduce_funcs compress option
109
+ - add parse options
110
+ - add shebang output option
111
+ - add keep_infinity compress option
112
+ - add quote_style output option
113
+ - add side_effects compress option
114
+ - add switches compress option
115
+ - more helpful error Message in Harmony mode
116
+
117
+ Dropped options:
118
+
119
+ - output: angular
120
+ - mangle: except => reserved
121
+ - mangle_properties: ignore_quoted => keep_quoted
122
+ - enclose
123
+ - squeeze, copyright and screw_ie8 options
124
+
125
+
126
+ ## 3.2.0 (9 April 2017)
127
+
128
+ - experimental ES6/Harmony mode based on UglifyJS2 Harmony branch
129
+ - update UglifyJS to 2.8.22
130
+
131
+ ## 3.1.13 (3 April 2017)
132
+
133
+ - update UglifyJS to 2.8.21
134
+
135
+ ## 3.1.12 (31 March 2017)
136
+
137
+ - update UglifyJS to 2.8.20
138
+
139
+ ## 3.1.11 (28 March 2017)
140
+
141
+ - update UglifyJS to 2.8.17
142
+
143
+ ## 3.1.10 (25 March 2017)
144
+
145
+ - update UglifyJS to 2.8.16
146
+
147
+ ## 3.1.9 (19 March 2017)
148
+
149
+ - update UglifyJS to 2.8.14
150
+
151
+ ## 3.1.8 (17 March 2017)
152
+
153
+ - update UglifyJS to 2.8.13
154
+
155
+ ## 3.1.7 (11 March 2017)
156
+
157
+ - fix NoMethodError on `Uglifier.compile(source, source_map: false)` (#114)
158
+ - update UglifyJS to 2.8.12
159
+
160
+ ## 3.1.6 (9 March 2017)
161
+
162
+ - update UglifyJS to 2.8.11
163
+
164
+ ## 3.1.5 (8 March 2017)
165
+
166
+ - update UglifyJS to 2.8.9
167
+
168
+ ## 3.1.4 (5 March 2017)
169
+
170
+ - Update UglifyJS to 2.8.7
171
+
172
+ ## 3.1.3 (2 March 2017)
173
+
174
+ - update UglifyJS to 2.8.5
175
+ - default passes to 1
176
+ - allow source_map option to be `true` instead of a hash
177
+
178
+ ## 3.1.2 (1 March 2017)
179
+
180
+ - fix `reduce_vars` compressor option
181
+ - add `passes` compressor option
182
+ - update UglifyJS to 2.8.4
183
+
184
+ ## 3.1.1 (27 February 2017)
185
+
186
+ - disable `reduce_vars` by default as it causes JS errors (#110)
187
+
188
+ ## 3.1.0 (27 February 2017)
189
+
190
+ - update UglifyJS to 2.8.0
191
+ - add reduce_vars compress option
192
+ - enable `reduce_vars` and `collapse_vars` compress options by default
193
+ - unused top-level function and variable removal with `toplevel` compress option
194
+ - add `top_retain` compress option to specify list of top-level variables to always retain
195
+ - add `unsafe_comps` and `unsafe_proto` options
196
+
197
+ ## 3.0.4 (30 November 2016)
198
+
199
+ - update UglifyJS to 2.7.5
200
+ - implement ignore_quoted and debug options for mangle_properties
201
+
202
+ ## 3.0.3 (24 October 2016)
203
+
204
+ - update UglifyJS to 2.7.4
205
+ - add wrap_iife output option to wrap IIFEs in parenthesis
206
+
207
+ ## 3.0.2 (20 August 2016)
208
+
209
+ - add top-level keep_fnames option that implies both compressor and mangler keep_fnames
210
+ - update UglifyJS to 2.7.3
211
+
212
+ ## 3.0.1 (28 July 2016)
213
+
214
+ - update UglifyJS to 2.7.0
215
+ - split JS dependencies to separate files
216
+
217
+ ## 3.0.0 (22 March 2016)
218
+
219
+ - drop support for Ruby 1.8
220
+ - remove json as dependency
221
+ - discard unused function arguments only in unsafe mode
222
+ - add `keep_fnames` option to preserve function names in compressed code
223
+ - add `collapse_vars` option to collapse single-use variables
224
+ - backwards incompatible changes to source map options
225
+ - support for inline base64 encoded source maps
226
+ - mangle property names option (disabled by default)
227
+ - update UglifyJS to 2.6.2
228
+
229
+ ## 2.7.2 (26 August 2015)
230
+
231
+ - update UglifyJS to 2.4.24
232
+
233
+ ## 2.7.1 (27 February 2015)
234
+
235
+ - fix compatibility with experimental Alaska ExecJS runtime
236
+
237
+ ## 2.7.0 (8 January 2015)
238
+
239
+ - copyright comment preservation also includes comments starting with a bang (!)
240
+
241
+ ## 2.6.1 (1 January 2015)
242
+
243
+ - update UglifyJS to 2.4.16
244
+
245
+ ## 2.6.0 (8 December 2014)
246
+
247
+ - allow metadata to be appended to minified code
248
+
249
+ ## 2.5.3 (18 July 2014)
250
+
251
+ - no changes
252
+
253
+ ## 2.5.2 (18 July 2014)
254
+
255
+ - update UglifyJS to 2.4.15
256
+
257
+ ## 2.5.1 (13 June 2014)
258
+
259
+ - update UglifyJS to 2.4.14
260
+
261
+ ## 2.5.0 (15 March 2014)
262
+
263
+ - update UglifyJS to 2.4.13
264
+ - process Angular @ngInject annotations
265
+ - add keep_fargs option
266
+ - change `ascii_only` default to true
267
+
268
+ ## 2.4.0 (19 December 2013)
269
+
270
+ - update UglifyJS to 2.4.8
271
+ - add drop_console compress option
272
+
273
+ ## 2.3.3 (12 December 2013)
274
+
275
+ - update UglifyJS to 2.4.7
276
+
277
+ ## 2.3.2 (1 December 2013)
278
+
279
+ - update UglifyJS to 2.4.6
280
+ - document missing mangler and output options
281
+
282
+ ## 2.3.1 (8 November 2013)
283
+
284
+ - update UglifyJS to 2.4.3
285
+
286
+ ## 2.3.0 (26 October 2013)
287
+
288
+ - use JSON gem instead of multi_json
289
+ - update UglifyJS to 2.4.1
290
+ - fix issues with some Unicode JS identifiers (#47, #58)
291
+
292
+ ## 2.2.1 (28 August 2013)
293
+
294
+ - fix IE8 compatibility
295
+
296
+ ## 2.2.0 (25 August 2013)
297
+
298
+ - update UglifyJS to 2.4.0
299
+ - add `negate_iife` compressor option
300
+ - escape null characters as \x00, so that null followed by number isn't
301
+ interpreted as octal (#47)
302
+
303
+ ## 2.1.2 (7 July 2013)
304
+
305
+ - update UglifyJS to 2.3.6
306
+
307
+ ## 2.1.1 (18 May 2013)
308
+
309
+ - fix JScript compatibility
310
+ - update UglifyJS to 2.3.4
311
+
312
+ ## 2.1.0 (8 May 2013)
313
+
314
+ - update to UglifyJS 2.3.0
315
+ - add enclose and screw_ie8 options
316
+
317
+ ## 2.0.1 (6 April 2013)
318
+
319
+ - fix compatibility with Sprockets 2.9.0
320
+
321
+ ## 2.0.0 (6 April 2013)
322
+
323
+ This release is backwards incompatible for JS compressor options.
324
+
325
+ - update UglifyJS to 2.2.5
326
+ - change compressor arguments to align with UglifyJS2
327
+ - `compile_with_map`: generate source maps for minified code
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,47 @@
1
+ # Contributing to Uglifier
2
+
3
+ Any contributions to Uglifier are welcome, whether they are feedback, bug reports, or - even better - pull requests.
4
+
5
+ ## Development
6
+
7
+ To start working on Uglifier, fork the repo to your own account. [Ruby](https://www.ruby-lang.org), [bundler](http://bundler.io) and [Node.js](http://nodejs.org) are required as dependencies.
8
+
9
+ Ensure that your local copy is up-to-date before you start working on a feature or a bug fix. You should write any new code in a topic branch.
10
+
11
+ ### Tests
12
+
13
+ Try to write a test case that reproduces the problem you're trying to fix or describes a feature that you want to build. Tests are located in `spec/` directory.
14
+
15
+ Tests as a pull request are appreciated even without a fix to highlight or reproduce a problem.
16
+
17
+ To run tests, first install all project dependencies:
18
+
19
+ bundle install
20
+
21
+ Then run tests using rake:
22
+
23
+ bundle exec rake
24
+
25
+ ### Updating UglifyJS and source-map
26
+
27
+ [UglifyJS](https://github.com/mishoo/UglifyJS2) and [source-map](https://github.com/mozilla/source-map/) are included in the project as Git submodules. To install submodules, run in your terminal
28
+
29
+ git submodule update --init
30
+
31
+ After that, UglifyJS can be updated to a specific version with rake task.
32
+
33
+ rake uglifyjs:update VERSION=3.3.4
34
+
35
+ To compile JS with dependencies, run
36
+
37
+ rake uglifyjs:build
38
+
39
+ You can even write custom patches to UglifyJS in `vendor/uglifyjs` and `vendor/uglifyjs-harmony` directories and compile the bundles JS using the command above. However, for the changes to be releasable, they should be in UglifyJS repository.
40
+
41
+ To automatically update UglifyJS version and commit changes
42
+
43
+ rake uglifyjs VERSION=3.3.4
44
+
45
+ ## Reporting issues
46
+
47
+ Uglifier uses the [GitHub issue tracker](https://github.com/lautis/uglifier/issues) to track bugs and features. Before submitting a bug report or feature request, check to make sure it hasn't already been submitted. When submitting a bug report, please include a Gist that includes a stack trace and any details that may be necessary to reproduce the bug, including your gem version, Ruby version, and **ExecJS runtime**. Ideally, a bug report should include a pull request with failing specs.
data/Gemfile CHANGED
@@ -1,25 +1,5 @@
1
- source "http://rubygems.org"
1
+ source "https://rubygems.org"
2
2
 
3
- gem "execjs", ">=0.3.0"
4
- gem "multi_json", "~> 1.0", ">= 1.0.2"
3
+ gemspec
5
4
 
6
- # Depend on defined ExecJS runtime
7
- execjs_runtimes = {
8
- "RubyRacer" => "therubyracer",
9
- "RubyRhino" => "therubyrhino",
10
- "Mustang" => "mustang"
11
- }
12
-
13
- if ENV["EXECJS_RUNTIME"] && execjs_runtimes[ENV["EXECJS_RUNTIME"]]
14
- gem execjs_runtimes[ENV["EXECJS_RUNTIME"]], :group => :development
15
- end
16
-
17
- # Engine
18
- gem ENV["MULTI_JSON_ENGINE"], :group => :development if ENV["MULTI_JSON_ENGINE"]
19
-
20
- group :development do
21
- gem "rspec", "~> 2.7"
22
- gem "bundler", "~> 1.0"
23
- gem "jeweler", "~> 1.8.3"
24
- gem "rdoc", "~> 3.11"
25
- end
5
+ gem 'rubocop', '~> 0.57.0', :group => [:development] if RUBY_VERSION >= '2.1'