uglifier 2.7.1 → 3.0.1

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.
@@ -2,6 +2,12 @@
2
2
  require 'stringio'
3
3
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
4
4
 
5
+ def expect_to_have_inline_source_map(minified, original)
6
+ options = { :source_map => { :sources_content => true } }
7
+ _, map = Uglifier.compile_with_map(minified, options)
8
+ expect(JSON.load(map).fetch("sourcesContent", [])).to include(original)
9
+ end
10
+
5
11
  describe "Uglifier" do
6
12
  let(:source) do
7
13
  <<-JS
@@ -24,20 +30,24 @@ describe "Uglifier" do
24
30
  end
25
31
 
26
32
  it "generates source maps with the correct meta-data" do
27
- _, map = Uglifier.compile_with_map(source,
28
- :source_filename => "ahoy.js",
29
- :output_filename => "ahoy.min.js",
30
- :source_root => "http://localhost/")
33
+ _, json = Uglifier.compile_with_map(
34
+ source,
35
+ :source_map => {
36
+ :filename => "ahoy.js",
37
+ :output_filename => "ahoy.min.js",
38
+ :root => "http://localhost/"
39
+ }
40
+ )
31
41
 
32
- map = SourceMap.from_s(map)
33
- expect(map.file).to eq("ahoy.min.js")
42
+ map = SourceMap::Map.from_json(json)
43
+ expect(map.filename).to eq("ahoy.min.js")
34
44
  expect(map.sources).to eq(["ahoy.js"])
35
45
  expect(map.names).to eq(%w(hello world))
36
- expect(map.source_root).to eq("http://localhost/")
37
- expect(map.mappings.first[:generated_line]).to eq(1)
46
+ expect(JSON.load(json)["sourceRoot"]).to eq("http://localhost/")
47
+ expect(map[0].generated.line).to eq(1)
38
48
  end
39
49
 
40
- it "should skip copyright lines in source maps" do
50
+ it "skips copyright lines in source maps" do
41
51
  source = <<-JS
42
52
  /* @copyright Conrad Irwin */
43
53
  function hello () {
@@ -49,14 +59,19 @@ describe "Uglifier" do
49
59
  };
50
60
  JS
51
61
 
52
- _, map = Uglifier.compile_with_map(source,
53
- :source_filename => "ahoy.js",
54
- :source_root => "http://localhost/")
55
- map = SourceMap.from_s(map)
56
- expect(map.mappings.first[:generated_line]).to eq(2)
62
+ _, json = Uglifier.compile_with_map(
63
+ source,
64
+ :source_map => {
65
+ :filename => "ahoy.js",
66
+ :root => "http://localhost/"
67
+ }
68
+ )
69
+
70
+ map = SourceMap::Map.from_json(json)
71
+ expect(map[0].generated.line).to eq(2)
57
72
  end
58
73
 
59
- it "should be able to handle an input source map" do
74
+ it "proceses an input source map" do
60
75
  source = <<-JS
61
76
  function hello () {
62
77
  function world () {
@@ -69,42 +84,143 @@ describe "Uglifier" do
69
84
 
70
85
  minified1, map1 = Uglifier.compile_with_map(
71
86
  source,
72
- :source_filename => "ahoy.js",
73
- :source_root => "http://localhost/",
87
+ :source_map => {
88
+ :filename => "ahoy.js",
89
+ :root => "http://localhost/"
90
+ },
74
91
  :mangle => false
75
92
  )
76
93
 
77
- _, map2 = Uglifier.compile_with_map(source,
78
- :input_source_map => map1,
79
- :mangle => true)
94
+ _, map2 = Uglifier.compile_with_map(
95
+ source,
96
+ :source_map => {
97
+ :input_source_map => map1
98
+ },
99
+ :mangle => true
100
+ )
80
101
 
81
102
  expect(minified1.lines.to_a.length).to eq(1)
82
103
 
83
- map = SourceMap.from_s(map2)
104
+ map = SourceMap::Map.from_json(map2)
84
105
  expect(map.sources).to eq(["http://localhost/ahoy.js"])
85
- expect(map.mappings.first[:source_line]).to eq(1)
86
- expect(map.mappings.last[:source_line]).to eq(6)
106
+ expect(map[0].generated.line).to eq(1)
107
+ expect(map[-1].original.line).to eq(1)
108
+ end
109
+
110
+ it "handles empty string as input map sourceRoot" do
111
+ _, map1 = Uglifier.compile_with_map(
112
+ source,
113
+ :source_map => {
114
+ :filename => "ahoy.js",
115
+ :root => ""
116
+ },
117
+ :mangle => false
118
+ )
119
+
120
+ _, map = Uglifier.compile_with_map(
121
+ source,
122
+ :source_map => {
123
+ :input_source_map => map1
124
+ },
125
+ :mangle => true
126
+ )
127
+
128
+ expect(SourceMap::Map.from_json(map).sources).to eq(["ahoy.js"])
87
129
  end
88
130
 
89
- it "appens source map url" do
90
- minified, _ = Uglifier.compile_with_map(
131
+ it "appends source map url to minified JS" do
132
+ minified, = Uglifier.compile_with_map(
91
133
  source,
92
- :source_filename => "ahoy.js",
93
- :output_filename => "ahoy.min.js",
94
- :source_root => "http://localhost/",
95
- :source_map_url => "http://example.com/map"
134
+ :source_map => {
135
+ :filename => "ahoy.js",
136
+ :output_filename => "ahoy.min.js",
137
+ :root => "http://localhost/",
138
+ :map_url => "http://example.com/map"
139
+ }
96
140
  )
97
141
  expect(minified).to include("\n//# sourceMappingURL=http://example.com/map")
98
142
  end
99
143
 
100
- it "appens source url" do
101
- minified, _ = Uglifier.compile_with_map(
144
+ it "appends source url to minified JS" do
145
+ minified, = Uglifier.compile_with_map(
102
146
  source,
103
- :source_filename => "ahoy.js",
104
- :output_filename => "ahoy.min.js",
105
- :source_root => "http://localhost/",
106
- :source_url => "http://example.com/source"
147
+ :source_map => {
148
+ :filename => "ahoy.js",
149
+ :output_filename => "ahoy.min.js",
150
+ :root => "http://localhost/",
151
+ :url => "http://example.com/source"
152
+ }
107
153
  )
108
154
  expect(minified).to include("\n//# sourceURL=http://example.com/source")
109
155
  end
156
+
157
+ it "inlines source map" do
158
+ minified = Uglifier.compile(
159
+ source,
160
+ :source_map => {
161
+ :filename => "ahoy.js",
162
+ :output_filename => "ahoy.min.js",
163
+ :root => "http://localhost/",
164
+ :url => "http://example.com/source"
165
+ }
166
+ )
167
+ source_map_mime = "application/json;charset=utf-8;base64,"
168
+ expect(minified).to include("\n//# sourceMappingURL=data:#{source_map_mime}")
169
+ end
170
+
171
+ describe "inline source map parsing" do
172
+ let(:minified) do
173
+ Uglifier.compile(
174
+ source,
175
+ :source_map => {
176
+ :filename => "ahoy.js",
177
+ :sources_content => true
178
+ }
179
+ )
180
+ end
181
+
182
+ let(:code) { minified.split("\n")[0] }
183
+ let(:source_mapping_url) { minified.split("\n")[1][2..-1] }
184
+
185
+ it "parses inline source maps from line comments" do
186
+ minified = "#{code}\n//#{source_mapping_url}"
187
+ expect_to_have_inline_source_map(minified, source)
188
+ end
189
+
190
+ it "parses inline source maps with block comments" do
191
+ minified = "#{code}\n/*#{source_mapping_url}*/"
192
+ expect_to_have_inline_source_map(minified, source)
193
+ end
194
+
195
+ it "parses inline source maps with multi-line block comments" do
196
+ minified = "#{code}\n/*\n#{source_mapping_url}\n*/"
197
+ expect_to_have_inline_source_map(minified, source)
198
+ end
199
+
200
+ it "parses inline source maps from mixed comments" do
201
+ minified = "#{code}\n/*\n//#{source_mapping_url}\n*/"
202
+ expect_to_have_inline_source_map(minified, source)
203
+ end
204
+
205
+ it "only parses source maps at end of file" do
206
+ minified = "#{code}\n//#{source_mapping_url}\nhello();"
207
+ _, map = Uglifier.compile_with_map(minified)
208
+ expect(JSON.load(map)["sourcesContent"]).to be_nil
209
+ end
210
+
211
+ it "handles other source map declarations at end of file" do
212
+ minified = "#{code}\n
213
+ //#{source_mapping_url}\n
214
+ //# sourceURL=http://example.com/source.js
215
+ //# sourceURL=http://example.com/source.js
216
+ "
217
+ expect_to_have_inline_source_map(minified, source)
218
+ end
219
+
220
+ it "does not explode when data URI is invalid" do
221
+ minified = "#{code}\n//# sourceMappingURL=data:application/javascript,foobar"
222
+ _, map = Uglifier.compile_with_map(minified)
223
+ expect(JSON.load(map)["sourcesContent"]).to be_nil
224
+ end
225
+ end
110
226
  end
data/spec/spec_helper.rb CHANGED
@@ -1,14 +1,14 @@
1
1
  # encoding: UTF-8
2
2
  require 'uglifier'
3
3
  require 'rspec'
4
- require 'source_map'
4
+ require 'sourcemap'
5
5
 
6
6
  # Requires supporting files with custom matchers and macros, etc,
7
7
  # in ./support/ and its subdirectories.
8
8
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
9
9
 
10
10
  if ENV["ALASKA"]
11
- require 'alaska'
11
+ require 'alaska/runtime'
12
12
  require 'tempfile'
13
13
  ExecJS.runtime = Alaska::Runtime.new
14
14
  end
@@ -20,4 +20,13 @@ RSpec.configure do |config|
20
20
  config.expect_with :rspec do |expect|
21
21
  expect.syntax = :expect
22
22
  end
23
+
24
+ if ENV['CI']
25
+ config.before(:example, :focus) { raise "Do not commit focused specs" }
26
+ else
27
+ config.filter_run_including :focus => true
28
+ config.run_all_when_everything_filtered = true
29
+ end
30
+
31
+ config.warnings = true
23
32
  end
@@ -19,7 +19,7 @@ describe "Uglifier" do
19
19
  end
20
20
 
21
21
  it "doesn't omit null character in strings" do
22
- expect(Uglifier.new.compile('var foo="\0bar"')).to include("\\x00bar")
22
+ expect(Uglifier.new.compile('var foo="\0bar"')).to include("\\0bar")
23
23
  end
24
24
 
25
25
  it "adds trailing semicolon to minified source" do
@@ -27,6 +27,33 @@ describe "Uglifier" do
27
27
  expect(Uglifier.new.compile(source)[-1]).to eql(";"[0])
28
28
  end
29
29
 
30
+ describe "property name mangling" do
31
+ let(:source) do
32
+ <<-JS
33
+ var obj = {
34
+ _hidden: false,
35
+ name: 'value'
36
+ };
37
+
38
+ alert(object.name);
39
+ JS
40
+ end
41
+
42
+ it "does not mangle property names by default" do
43
+ expect(Uglifier.compile(source)).to include("object.name")
44
+ end
45
+
46
+ it "can be configured to mangle properties" do
47
+ expect(Uglifier.compile(source, :mangle_properties => true))
48
+ .not_to include("object.name")
49
+ end
50
+
51
+ it "can configure a regex for mangling" do
52
+ expect(Uglifier.compile(source, :mangle_properties => { :regex => /^_/ }))
53
+ .to include("object.name")
54
+ end
55
+ end
56
+
30
57
  describe "argument name mangling" do
31
58
  it "doesn't try to mangle $super by default to avoid breaking PrototypeJS" do
32
59
  expect(Uglifier.compile('function foo($super) {return $super}')).to include("$super")
@@ -34,7 +61,8 @@ describe "Uglifier" do
34
61
 
35
62
  it "allows variables to be excluded from mangling" do
36
63
  code = "function bar(foo) {return foo + 'bar'};"
37
- expect(Uglifier.compile(code, :mangle => { :except => ["foo"] })).to include("(foo)")
64
+ expect(Uglifier.compile(code, :mangle => { :except => ["foo"] }))
65
+ .to include("(foo)")
38
66
  end
39
67
 
40
68
  it "skips mangling when set to false" do
@@ -42,21 +70,28 @@ describe "Uglifier" do
42
70
  expect(Uglifier.compile(code, :mangle => false)).to include("(foo)")
43
71
  end
44
72
 
45
- it "mangles argumen names by default" do
73
+ it "mangles argument names by default" do
46
74
  code = "function bar(foo) {return foo + 'bar'};"
47
- expect(Uglifier.compile(code, :mangle => true)).not_to include("(foo)")
75
+ expect(Uglifier.compile(code)).not_to include("(foo)")
48
76
  end
49
77
 
50
78
  it "mangles top-level names when explicitly instructed" do
51
79
  code = "function bar(foo) {return foo + 'bar'};"
52
- expect(Uglifier.compile(code, :mangle => { :toplevel => false })).to include("bar(")
53
- expect(Uglifier.compile(code, :mangle => { :toplevel => true })).not_to include("bar(")
80
+ expect(Uglifier.compile(code, :mangle => { :toplevel => false }))
81
+ .to include("bar(")
82
+ expect(Uglifier.compile(code, :mangle => { :toplevel => true }))
83
+ .not_to include("bar(")
84
+ end
85
+
86
+ it "can be controlled with mangle option" do
87
+ code = "function bar(foo) {return foo + 'bar'};"
88
+ expect(Uglifier.compile(code, :mangle => false)).to include("(foo)")
54
89
  end
55
90
  end
56
91
 
57
92
  describe "comment preservation" do
58
93
  let(:source) do
59
- <<-EOS
94
+ <<-JS
60
95
  /* @preserve Copyright Notice */
61
96
  /* (c) 2011 */
62
97
  // INCLUDED
@@ -65,8 +100,8 @@ describe "Uglifier" do
65
100
  /* Another Copyright */
66
101
  /*! Another Bang */
67
102
  // A comment!
68
- function add(a, b) { return a + b; }
69
- EOS
103
+ function add(a, b) { return a + b; }
104
+ JS
70
105
  end
71
106
 
72
107
  it "handles copyright option" do
@@ -118,8 +153,8 @@ describe "Uglifier" do
118
153
  subject { Uglifier.compile(source, :comments => :none) }
119
154
 
120
155
  it "omits all comments" do
121
- expect(subject).not_to match %r{//}
122
- expect(subject).not_to match(/\/\*/)
156
+ expect(subject).not_to match(%r{//})
157
+ expect(subject).not_to match(%r{/\*})
123
158
  end
124
159
  end
125
160
 
@@ -145,8 +180,8 @@ describe "Uglifier" do
145
180
 
146
181
  it "honors max line length" do
147
182
  code = "var foo = 123;function bar() { return foo; }"
148
- uglifier = Uglifier.new(:output => { :max_line_len => 16 }, :compress => false)
149
- expect(uglifier.compile(code).split("\n").length).to eq(2)
183
+ uglifier = Uglifier.new(:output => { :max_line_len => 20 }, :compress => false)
184
+ expect(uglifier.compile(code).split("\n").map(&:length)).to all(be < 28)
150
185
  end
151
186
 
152
187
  it "hoists vars to top of the scope" do
@@ -155,10 +190,22 @@ describe "Uglifier" do
155
190
  expect(minified).to match(/var \w,\w/)
156
191
  end
157
192
 
158
- it "forwards screw_ie8 option to UglifyJS" do
159
- code = "function something() { return g['switch']; }"
160
- expect(Uglifier.compile(code, :mangle => false, :screw_ie8 => true)).to match(/g\.switch/)
161
- expect(Uglifier.compile(code, :compress => false, :screw_ie8 => true)).to match(/g\.switch/)
193
+ describe "screw_ie8 option" do
194
+ let(:code) { "function something() { return g['switch']; }" }
195
+
196
+ it "defaults to not screw IE8" do
197
+ expect(Uglifier.compile(code)).to match(".switch")
198
+ end
199
+
200
+ it "forwards screw_ie8 option to UglifyJS" do
201
+ expect(Uglifier.compile(code, :mangle => false, :screw_ie8 => true)).to match(/g\.switch/)
202
+ expect(Uglifier.compile(code, :compress => false, :screw_ie8 => true)).to match(/g\.switch/)
203
+ end
204
+
205
+ it "supports legacy ie_proof output option as opposite for screw_ie8" do
206
+ minified = Uglifier.compile(code, :output => { :ie_proof => true })
207
+ expect(minified).to include('["switch"]')
208
+ end
162
209
  end
163
210
 
164
211
  it "can be configured to output only ASCII" do
@@ -212,13 +259,33 @@ describe "Uglifier" do
212
259
  expect(compiled).not_to include("console")
213
260
  end
214
261
 
262
+ describe "collapse_vars option" do
263
+ let(:code) do
264
+ <<-JS
265
+ function a() {
266
+ var win = window;
267
+ return win.Handlebars;
268
+ }
269
+ JS
270
+ end
271
+
272
+ it "collapses vars when collapse_vars is enabled" do
273
+ compiled = Uglifier.compile(code, :compress => { :collapse_vars => true })
274
+ expect(compiled).to include("return window.Handlebars")
275
+ end
276
+
277
+ it "defaults to not collapsing variables" do
278
+ expect(Uglifier.compile(code)).not_to include("return window.Handlebars")
279
+ end
280
+ end
281
+
215
282
  it "processes @ngInject annotations" do
216
- code = <<-EOF
283
+ code = <<-JS
217
284
  /**
218
285
  * @ngInject
219
286
  */
220
287
  var f = function(foo, bar) { return foo + bar};
221
- EOF
288
+ JS
222
289
  with_angular = Uglifier.compile(code, :compress => { :angular => true })
223
290
  without_angular = Uglifier.compile(code, :compress => { :angular => false })
224
291
  expect(with_angular).to include("f.$inject")
@@ -226,14 +293,33 @@ describe "Uglifier" do
226
293
  end
227
294
 
228
295
  it "keeps unused function arguments when keep_fargs option is set" do
229
- code = <<-EOF
296
+ code = <<-JS
230
297
  function plus(a, b, c) { return a + b};
231
298
  plus(1, 2);
232
- EOF
233
- expect(Uglifier.compile(code, :mangle => false)).not_to include("c)")
299
+ JS
300
+
301
+ options = lambda do |keep_fargs|
302
+ {
303
+ :mangle => false,
304
+ :compress => {
305
+ :keep_fargs => keep_fargs,
306
+ :unsafe => true
307
+ }
308
+ }
309
+ end
310
+
311
+ expect(Uglifier.compile(code, options.call(false))).not_to include("c)")
312
+ expect(Uglifier.compile(code, options.call(true))).to include("c)")
313
+ end
314
+
315
+ it "keeps function names in output when keep_fnames is set" do
316
+ code = <<-JS
317
+ (function plus(a, b) { return a + b})(1, 2);
318
+ JS
319
+ expect(Uglifier.compile(code, :compress => true)).not_to include("plus")
234
320
 
235
- keep_fargs = Uglifier.compile(code, :mangle => false, :compress => { :keep_fargs => true })
236
- expect(keep_fargs).to include("c)")
321
+ keep_fargs = Uglifier.compile(code, :mangle => false, :compress => { :keep_fnames => true })
322
+ expect(keep_fargs).to include("plus")
237
323
  end
238
324
 
239
325
  describe "Input Formats" do
data/uglifier.gemspec CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.description = "Uglifier minifies JavaScript files by wrapping UglifyJS to be accessible in Ruby"
14
14
  spec.license = "MIT"
15
15
 
16
- spec.required_ruby_version = '>= 1.8.7'
16
+ spec.required_ruby_version = '>= 1.9.3'
17
17
 
18
18
  spec.extra_rdoc_files = [
19
19
  "LICENSE.txt",
@@ -25,11 +25,9 @@ Gem::Specification.new do |spec|
25
25
  spec.test_files = spec.files.grep(%r{^spec/})
26
26
  spec.require_paths = ["lib"]
27
27
 
28
- spec.add_runtime_dependency "execjs", ">= 0.3.0"
29
- spec.add_runtime_dependency "json", ">= 1.8.0"
28
+ spec.add_runtime_dependency "execjs", [">= 0.3.0", "< 3"]
30
29
  spec.add_development_dependency "rspec", "~> 3.0"
31
30
  spec.add_development_dependency "rake", "~> 10.4"
32
31
  spec.add_development_dependency "bundler", "~> 1.3"
33
- spec.add_development_dependency "rdoc", ">= 3.11"
34
- spec.add_development_dependency "source_map", ">= 0"
32
+ spec.add_development_dependency "sourcemap", "~> 0.1.1"
35
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uglifier
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.1
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ville Lautanala
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-27 00:00:00.000000000 Z
11
+ date: 2016-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: execjs
@@ -17,6 +17,9 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.3.0
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '3'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,20 +27,9 @@ dependencies:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: 0.3.0
27
- - !ruby/object:Gem::Dependency
28
- name: json
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
30
+ - - "<"
32
31
  - !ruby/object:Gem::Version
33
- version: 1.8.0
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: 1.8.0
32
+ version: '3'
41
33
  - !ruby/object:Gem::Dependency
42
34
  name: rspec
43
35
  requirement: !ruby/object:Gem::Requirement
@@ -81,33 +73,19 @@ dependencies:
81
73
  - !ruby/object:Gem::Version
82
74
  version: '1.3'
83
75
  - !ruby/object:Gem::Dependency
84
- name: rdoc
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '3.11'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '3.11'
97
- - !ruby/object:Gem::Dependency
98
- name: source_map
76
+ name: sourcemap
99
77
  requirement: !ruby/object:Gem::Requirement
100
78
  requirements:
101
- - - ">="
79
+ - - "~>"
102
80
  - !ruby/object:Gem::Version
103
- version: '0'
81
+ version: 0.1.1
104
82
  type: :development
105
83
  prerelease: false
106
84
  version_requirements: !ruby/object:Gem::Requirement
107
85
  requirements:
108
- - - ">="
86
+ - - "~>"
109
87
  - !ruby/object:Gem::Version
110
- version: '0'
88
+ version: 0.1.1
111
89
  description: Uglifier minifies JavaScript files by wrapping UglifyJS to be accessible
112
90
  in Ruby
113
91
  email:
@@ -126,6 +104,7 @@ files:
126
104
  - ".rspec"
127
105
  - ".rubocop.yml"
128
106
  - ".travis.yml"
107
+ - ".yardopts"
129
108
  - CHANGELOG.md
130
109
  - CONTRIBUTING.md
131
110
  - Gemfile
@@ -136,7 +115,9 @@ files:
136
115
  - gemfiles/rubyracer
137
116
  - gemfiles/rubyrhino
138
117
  - lib/es5.js
118
+ - lib/source-map.js
139
119
  - lib/split.js
120
+ - lib/uglifier.js
140
121
  - lib/uglifier.rb
141
122
  - lib/uglifier/version.rb
142
123
  - lib/uglify.js
@@ -156,7 +137,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
156
137
  requirements:
157
138
  - - ">="
158
139
  - !ruby/object:Gem::Version
159
- version: 1.8.7
140
+ version: 1.9.3
160
141
  required_rubygems_version: !ruby/object:Gem::Requirement
161
142
  requirements:
162
143
  - - ">="
@@ -164,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
145
  version: '0'
165
146
  requirements: []
166
147
  rubyforge_project:
167
- rubygems_version: 2.4.5
148
+ rubygems_version: 2.5.1
168
149
  signing_key:
169
150
  specification_version: 4
170
151
  summary: Ruby wrapper for UglifyJS JavaScript compressor