uglifier 1.3.0 → 4.2.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.
- checksums.yaml +7 -0
- data/.github/workflows/ruby.yml +52 -0
- data/.gitignore +44 -0
- data/.gitmodules +10 -1
- data/.rubocop.yml +63 -0
- data/.yardopts +4 -0
- data/CHANGELOG.md +332 -0
- data/CONTRIBUTING.md +47 -0
- data/Gemfile +3 -23
- data/README.md +151 -51
- data/Rakefile +129 -31
- data/lib/es5.js +134 -0
- data/lib/source-map.js +3055 -0
- data/lib/split.js +117 -0
- data/lib/uglifier/version.rb +4 -0
- data/lib/uglifier.js +49 -0
- data/lib/uglifier.rb +459 -103
- data/lib/uglify-harmony.js +432 -0
- data/lib/uglify.js +274 -4680
- data/uglifier.gemspec +27 -60
- metadata +60 -81
- data/.travis.yml +0 -18
- data/VERSION +0 -1
- data/build.js +0 -23
- data/spec/spec_helper.rb +0 -11
- data/spec/uglifier_spec.rb +0 -148
data/uglifier.gemspec
CHANGED
@@ -1,68 +1,35 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'uglifier/version'
|
5
5
|
|
6
|
-
Gem::Specification.new do |
|
7
|
-
|
8
|
-
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "uglifier"
|
8
|
+
spec.version = Uglifier::VERSION
|
9
|
+
spec.authors = ["Ville Lautanala"]
|
10
|
+
spec.email = ["lautis@gmail.com"]
|
11
|
+
spec.homepage = "https://github.com/lautis/uglifier"
|
12
|
+
spec.summary = "Ruby wrapper for UglifyJS JavaScript compressor"
|
13
|
+
spec.description = "Uglifier minifies JavaScript files by wrapping UglifyJS to be accessible in Ruby"
|
14
|
+
spec.license = "MIT"
|
9
15
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
s.email = "lautis@gmail.com"
|
14
|
-
s.extra_rdoc_files = [
|
15
|
-
"LICENSE.txt",
|
16
|
-
"README.md"
|
17
|
-
]
|
18
|
-
s.files = [
|
19
|
-
".document",
|
20
|
-
".gitmodules",
|
21
|
-
".rspec",
|
22
|
-
".travis.yml",
|
23
|
-
"Gemfile",
|
16
|
+
spec.required_ruby_version = '>= 2.4.0'
|
17
|
+
|
18
|
+
spec.extra_rdoc_files = [
|
24
19
|
"LICENSE.txt",
|
25
20
|
"README.md",
|
26
|
-
"
|
27
|
-
"
|
28
|
-
"build.js",
|
29
|
-
"lib/es5.js",
|
30
|
-
"lib/uglifier.rb",
|
31
|
-
"lib/uglify.js",
|
32
|
-
"spec/spec_helper.rb",
|
33
|
-
"spec/uglifier_spec.rb",
|
34
|
-
"uglifier.gemspec"
|
21
|
+
"CHANGELOG.md",
|
22
|
+
"CONTRIBUTING.md"
|
35
23
|
]
|
36
|
-
s.homepage = "http://github.com/lautis/uglifier"
|
37
|
-
s.require_paths = ["lib"]
|
38
|
-
s.rubygems_version = "1.8.23"
|
39
|
-
s.summary = "Ruby wrapper for UglifyJS JavaScript compressor"
|
40
24
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
45
|
-
s.add_runtime_dependency(%q<execjs>, [">= 0.3.0"])
|
46
|
-
s.add_runtime_dependency(%q<multi_json>, [">= 1.0.2", "~> 1.0"])
|
47
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.7"])
|
48
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.0"])
|
49
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
|
50
|
-
s.add_development_dependency(%q<rdoc>, ["~> 3.11"])
|
51
|
-
else
|
52
|
-
s.add_dependency(%q<execjs>, [">= 0.3.0"])
|
53
|
-
s.add_dependency(%q<multi_json>, [">= 1.0.2", "~> 1.0"])
|
54
|
-
s.add_dependency(%q<rspec>, ["~> 2.7"])
|
55
|
-
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
56
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
57
|
-
s.add_dependency(%q<rdoc>, ["~> 3.11"])
|
58
|
-
end
|
59
|
-
else
|
60
|
-
s.add_dependency(%q<execjs>, [">= 0.3.0"])
|
61
|
-
s.add_dependency(%q<multi_json>, [">= 1.0.2", "~> 1.0"])
|
62
|
-
s.add_dependency(%q<rspec>, ["~> 2.7"])
|
63
|
-
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
64
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
65
|
-
s.add_dependency(%q<rdoc>, ["~> 3.11"])
|
25
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
26
|
+
f.match(%r{^(spec|vendor|gemfiles|patches)/})
|
66
27
|
end
|
67
|
-
|
28
|
+
spec.require_paths = ["lib"]
|
68
29
|
|
30
|
+
spec.add_runtime_dependency "execjs", [">= 0.3.0", "< 3"]
|
31
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
32
|
+
spec.add_development_dependency "rake", "~> 12.0"
|
33
|
+
spec.add_development_dependency "bundler", ">= 1.3"
|
34
|
+
spec.add_development_dependency "sourcemap", "~> 0.1.1"
|
35
|
+
end
|
metadata
CHANGED
@@ -1,167 +1,146 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uglifier
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 4.2.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Ville Lautanala
|
9
|
-
autorequire:
|
8
|
+
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2024-09-22 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: execjs
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 0.3.0
|
22
|
-
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ! '>='
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 0.3.0
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: multi_json
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ! '>='
|
20
|
+
- - "<"
|
36
21
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
38
|
-
- - ~>
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '1.0'
|
22
|
+
version: '3'
|
41
23
|
type: :runtime
|
42
24
|
prerelease: false
|
43
25
|
version_requirements: !ruby/object:Gem::Requirement
|
44
|
-
none: false
|
45
26
|
requirements:
|
46
|
-
- -
|
27
|
+
- - ">="
|
47
28
|
- !ruby/object:Gem::Version
|
48
|
-
version:
|
49
|
-
- -
|
29
|
+
version: 0.3.0
|
30
|
+
- - "<"
|
50
31
|
- !ruby/object:Gem::Version
|
51
|
-
version: '
|
32
|
+
version: '3'
|
52
33
|
- !ruby/object:Gem::Dependency
|
53
34
|
name: rspec
|
54
35
|
requirement: !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
36
|
requirements:
|
57
|
-
- - ~>
|
37
|
+
- - "~>"
|
58
38
|
- !ruby/object:Gem::Version
|
59
|
-
version: '
|
39
|
+
version: '3.0'
|
60
40
|
type: :development
|
61
41
|
prerelease: false
|
62
42
|
version_requirements: !ruby/object:Gem::Requirement
|
63
|
-
none: false
|
64
43
|
requirements:
|
65
|
-
- - ~>
|
44
|
+
- - "~>"
|
66
45
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
46
|
+
version: '3.0'
|
68
47
|
- !ruby/object:Gem::Dependency
|
69
|
-
name:
|
48
|
+
name: rake
|
70
49
|
requirement: !ruby/object:Gem::Requirement
|
71
|
-
none: false
|
72
50
|
requirements:
|
73
|
-
- - ~>
|
51
|
+
- - "~>"
|
74
52
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
53
|
+
version: '12.0'
|
76
54
|
type: :development
|
77
55
|
prerelease: false
|
78
56
|
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
none: false
|
80
57
|
requirements:
|
81
|
-
- - ~>
|
58
|
+
- - "~>"
|
82
59
|
- !ruby/object:Gem::Version
|
83
|
-
version: '
|
60
|
+
version: '12.0'
|
84
61
|
- !ruby/object:Gem::Dependency
|
85
|
-
name:
|
62
|
+
name: bundler
|
86
63
|
requirement: !ruby/object:Gem::Requirement
|
87
|
-
none: false
|
88
64
|
requirements:
|
89
|
-
- -
|
65
|
+
- - ">="
|
90
66
|
- !ruby/object:Gem::Version
|
91
|
-
version: 1.
|
67
|
+
version: '1.3'
|
92
68
|
type: :development
|
93
69
|
prerelease: false
|
94
70
|
version_requirements: !ruby/object:Gem::Requirement
|
95
|
-
none: false
|
96
71
|
requirements:
|
97
|
-
- -
|
72
|
+
- - ">="
|
98
73
|
- !ruby/object:Gem::Version
|
99
|
-
version: 1.
|
74
|
+
version: '1.3'
|
100
75
|
- !ruby/object:Gem::Dependency
|
101
|
-
name:
|
76
|
+
name: sourcemap
|
102
77
|
requirement: !ruby/object:Gem::Requirement
|
103
|
-
none: false
|
104
78
|
requirements:
|
105
|
-
- - ~>
|
79
|
+
- - "~>"
|
106
80
|
- !ruby/object:Gem::Version
|
107
|
-
version:
|
81
|
+
version: 0.1.1
|
108
82
|
type: :development
|
109
83
|
prerelease: false
|
110
84
|
version_requirements: !ruby/object:Gem::Requirement
|
111
|
-
none: false
|
112
85
|
requirements:
|
113
|
-
- - ~>
|
86
|
+
- - "~>"
|
114
87
|
- !ruby/object:Gem::Version
|
115
|
-
version:
|
116
|
-
description:
|
117
|
-
|
88
|
+
version: 0.1.1
|
89
|
+
description: Uglifier minifies JavaScript files by wrapping UglifyJS to be accessible
|
90
|
+
in Ruby
|
91
|
+
email:
|
92
|
+
- lautis@gmail.com
|
118
93
|
executables: []
|
119
94
|
extensions: []
|
120
95
|
extra_rdoc_files:
|
121
96
|
- LICENSE.txt
|
122
97
|
- README.md
|
98
|
+
- CHANGELOG.md
|
99
|
+
- CONTRIBUTING.md
|
123
100
|
files:
|
124
|
-
- .document
|
125
|
-
- .
|
126
|
-
- .
|
127
|
-
- .
|
101
|
+
- ".document"
|
102
|
+
- ".github/workflows/ruby.yml"
|
103
|
+
- ".gitignore"
|
104
|
+
- ".gitmodules"
|
105
|
+
- ".rspec"
|
106
|
+
- ".rubocop.yml"
|
107
|
+
- ".yardopts"
|
108
|
+
- CHANGELOG.md
|
109
|
+
- CONTRIBUTING.md
|
128
110
|
- Gemfile
|
129
111
|
- LICENSE.txt
|
130
112
|
- README.md
|
131
113
|
- Rakefile
|
132
|
-
- VERSION
|
133
|
-
- build.js
|
134
114
|
- lib/es5.js
|
115
|
+
- lib/source-map.js
|
116
|
+
- lib/split.js
|
117
|
+
- lib/uglifier.js
|
135
118
|
- lib/uglifier.rb
|
119
|
+
- lib/uglifier/version.rb
|
120
|
+
- lib/uglify-harmony.js
|
136
121
|
- lib/uglify.js
|
137
|
-
- spec/spec_helper.rb
|
138
|
-
- spec/uglifier_spec.rb
|
139
122
|
- uglifier.gemspec
|
140
|
-
homepage:
|
141
|
-
licenses:
|
142
|
-
|
123
|
+
homepage: https://github.com/lautis/uglifier
|
124
|
+
licenses:
|
125
|
+
- MIT
|
126
|
+
metadata: {}
|
127
|
+
post_install_message:
|
143
128
|
rdoc_options: []
|
144
129
|
require_paths:
|
145
130
|
- lib
|
146
131
|
required_ruby_version: !ruby/object:Gem::Requirement
|
147
|
-
none: false
|
148
132
|
requirements:
|
149
|
-
- -
|
133
|
+
- - ">="
|
150
134
|
- !ruby/object:Gem::Version
|
151
|
-
version:
|
152
|
-
segments:
|
153
|
-
- 0
|
154
|
-
hash: -550840341360460746
|
135
|
+
version: 2.4.0
|
155
136
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
156
|
-
none: false
|
157
137
|
requirements:
|
158
|
-
- -
|
138
|
+
- - ">="
|
159
139
|
- !ruby/object:Gem::Version
|
160
140
|
version: '0'
|
161
141
|
requirements: []
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
specification_version: 3
|
142
|
+
rubygems_version: 3.2.22
|
143
|
+
signing_key:
|
144
|
+
specification_version: 4
|
166
145
|
summary: Ruby wrapper for UglifyJS JavaScript compressor
|
167
146
|
test_files: []
|
data/.travis.yml
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
rvm:
|
2
|
-
- 1.8.7
|
3
|
-
- 1.9.2
|
4
|
-
- 1.9.3
|
5
|
-
- jruby
|
6
|
-
env:
|
7
|
-
- EXECJS_RUNTIME=RubyRacer
|
8
|
-
- EXECJS_RUNTIME=RubyRhino
|
9
|
-
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
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1.3.0
|
data/build.js
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
#!/usr/bin/env node
|
2
|
-
|
3
|
-
var fs = require("fs");
|
4
|
-
var stitch = require("stitch");
|
5
|
-
|
6
|
-
var package = stitch.createPackage({
|
7
|
-
paths: [__dirname + "/vendor/uglifyjs/lib"]
|
8
|
-
});
|
9
|
-
|
10
|
-
package.compile(function(err, source) {
|
11
|
-
if (err) throw err;
|
12
|
-
|
13
|
-
source = "(function(global) {" +
|
14
|
-
source + ";\n" +
|
15
|
-
"global.UglifyJS = {};\n" +
|
16
|
-
"global.UglifyJS.parser = this.require('parse-js');\n" +
|
17
|
-
"global.UglifyJS.uglify = this.require('process');\n" +
|
18
|
-
"}).call({}, this);\n";
|
19
|
-
|
20
|
-
fs.writeFile(__dirname + "/lib/uglify.js", source, function(err) {
|
21
|
-
if (err) throw err;
|
22
|
-
});
|
23
|
-
});
|
data/spec/spec_helper.rb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
require 'uglifier'
|
3
|
-
require 'rspec'
|
4
|
-
|
5
|
-
# Requires supporting files with custom matchers and macros, etc,
|
6
|
-
# in ./support/ and its subdirectories.
|
7
|
-
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
8
|
-
|
9
|
-
RSpec.configure do |config|
|
10
|
-
|
11
|
-
end
|
data/spec/uglifier_spec.rb
DELETED
@@ -1,148 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
require 'stringio'
|
3
|
-
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
4
|
-
|
5
|
-
describe "Uglifier" do
|
6
|
-
it "minifies JS" do
|
7
|
-
source = File.open("lib/uglify.js", "r:UTF-8").read
|
8
|
-
minified = Uglifier.new.compile(source)
|
9
|
-
minified.length.should < source.length
|
10
|
-
lambda {
|
11
|
-
Uglifier.new.compile(minified)
|
12
|
-
}.should_not raise_error
|
13
|
-
end
|
14
|
-
|
15
|
-
it "throws an exception when compilation fails" do
|
16
|
-
lambda {
|
17
|
-
Uglifier.new.compile(")(")
|
18
|
-
}.should raise_error(Uglifier::Error)
|
19
|
-
end
|
20
|
-
|
21
|
-
it "doesn't omit null character in strings" do
|
22
|
-
Uglifier.new.compile('var foo="\0bar"').should match(/(\0|\\0)/)
|
23
|
-
end
|
24
|
-
|
25
|
-
it "doesn't try to mangle $super by default to avoid breaking PrototypeJS" do
|
26
|
-
Uglifier.new.compile('function foo($super) {return $super}').should include("$super")
|
27
|
-
end
|
28
|
-
|
29
|
-
it "adds trailing semicolon to minified source" do
|
30
|
-
source = "function id(i) {return i;};"
|
31
|
-
Uglifier.new.compile(source)[-1].should eql(";"[0])
|
32
|
-
end
|
33
|
-
|
34
|
-
describe "Copyright Preservation" do
|
35
|
-
before :all do
|
36
|
-
@source = <<-EOS
|
37
|
-
/* Copyright Notice */
|
38
|
-
/* (c) 2011 */
|
39
|
-
// INCLUDED
|
40
|
-
function identity(p) { return p; }
|
41
|
-
EOS
|
42
|
-
@minified = Uglifier.compile(@source, :copyright => true)
|
43
|
-
end
|
44
|
-
|
45
|
-
it "preserves copyright notice" do
|
46
|
-
@minified.should match /Copyright Notice/
|
47
|
-
end
|
48
|
-
|
49
|
-
it "handles multiple copyright blocks" do
|
50
|
-
@minified.should match /\(c\) 2011/
|
51
|
-
end
|
52
|
-
|
53
|
-
it "does include different comment types" do
|
54
|
-
@minified.should match /INCLUDED/
|
55
|
-
end
|
56
|
-
|
57
|
-
it "puts comments on own lines" do
|
58
|
-
@minified.split("\n").should have(4).items
|
59
|
-
end
|
60
|
-
|
61
|
-
it "omits copyright notification if copyright parameter is set to false" do
|
62
|
-
Uglifier.compile(@source, :copyright => false).should_not match /Copyright/
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
it "does additional squeezing when unsafe options is true" do
|
67
|
-
unsafe_input = "function a(b){b.toString();}"
|
68
|
-
Uglifier.new(:unsafe => true).compile(unsafe_input).length.should < Uglifier.new(:unsafe => false).compile(unsafe_input).length
|
69
|
-
end
|
70
|
-
|
71
|
-
it "mangles variables only if mangle is set to true" do
|
72
|
-
code = "function longFunctionName(){};"
|
73
|
-
Uglifier.new(:mangle => false).compile(code).length.should == code.length
|
74
|
-
end
|
75
|
-
|
76
|
-
it "squeezes code only if squeeze is set to true" do
|
77
|
-
code = "function a(a){if(a) { return 0; } else { return 1; }}"
|
78
|
-
Uglifier.compile(code, :squeeze => false).length.should > Uglifier.compile(code, :squeeze => true).length
|
79
|
-
end
|
80
|
-
|
81
|
-
it "should allow top level variables to be mangled" do
|
82
|
-
code = "var foo = 123"
|
83
|
-
Uglifier.compile(code, :toplevel => true).should_not include("var foo")
|
84
|
-
end
|
85
|
-
|
86
|
-
it "allows variables to be excluded from mangling" do
|
87
|
-
code = "var foo = {bar: 123};"
|
88
|
-
Uglifier.compile(code, :except => ["foo"], :toplevel => true).should include("var foo")
|
89
|
-
end
|
90
|
-
|
91
|
-
it "allows disabling of function name mangling" do
|
92
|
-
code = "function sample() {var bar = 1; function foo() { return bar; }}"
|
93
|
-
mangled = Uglifier.compile(code, :mangle => :vars)
|
94
|
-
mangled.should include("foo()")
|
95
|
-
mangled.should_not include("bar")
|
96
|
-
end
|
97
|
-
|
98
|
-
it "honors max line length" do
|
99
|
-
code = "var foo = 123;var bar = 123456"
|
100
|
-
Uglifier.compile(code, :max_line_length => 8).split("\n").length.should == 2
|
101
|
-
end
|
102
|
-
|
103
|
-
it "lifts vars to top of the scope" do
|
104
|
-
code = "function something() { var foo = 123; foo = 1234; var bar = 123456; return foo + bar}"
|
105
|
-
Uglifier.compile(code, :lift_vars => true).should match /var \w,\w/
|
106
|
-
end
|
107
|
-
|
108
|
-
it "can be configured to output only ASCII" do
|
109
|
-
code = "function emoji() { return '\\ud83c\\ude01'; }"
|
110
|
-
Uglifier.compile(code, :ascii_only => true).should include("\\ud83c\\ude01")
|
111
|
-
end
|
112
|
-
|
113
|
-
it "escapes </script when asked to" do
|
114
|
-
code = "function test() { return '</script>';}"
|
115
|
-
Uglifier.compile(code, :inline_script => true).should_not include("</script>")
|
116
|
-
end
|
117
|
-
|
118
|
-
it "quotes keys" do
|
119
|
-
code = "var a = {foo: 1}"
|
120
|
-
Uglifier.compile(code, :quote_keys => true).should include('"foo"')
|
121
|
-
end
|
122
|
-
|
123
|
-
it "handles constant definitions" do
|
124
|
-
code = "if (BOOLEAN) { var a = STRING; var b = NULL; var c = NUMBER; }"
|
125
|
-
defines = {"NUMBER" => 1234, "BOOLEAN" => true, "NULL" => nil, "STRING" => "str"}
|
126
|
-
processed = Uglifier.compile(code, :define => defines)
|
127
|
-
processed.should include("a=\"str\"")
|
128
|
-
processed.should_not include("if")
|
129
|
-
processed.should include("b=null")
|
130
|
-
processed.should include("c=1234")
|
131
|
-
end
|
132
|
-
|
133
|
-
describe "Input Formats" do
|
134
|
-
let(:code) { "function hello() { return 'hello world'; }" }
|
135
|
-
|
136
|
-
it "handles strings" do
|
137
|
-
lambda {
|
138
|
-
Uglifier.new.compile(code).should_not be_empty
|
139
|
-
}.should_not raise_error
|
140
|
-
end
|
141
|
-
|
142
|
-
it "handles IO objects" do
|
143
|
-
lambda {
|
144
|
-
Uglifier.new.compile(StringIO.new(code)).should_not be_empty
|
145
|
-
}.should_not raise_error
|
146
|
-
end
|
147
|
-
end
|
148
|
-
end
|