jbarnette-johnson 1.0.0.20090326122910 → 1.0.0.20090326154650

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.
data/README.rdoc CHANGED
@@ -6,35 +6,42 @@ Johnson wraps JavaScript in a loving Ruby embrace.
6
6
  * {Bug Tracker}[http://johnson.lighthouseapp.com]
7
7
  * {RubyForge Project}[http://johnson.rubyforge.org]
8
8
 
9
- == Usage
9
+ == Examples
10
10
 
11
- # FIXME: write some decent examples
12
- require "johnson"
13
-
14
- Johnson.evaluate("4 + 4") # => 8
15
- Johnson.evaluate("4 + foo", :foo => 4) # => 8
16
-
17
- == Installing
11
+ # FIXME: write some decent examples
12
+ require "johnson"
18
13
 
19
- We haven't rolled an official 1.0 for Johnson, though we plan to Real Soon Now.
20
- For the moment, follow the instructions in "Installing Development Versions".
21
- Once we push a 1.0 to RubyForge, it'll be as easy as:
14
+ Johnson.evaluate("4 + 4") # => 8
15
+ Johnson.evaluate("4 + foo", :foo => 4) # => 8
16
+
17
+ == Installation
18
+
19
+ We haven't rolled an official 1.x for Johnson, though we plan to Real
20
+ Soon Now. For the moment, follow the instructions in "Installing
21
+ Development Versions". Once we push a 1.0 to RubyForge, it'll be as
22
+ easy as:
22
23
 
23
24
  [sudo] gem install johnson
24
25
 
25
- == Installing Development Versions
26
+ === Restrictions
27
+
28
+ Johnson is currently developed and tested on Mac OS X with Ruby
29
+ 1.8.6. We'd like to widen our support: contributions are very welcome!
30
+
31
+ === Development Versions
26
32
 
27
- We periodically update Johnson's gemspec on Github. Rather than installing the
28
- official releases (hosted on RubyForge), you can track the development version.
29
- Development versions will have a timestamped version number, like 1.0.0.200806232349.
33
+ We periodically update Johnson's gemspec on Github. Rather than
34
+ installing the official releases (hosted on RubyForge), you can track
35
+ the development version. Development versions will have a timestamped
36
+ version number, like 1.0.0.200806232349.
30
37
 
31
- # requires RubyGems 1.2!
32
- [sudo] gem sources -a http://gems.github.com
33
- [sudo] gem install jbarnette-johnson
38
+ $ [sudo] gem sources -a http://gems.github.com # once
39
+ $ [sudo] gem install jbarnette-johnson
34
40
 
35
41
  == License
36
42
 
37
- Copyright 2008 John Barnette, Aaron Patterson, Yehuda Katz, Matthew Draper
43
+ Copyright 2008-2009 John Barnette, Aaron Patterson, Yehuda Katz,
44
+ Matthew Draper
38
45
 
39
46
  Permission is hereby granted, free of charge, to any person obtaining
40
47
  a copy of this software and associated documentation files (the
data/Rakefile CHANGED
@@ -1,237 +1,38 @@
1
1
  require "rubygems"
2
2
  require "hoe"
3
- require "erb"
3
+ require "rake/extensiontask"
4
4
 
5
5
  require "./lib/johnson/version.rb"
6
- abort "Need Ruby version 1.8.x!" unless RUBY_VERSION > "1.8"
7
6
 
8
- # what sort of extension are we building?
9
- kind = Config::CONFIG["DLEXT"]
10
-
11
- CROSS = ENV["CROSS"]
12
- MAKE = ENV["MAKE"] || RUBY_PLATFORM =~ /freebsd/ ? 'gmake' : 'make'
13
- LIBJS = FileList["vendor/spidermonkey/#{CROSS || ''}*.OBJ/libjs.{#{kind},so}"].first || :libjs
14
-
15
- GENERATED_NODE = "ext/spidermonkey/immutable_node.c"
16
-
17
- HOE = Hoe.new("johnson", Johnson::VERSION) do |p|
7
+ HOE = Hoe.new "johnson", Johnson::VERSION do |p|
18
8
  p.developer "John Barnette", "jbarnette@rubyforge.org"
19
9
  p.developer "Aaron Patterson", "aaron.patterson@gmail.com"
20
10
  p.developer "Yehuda Katz", "wycats@gmail.com"
21
11
  p.developer "Matthew Draper", "matthew@trebex.net"
22
12
 
23
- p.summary = "Johnson wraps JavaScript in a loving Ruby embrace."
24
13
  p.history_file = "CHANGELOG.rdoc"
25
14
  p.readme_file = "README.rdoc"
26
- p.extra_rdoc_files = [p.readme_file]
27
- p.need_tar = false
15
+ p.summary = "Johnson wraps JavaScript in a loving Ruby embrace."
28
16
  p.url = "http://github.com/jbarnette/johnson/wikis"
29
17
 
30
- p.clean_globs = [
31
- "lib/johnson/spidermonkey.#{kind}",
32
- "ext/spidermonkey/Makefile",
33
- "ext/spidermonkey/*.{o,so,bundle,log}",
34
- GENERATED_NODE,
35
- "vendor/spidermonkey/**/*.OBJ"]
36
-
37
- p.test_globs = %w(test/**/*_test.rb)
38
- p.spec_extras = { :extensions => ["Rakefile"] }
39
- p.extra_deps = ["rake"]
40
- end
41
-
42
- namespace :gem do
43
- task :spec do
44
- File.open("#{HOE.name}.gemspec", "w") do |f|
45
- HOE.spec.version = "#{HOE.version}.#{Time.now.strftime("%Y%m%d%H%M%S")}"
46
- f.puts(HOE.spec.to_ruby)
47
- end
48
- end
49
- end
50
-
51
- namespace :test do
52
- task :jspec => :extensions do
53
- $LOAD_PATH << File.expand_path(File.dirname(__FILE__) + "/lib")
54
- Johnson.send(:remove_const, :VERSION)
55
- require "johnson"
56
-
57
- Dir["test/jspec/**/*_spec.js"].each do |file|
58
- Johnson::Runtime.new.load(file)
59
- end
60
- end
61
-
62
- task :jquery => :extensions do
63
- $LOAD_PATH << File.expand_path(File.dirname(__FILE__) + "/lib")
64
- $LOAD_PATH << File.expand_path(File.dirname(__FILE__) + "/../taka/lib")
65
- Johnson.send(:remove_const, :VERSION)
66
- require 'johnson'
67
- Johnson::Runtime.new.load('test/jquery_units/test.js')
68
- end
69
- end
70
-
71
- # make sure the C bits are up-to-date when testing
72
- Rake::Task[:test].prerequisites << :extensions
73
-
74
- Rake::Task[:check_manifest].prerequisites << GENERATED_NODE
75
-
76
- task :install_expat do
77
- Dir.chdir("./srcs") do
78
- `tar -xf xmlparser-0.6.8.tar`
79
- Dir.chdir("xmlparser") do
80
- puts `#{Gem.ruby} extconf.rb`
81
- puts `#{MAKE}`
82
- puts `sudo #{MAKE} install`
83
- end
84
- end
85
- end
86
-
87
- task :build => :extensions
88
- task :extension => :build # FIXME: why is this here?
89
-
90
- task :extensions => ["lib/johnson/spidermonkey.#{kind}"]
91
-
92
- namespace :extensions do
93
- task :clean do
94
- Dir.chdir("ext/spidermonkey") do
95
- sh "rm -f Makefile"
96
- sh "rm -f *.{o,so,bundle,log}"
97
- end
98
- end
99
- end
100
-
101
- build_sm = lambda do
102
- cmd = "#{MAKE} -f Makefile.ref"
103
- cmd << " OS_CONFIG=#{CROSS}" if CROSS
104
- Dir.chdir("vendor/spidermonkey") { sh cmd }
105
- end
106
-
107
- if Symbol === LIBJS
108
- task LIBJS, &build_sm
109
- else
110
- file LIBJS, &build_sm
111
-
112
- task LIBJS => "vendor/spidermonkey/Makefile.ref"
113
- task LIBJS => Dir["vendor/spidermonkey/*.[ch]"]
114
- task LIBJS => Dir["vendor/spidermonkey/config/*.mk"]
115
- end
116
-
117
- task LIBJS => "vendor/spidermonkey/jsapi.h"
118
- task LIBJS => "vendor/spidermonkey/config/#{CROSS}.mk" if CROSS
119
-
120
- file "vendor/spidermonkey/config/MINGW32.mk" => "MINGW32.mk" do |t|
121
- cp t.prerequisites.first, t.name
122
- end
123
-
124
- file "ext/spidermonkey/spidermonkey.#{kind}" =>
125
- ["ext/spidermonkey/Makefile"] + FileList["ext/spidermonkey/*.{c,h}"].to_a do |t|
126
-
127
- old_time = File.mtime(t.name) rescue nil
128
- Dir.chdir("ext/spidermonkey") { sh "#{MAKE}" }
129
-
130
- # If make chose not to rebuild the file, we'll touch it, so we don't
131
- # bother to call make again next time.
132
- sh "touch #{t.name}" if old_time && File.mtime(t.name) <= old_time
133
- end
134
-
135
- # for testing, we toss the SpiderMonkey extension in lib/johnson
136
- file "lib/johnson/spidermonkey.#{kind}" =>
137
- "ext/spidermonkey/spidermonkey.#{kind}" do |t|
138
-
139
- cp t.prerequisites.first, t.name
140
- end
141
-
142
- file "ext/spidermonkey/Makefile" =>
143
- [LIBJS, GENERATED_NODE, "ext/spidermonkey/extconf.rb"] do
144
-
145
- dirs = (CROSS ? [ENV["CROSSLIB"]] : []) + $:
146
- if defined?(RbConfig)
147
- ruby_exec = File.join(RbConfig::CONFIG["bindir"], RbConfig::CONFIG["ruby_install_name"])
148
- end
149
- ruby_exec ||= "ruby"
150
- command = [ruby_exec] + dirs.map{|dir| "-I#{File.expand_path dir}"} + ["extconf.rb"]
151
- Dir.chdir("ext/spidermonkey") { sh *command }
152
- end
153
-
154
- def jsops
155
- ops = []
156
- File.open("vendor/spidermonkey/jsopcode.tbl", "rb") { |f|
157
- f.each_line do |line|
158
- if line =~ /^OPDEF\((\w+),/
159
- ops << $1
160
- end
161
- end
162
- }
163
- ops
164
- end
18
+ p.extra_rdoc_files = [p.readme_file]
19
+ p.need_tar = false
20
+ p.test_globs = %w(test/**/*_test.rb)
165
21
 
166
- def tokens
167
- toks = []
168
- File.open("vendor/spidermonkey/jsscan.h", "rb") { |f|
169
- f.each_line do |line|
170
- line.scan(/TOK_\w+/).each do |token|
171
- next if token == "TOK_ERROR"
172
- toks << token
173
- end
174
- end
175
- }
176
- toks.uniq
177
- end
22
+ p.clean_globs << "lib/johnson/spidermonkey.bundle"
23
+ p.clean_globs << "tmp"
24
+ p.clean_globs << "vendor/spidermonkey/**/*.OBJ"
178
25
 
179
- file GENERATED_NODE => ["ext/spidermonkey/immutable_node.c.erb", "vendor/spidermonkey/jsopcode.tbl", "vendor/spidermonkey/jsscan.h"] do |t|
180
- template = ERB.new(File.open(t.prerequisites.first, "rb") { |x| x.read })
181
- File.open(GENERATED_NODE, "wb") { |f|
182
- f.write template.result(binding)
183
- }
26
+ p.extra_deps << "rake"
27
+ p.extra_dev_deps << "rake-compiler"
184
28
  end
185
29
 
186
- def test_suite_cmdline
187
- require 'find'
188
- files = []
189
- Find.find("test") do |f|
190
- files << f if File.basename(f) =~ /.*test.*\.rb$/
191
- end
192
- cmdline = "ruby -w -I.:lib:ext:test -rtest/unit -e '%w[#{files.join(' ')}].each {|f| require f}'"
30
+ Rake::ExtensionTask.new "spidermonkey", HOE.spec do |ext|
31
+ ext.lib_dir = "lib/johnson"
193
32
  end
194
33
 
195
- namespace :test do
196
- # partial-loads-ok and undef-value-errors necessary to ignore
197
- # spurious (and eminently ignorable) warnings from the ruby
198
- # interpreter
199
- VALGRIND_BASIC_OPTS = "--num-callers=50 --error-limit=no --partial-loads-ok=yes --undef-value-errors=no"
200
-
201
- desc "run test suite under valgrind with basic ruby options"
202
- task :valgrind => :build do
203
- cmdline = "valgrind #{VALGRIND_BASIC_OPTS} #{test_suite_cmdline}"
204
- puts cmdline
205
- system cmdline
206
- end
207
-
208
- desc "run test suite under valgrind with memory-fill ruby options"
209
- task :valgrind_mem => :build do
210
- # fill malloced memory with "m" and freed memory with "f"
211
- cmdline = "valgrind #{VALGRIND_BASIC_OPTS} --freelist-vol=100000000 --malloc-fill=6D --free-fill=66 #{test_suite_cmdline}"
212
- puts cmdline
213
- system cmdline
214
- end
34
+ HOE.spec.extensions = Dir["ext/**/extconf.rb"]
215
35
 
216
- desc "run test suite under valgrind with memory-zero ruby options"
217
- task :valgrind_mem0 => :build do
218
- # fill malloced and freed memory with 0
219
- cmdline = "valgrind #{VALGRIND_BASIC_OPTS} --freelist-vol=100000000 --malloc-fill=00 --free-fill=00 #{test_suite_cmdline}"
220
- puts cmdline
221
- system cmdline
222
- end
36
+ task :test => :compile
223
37
 
224
- desc "run test suite under gdb"
225
- task :gdb => :build do
226
- cmdline = "gdb --args #{test_suite_cmdline}"
227
- puts cmdline
228
- system cmdline
229
- end
230
- end
231
-
232
- # Evil evil hack. Do not run tests when gem installs
233
- if ENV['RUBYARCHDIR']
234
- prereqs = Rake::Task[:default].prerequisites
235
- prereqs.clear
236
- prereqs << :build
237
- end
38
+ Dir["lib/tasks/*.rake"].each { |f| load f }
File without changes
@@ -1,25 +1,30 @@
1
- # this needs to happen before mkmf is required.
1
+ # this needs to happen before mkmf is required
2
2
  ENV["ARCHFLAGS"] = "-arch #{`uname -p` =~ /powerpc/ ? 'ppc' : 'i386'}"
3
3
 
4
+ require "find"
4
5
  require "mkmf"
5
6
 
6
- if Config::CONFIG['target_os'] == 'mingw32'
7
- $libs = append_library($libs, "winmm")
8
- $CFLAGS << " -DXP_WIN -DXP_WIN32"
9
- else
10
- $CFLAGS << " -g -DXP_UNIX"
11
- end
12
- $CFLAGS << " -O3 -Wall -Wextra -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline"
7
+ cflags = %w(g)
8
+ defines = %w(XP_UNIX)
13
9
 
14
- spidermonkey_base_dir = "../../vendor/spidermonkey"
10
+ warnings = %w(all extra cast-qual write-strings conversion missing-noreturn)
11
+ warnings << "inline"
15
12
 
16
- spidermonkey_obj_dir = Dir[spidermonkey_base_dir + "/#{ENV['CROSS'] || ''}*.OBJ"].first
13
+ cflags.concat warnings.collect { |w| "W#{w}" }
14
+ cflags.concat defines.collect { |d| "D#{d}" }
17
15
 
18
- dir_config("johnson/spidermonkey")
16
+ $CFLAGS << cflags.collect { |f| " -#{f}" }.join(" ")
19
17
 
20
- find_header("jsautocfg.h", spidermonkey_obj_dir)
21
- find_header("jsapi.h", spidermonkey_base_dir)
18
+ spidermonkey_dir = File.expand_path File.dirname(__FILE__) +
19
+ "/../../vendor/spidermonkey"
22
20
 
23
- $LOCAL_LIBS << spidermonkey_obj_dir + "/libjs.a"
21
+ libjs = Dir[spidermonkey_dir + "/**/libjs.a"].first
22
+ abort "libjs.a isn't built!" unless libjs
23
+ $LOCAL_LIBS<< libjs
24
24
 
25
- create_makefile("johnson/spidermonkey")
25
+ dir_config "spidermonkey"
26
+
27
+ find_header "jsautocfg.h", File.dirname(libjs)
28
+ find_header "jsapi.h", spidermonkey_dir
29
+
30
+ create_makefile "spidermonkey"
data/johnson.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{johnson}
5
- s.version = "1.0.0.20090326122910"
5
+ s.version = "1.0.0.20090326154650"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["John Barnette", "Aaron Patterson", "Yehuda Katz", "Matthew Draper"]
@@ -11,16 +11,15 @@ Gem::Specification.new do |s|
11
11
  s.description = %q{}
12
12
  s.email = ["jbarnette@rubyforge.org", "aaron.patterson@gmail.com", "wycats@gmail.com", "matthew@trebex.net"]
13
13
  s.executables = ["johnson"]
14
- s.extensions = ["Rakefile"]
15
- s.extra_rdoc_files = ["MANIFEST.txt", "cross-compile.txt", "README.rdoc"]
16
- s.files = [".autotest", "CHANGELOG.rdoc", "MANIFEST.txt", "MINGW32.mk", "README.rdoc", "Rakefile", "bin/johnson", "cross-compile.txt", "ext/spidermonkey/context.c", "ext/spidermonkey/context.h", "ext/spidermonkey/conversions.c", "ext/spidermonkey/conversions.h", "ext/spidermonkey/debugger.c", "ext/spidermonkey/debugger.h", "ext/spidermonkey/extconf.rb", "ext/spidermonkey/extensions.c", "ext/spidermonkey/extensions.h", "ext/spidermonkey/global.c", "ext/spidermonkey/global.h", "ext/spidermonkey/idhash.c", "ext/spidermonkey/idhash.h", "ext/spidermonkey/immutable_node.c", "ext/spidermonkey/immutable_node.c.erb", "ext/spidermonkey/immutable_node.h", "ext/spidermonkey/jroot.h", "ext/spidermonkey/js_land_proxy.c", "ext/spidermonkey/js_land_proxy.h", "ext/spidermonkey/ruby_land_proxy.c", "ext/spidermonkey/ruby_land_proxy.h", "ext/spidermonkey/runtime.c", "ext/spidermonkey/runtime.h", "ext/spidermonkey/spidermonkey.c", "ext/spidermonkey/spidermonkey.h", "johnson.gemspec", "js/johnson/browser.js", "js/johnson/browser/env.js", "js/johnson/browser/jquery.js", "js/johnson/browser/xmlsax.js", "js/johnson/browser/xmlw3cdom.js", "js/johnson/cli.js", "js/johnson/prelude.js", "js/johnson/template.js", "lib/johnson.rb", "lib/johnson/cli.rb", "lib/johnson/cli/options.rb", "lib/johnson/error.rb", "lib/johnson/nodes.rb", "lib/johnson/nodes/binary_node.rb", "lib/johnson/nodes/for.rb", "lib/johnson/nodes/for_in.rb", "lib/johnson/nodes/function.rb", "lib/johnson/nodes/list.rb", "lib/johnson/nodes/node.rb", "lib/johnson/nodes/ternary_node.rb", "lib/johnson/parser.rb", "lib/johnson/parser/syntax_error.rb", "lib/johnson/runtime.rb", "lib/johnson/spidermonkey/context.rb", "lib/johnson/spidermonkey/debugger.rb", "lib/johnson/spidermonkey/immutable_node.rb", "lib/johnson/spidermonkey/js_land_proxy.rb", "lib/johnson/spidermonkey/mutable_tree_visitor.rb", "lib/johnson/spidermonkey/ruby_land_proxy.rb", "lib/johnson/spidermonkey/runtime.rb", "lib/johnson/version.rb", "lib/johnson/visitable.rb", "lib/johnson/visitors.rb", "lib/johnson/visitors/dot_visitor.rb", "lib/johnson/visitors/ecma_visitor.rb", "lib/johnson/visitors/enumerating_visitor.rb", "lib/johnson/visitors/sexp_visitor.rb", "lib/johnson/visitors/visitor.rb", "lib/rails/init.rb", "srcs/xmlparser-0.6.8.tar", "test/assets/index.html", "test/assets/jquery_test.html", "test/helper.rb", "test/johnson/browser_test.rb", "test/johnson/conversions/array_test.rb", "test/johnson/conversions/boolean_test.rb", "test/johnson/conversions/callable_test.rb", "test/johnson/conversions/file_test.rb", "test/johnson/conversions/nil_test.rb", "test/johnson/conversions/number_test.rb", "test/johnson/conversions/regexp_test.rb", "test/johnson/conversions/string_test.rb", "test/johnson/conversions/struct_test.rb", "test/johnson/conversions/symbol_test.rb", "test/johnson/conversions/thread_test.rb", "test/johnson/error_test.rb", "test/johnson/extensions_test.rb", "test/johnson/nodes/array_literal_test.rb", "test/johnson/nodes/array_node_test.rb", "test/johnson/nodes/binary_node_test.rb", "test/johnson/nodes/bracket_access_test.rb", "test/johnson/nodes/delete_test.rb", "test/johnson/nodes/do_while_test.rb", "test/johnson/nodes/dot_accessor_test.rb", "test/johnson/nodes/export_test.rb", "test/johnson/nodes/for_test.rb", "test/johnson/nodes/function_test.rb", "test/johnson/nodes/if_test.rb", "test/johnson/nodes/import_test.rb", "test/johnson/nodes/label_test.rb", "test/johnson/nodes/let_test.rb", "test/johnson/nodes/object_literal_test.rb", "test/johnson/nodes/return_test.rb", "test/johnson/nodes/semi_test.rb", "test/johnson/nodes/switch_test.rb", "test/johnson/nodes/ternary_test.rb", "test/johnson/nodes/throw_test.rb", "test/johnson/nodes/try_node_test.rb", "test/johnson/nodes/typeof_test.rb", "test/johnson/nodes/unary_node_test.rb", "test/johnson/nodes/void_test.rb", "test/johnson/nodes/while_test.rb", "test/johnson/nodes/with_test.rb", "test/johnson/prelude_test.rb", "test/johnson/runtime_test.rb", "test/johnson/spidermonkey/context_test.rb", "test/johnson/spidermonkey/immutable_node_test.rb", "test/johnson/spidermonkey/js_land_proxy_test.rb", "test/johnson/spidermonkey/ruby_land_proxy_test.rb", "test/johnson/spidermonkey/runtime_test.rb", "test/johnson/version_test.rb", "test/johnson/visitors/dot_visitor_test.rb", "test/johnson/visitors/enumerating_visitor_test.rb", "test/johnson_test.rb", "test/jquery_units/simple.js", "test/jquery_units/test.js", "test/jquery_units/test_helper.js", "test/jquery_units/units/ajax.js", "test/jquery_units/units/core.js", "test/jquery_units/units/event.js", "test/jquery_units/units/fx.js", "test/jquery_units/units/offset.js", "test/jquery_units/units/selector.js", "test/jspec/helper.js", "test/jspec/jspec.js", "test/jspec/simple_spec.js", "test/parser_test.rb", "vendor/spidermonkey/.cvsignore", "vendor/spidermonkey/Makefile.in", "vendor/spidermonkey/Makefile.ref", "vendor/spidermonkey/README.html", "vendor/spidermonkey/SpiderMonkey.rsp", "vendor/spidermonkey/Y.js", "vendor/spidermonkey/build.mk", "vendor/spidermonkey/config.mk", "vendor/spidermonkey/config/AIX4.1.mk", "vendor/spidermonkey/config/AIX4.2.mk", "vendor/spidermonkey/config/AIX4.3.mk", "vendor/spidermonkey/config/Darwin.mk", "vendor/spidermonkey/config/Darwin1.3.mk", "vendor/spidermonkey/config/Darwin1.4.mk", "vendor/spidermonkey/config/Darwin5.2.mk", "vendor/spidermonkey/config/Darwin5.3.mk", "vendor/spidermonkey/config/FreeBSD.mk", "vendor/spidermonkey/config/HP-UXB.10.10.mk", "vendor/spidermonkey/config/HP-UXB.10.20.mk", "vendor/spidermonkey/config/HP-UXB.11.00.mk", "vendor/spidermonkey/config/IRIX.mk", "vendor/spidermonkey/config/IRIX5.3.mk", "vendor/spidermonkey/config/IRIX6.1.mk", "vendor/spidermonkey/config/IRIX6.2.mk", "vendor/spidermonkey/config/IRIX6.3.mk", "vendor/spidermonkey/config/IRIX6.5.mk", "vendor/spidermonkey/config/Linux_All.mk", "vendor/spidermonkey/config/Mac_OS10.0.mk", "vendor/spidermonkey/config/OSF1V4.0.mk", "vendor/spidermonkey/config/OSF1V5.0.mk", "vendor/spidermonkey/config/SunOS4.1.4.mk", "vendor/spidermonkey/config/SunOS5.10.mk", "vendor/spidermonkey/config/SunOS5.3.mk", "vendor/spidermonkey/config/SunOS5.4.mk", "vendor/spidermonkey/config/SunOS5.5.1.mk", "vendor/spidermonkey/config/SunOS5.5.mk", "vendor/spidermonkey/config/SunOS5.6.mk", "vendor/spidermonkey/config/SunOS5.7.mk", "vendor/spidermonkey/config/SunOS5.8.mk", "vendor/spidermonkey/config/SunOS5.9.mk", "vendor/spidermonkey/config/WINNT4.0.mk", "vendor/spidermonkey/config/WINNT5.0.mk", "vendor/spidermonkey/config/WINNT5.1.mk", "vendor/spidermonkey/config/WINNT5.2.mk", "vendor/spidermonkey/config/WINNT6.0.mk", "vendor/spidermonkey/config/dgux.mk", "vendor/spidermonkey/editline/Makefile.ref", "vendor/spidermonkey/editline/README", "vendor/spidermonkey/editline/editline.3", "vendor/spidermonkey/editline/editline.c", "vendor/spidermonkey/editline/editline.h", "vendor/spidermonkey/editline/sysunix.c", "vendor/spidermonkey/editline/unix.h", "vendor/spidermonkey/fdlibm/.cvsignore", "vendor/spidermonkey/fdlibm/Makefile.in", "vendor/spidermonkey/fdlibm/Makefile.ref", "vendor/spidermonkey/fdlibm/e_acos.c", "vendor/spidermonkey/fdlibm/e_acosh.c", "vendor/spidermonkey/fdlibm/e_asin.c", "vendor/spidermonkey/fdlibm/e_atan2.c", "vendor/spidermonkey/fdlibm/e_atanh.c", "vendor/spidermonkey/fdlibm/e_cosh.c", "vendor/spidermonkey/fdlibm/e_exp.c", "vendor/spidermonkey/fdlibm/e_fmod.c", "vendor/spidermonkey/fdlibm/e_gamma.c", "vendor/spidermonkey/fdlibm/e_gamma_r.c", "vendor/spidermonkey/fdlibm/e_hypot.c", "vendor/spidermonkey/fdlibm/e_j0.c", "vendor/spidermonkey/fdlibm/e_j1.c", "vendor/spidermonkey/fdlibm/e_jn.c", "vendor/spidermonkey/fdlibm/e_lgamma.c", "vendor/spidermonkey/fdlibm/e_lgamma_r.c", "vendor/spidermonkey/fdlibm/e_log.c", "vendor/spidermonkey/fdlibm/e_log10.c", "vendor/spidermonkey/fdlibm/e_pow.c", "vendor/spidermonkey/fdlibm/e_rem_pio2.c", "vendor/spidermonkey/fdlibm/e_remainder.c", "vendor/spidermonkey/fdlibm/e_scalb.c", "vendor/spidermonkey/fdlibm/e_sinh.c", "vendor/spidermonkey/fdlibm/e_sqrt.c", "vendor/spidermonkey/fdlibm/fdlibm.h", "vendor/spidermonkey/fdlibm/fdlibm.mak", "vendor/spidermonkey/fdlibm/fdlibm.mdp", "vendor/spidermonkey/fdlibm/k_cos.c", "vendor/spidermonkey/fdlibm/k_rem_pio2.c", "vendor/spidermonkey/fdlibm/k_sin.c", "vendor/spidermonkey/fdlibm/k_standard.c", "vendor/spidermonkey/fdlibm/k_tan.c", "vendor/spidermonkey/fdlibm/s_asinh.c", "vendor/spidermonkey/fdlibm/s_atan.c", "vendor/spidermonkey/fdlibm/s_cbrt.c", "vendor/spidermonkey/fdlibm/s_ceil.c", "vendor/spidermonkey/fdlibm/s_copysign.c", "vendor/spidermonkey/fdlibm/s_cos.c", "vendor/spidermonkey/fdlibm/s_erf.c", "vendor/spidermonkey/fdlibm/s_expm1.c", "vendor/spidermonkey/fdlibm/s_fabs.c", "vendor/spidermonkey/fdlibm/s_finite.c", "vendor/spidermonkey/fdlibm/s_floor.c", "vendor/spidermonkey/fdlibm/s_frexp.c", "vendor/spidermonkey/fdlibm/s_ilogb.c", "vendor/spidermonkey/fdlibm/s_isnan.c", "vendor/spidermonkey/fdlibm/s_ldexp.c", "vendor/spidermonkey/fdlibm/s_lib_version.c", "vendor/spidermonkey/fdlibm/s_log1p.c", "vendor/spidermonkey/fdlibm/s_logb.c", "vendor/spidermonkey/fdlibm/s_matherr.c", "vendor/spidermonkey/fdlibm/s_modf.c", "vendor/spidermonkey/fdlibm/s_nextafter.c", "vendor/spidermonkey/fdlibm/s_rint.c", "vendor/spidermonkey/fdlibm/s_scalbn.c", "vendor/spidermonkey/fdlibm/s_signgam.c", "vendor/spidermonkey/fdlibm/s_significand.c", "vendor/spidermonkey/fdlibm/s_sin.c", "vendor/spidermonkey/fdlibm/s_tan.c", "vendor/spidermonkey/fdlibm/s_tanh.c", "vendor/spidermonkey/fdlibm/w_acos.c", "vendor/spidermonkey/fdlibm/w_acosh.c", "vendor/spidermonkey/fdlibm/w_asin.c", "vendor/spidermonkey/fdlibm/w_atan2.c", "vendor/spidermonkey/fdlibm/w_atanh.c", "vendor/spidermonkey/fdlibm/w_cosh.c", "vendor/spidermonkey/fdlibm/w_exp.c", "vendor/spidermonkey/fdlibm/w_fmod.c", "vendor/spidermonkey/fdlibm/w_gamma.c", "vendor/spidermonkey/fdlibm/w_gamma_r.c", "vendor/spidermonkey/fdlibm/w_hypot.c", "vendor/spidermonkey/fdlibm/w_j0.c", "vendor/spidermonkey/fdlibm/w_j1.c", "vendor/spidermonkey/fdlibm/w_jn.c", "vendor/spidermonkey/fdlibm/w_lgamma.c", "vendor/spidermonkey/fdlibm/w_lgamma_r.c", "vendor/spidermonkey/fdlibm/w_log.c", "vendor/spidermonkey/fdlibm/w_log10.c", "vendor/spidermonkey/fdlibm/w_pow.c", "vendor/spidermonkey/fdlibm/w_remainder.c", "vendor/spidermonkey/fdlibm/w_scalb.c", "vendor/spidermonkey/fdlibm/w_sinh.c", "vendor/spidermonkey/fdlibm/w_sqrt.c", "vendor/spidermonkey/javascript-trace.d", "vendor/spidermonkey/js.c", "vendor/spidermonkey/js.mak", "vendor/spidermonkey/js.mdp", "vendor/spidermonkey/js.msg", "vendor/spidermonkey/js3240.rc", "vendor/spidermonkey/jsOS240.def", "vendor/spidermonkey/jsapi.c", "vendor/spidermonkey/jsapi.h", "vendor/spidermonkey/jsarena.c", "vendor/spidermonkey/jsarena.h", "vendor/spidermonkey/jsarray.c", "vendor/spidermonkey/jsarray.h", "vendor/spidermonkey/jsatom.c", "vendor/spidermonkey/jsatom.h", "vendor/spidermonkey/jsbit.h", "vendor/spidermonkey/jsbool.c", "vendor/spidermonkey/jsbool.h", "vendor/spidermonkey/jsclist.h", "vendor/spidermonkey/jscntxt.c", "vendor/spidermonkey/jscntxt.h", "vendor/spidermonkey/jscompat.h", "vendor/spidermonkey/jsconfig.h", "vendor/spidermonkey/jsconfig.mk", "vendor/spidermonkey/jscpucfg.c", "vendor/spidermonkey/jscpucfg.h", "vendor/spidermonkey/jsdate.c", "vendor/spidermonkey/jsdate.h", "vendor/spidermonkey/jsdbgapi.c", "vendor/spidermonkey/jsdbgapi.h", "vendor/spidermonkey/jsdhash.c", "vendor/spidermonkey/jsdhash.h", "vendor/spidermonkey/jsdtoa.c", "vendor/spidermonkey/jsdtoa.h", "vendor/spidermonkey/jsdtracef.c", "vendor/spidermonkey/jsdtracef.h", "vendor/spidermonkey/jsemit.c", "vendor/spidermonkey/jsemit.h", "vendor/spidermonkey/jsexn.c", "vendor/spidermonkey/jsexn.h", "vendor/spidermonkey/jsfile.c", "vendor/spidermonkey/jsfile.h", "vendor/spidermonkey/jsfile.msg", "vendor/spidermonkey/jsfun.c", "vendor/spidermonkey/jsfun.h", "vendor/spidermonkey/jsgc.c", "vendor/spidermonkey/jsgc.h", "vendor/spidermonkey/jshash.c", "vendor/spidermonkey/jshash.h", "vendor/spidermonkey/jsify.pl", "vendor/spidermonkey/jsinterp.c", "vendor/spidermonkey/jsinterp.h", "vendor/spidermonkey/jsinvoke.c", "vendor/spidermonkey/jsiter.c", "vendor/spidermonkey/jsiter.h", "vendor/spidermonkey/jskeyword.tbl", "vendor/spidermonkey/jskwgen.c", "vendor/spidermonkey/jslibmath.h", "vendor/spidermonkey/jslock.c", "vendor/spidermonkey/jslock.h", "vendor/spidermonkey/jslocko.asm", "vendor/spidermonkey/jslog2.c", "vendor/spidermonkey/jslong.c", "vendor/spidermonkey/jslong.h", "vendor/spidermonkey/jsmath.c", "vendor/spidermonkey/jsmath.h", "vendor/spidermonkey/jsnum.c", "vendor/spidermonkey/jsnum.h", "vendor/spidermonkey/jsobj.c", "vendor/spidermonkey/jsobj.h", "vendor/spidermonkey/jsopcode.c", "vendor/spidermonkey/jsopcode.h", "vendor/spidermonkey/jsopcode.tbl", "vendor/spidermonkey/jsotypes.h", "vendor/spidermonkey/jsparse.c", "vendor/spidermonkey/jsparse.h", "vendor/spidermonkey/jsprf.c", "vendor/spidermonkey/jsprf.h", "vendor/spidermonkey/jsproto.tbl", "vendor/spidermonkey/jsprvtd.h", "vendor/spidermonkey/jspubtd.h", "vendor/spidermonkey/jsregexp.c", "vendor/spidermonkey/jsregexp.h", "vendor/spidermonkey/jsreops.tbl", "vendor/spidermonkey/jsscan.c", "vendor/spidermonkey/jsscan.h", "vendor/spidermonkey/jsscope.c", "vendor/spidermonkey/jsscope.h", "vendor/spidermonkey/jsscript.c", "vendor/spidermonkey/jsscript.h", "vendor/spidermonkey/jsshell.msg", "vendor/spidermonkey/jsstddef.h", "vendor/spidermonkey/jsstr.c", "vendor/spidermonkey/jsstr.h", "vendor/spidermonkey/jstypes.h", "vendor/spidermonkey/jsutil.c", "vendor/spidermonkey/jsutil.h", "vendor/spidermonkey/jsxdrapi.c", "vendor/spidermonkey/jsxdrapi.h", "vendor/spidermonkey/jsxml.c", "vendor/spidermonkey/jsxml.h", "vendor/spidermonkey/lock_SunOS.s", "vendor/spidermonkey/perfect.js", "vendor/spidermonkey/plify_jsdhash.sed", "vendor/spidermonkey/prmjtime.c", "vendor/spidermonkey/prmjtime.h", "vendor/spidermonkey/resource.h", "vendor/spidermonkey/rules.mk", "vendor/spidermonkey/win32.order"]
14
+ s.extra_rdoc_files = ["Manifest.txt", "docs/cross-compile.txt", "README.rdoc"]
15
+ s.files = [".autotest", "CHANGELOG.rdoc", "MINGW32.mk", "Manifest.txt", "README.rdoc", "Rakefile", "bin/johnson", "docs/cross-compile.txt", "ext/spidermonkey/context.c", "ext/spidermonkey/context.h", "ext/spidermonkey/conversions.c", "ext/spidermonkey/conversions.h", "ext/spidermonkey/debugger.c", "ext/spidermonkey/debugger.h", "ext/spidermonkey/extconf.rb", "ext/spidermonkey/extensions.c", "ext/spidermonkey/extensions.h", "ext/spidermonkey/global.c", "ext/spidermonkey/global.h", "ext/spidermonkey/idhash.c", "ext/spidermonkey/idhash.h", "ext/spidermonkey/immutable_node.c", "ext/spidermonkey/immutable_node.c.erb", "ext/spidermonkey/immutable_node.h", "ext/spidermonkey/jroot.h", "ext/spidermonkey/js_land_proxy.c", "ext/spidermonkey/js_land_proxy.h", "ext/spidermonkey/ruby_land_proxy.c", "ext/spidermonkey/ruby_land_proxy.h", "ext/spidermonkey/runtime.c", "ext/spidermonkey/runtime.h", "ext/spidermonkey/spidermonkey.c", "ext/spidermonkey/spidermonkey.h", "johnson.gemspec", "js/johnson/cli.js", "js/johnson/prelude.js", "lib/johnson.rb", "lib/johnson/cli.rb", "lib/johnson/cli/options.rb", "lib/johnson/error.rb", "lib/johnson/nodes.rb", "lib/johnson/nodes/binary_node.rb", "lib/johnson/nodes/for.rb", "lib/johnson/nodes/for_in.rb", "lib/johnson/nodes/function.rb", "lib/johnson/nodes/list.rb", "lib/johnson/nodes/node.rb", "lib/johnson/nodes/ternary_node.rb", "lib/johnson/parser.rb", "lib/johnson/parser/syntax_error.rb", "lib/johnson/runtime.rb", "lib/johnson/spidermonkey/context.rb", "lib/johnson/spidermonkey/debugger.rb", "lib/johnson/spidermonkey/immutable_node.rb", "lib/johnson/spidermonkey/js_land_proxy.rb", "lib/johnson/spidermonkey/mutable_tree_visitor.rb", "lib/johnson/spidermonkey/ruby_land_proxy.rb", "lib/johnson/spidermonkey/runtime.rb", "lib/johnson/version.rb", "lib/johnson/visitable.rb", "lib/johnson/visitors.rb", "lib/johnson/visitors/dot_visitor.rb", "lib/johnson/visitors/ecma_visitor.rb", "lib/johnson/visitors/enumerating_visitor.rb", "lib/johnson/visitors/sexp_visitor.rb", "lib/johnson/visitors/visitor.rb", "lib/rails/init.rb", "lib/tasks/gem.rake", "lib/tasks/parsing.rake", "lib/tasks/testing.rake", "lib/tasks/vendor.rake", "test/helper.rb", "test/johnson/browser_test.rb", "test/johnson/conversions/array_test.rb", "test/johnson/conversions/boolean_test.rb", "test/johnson/conversions/callable_test.rb", "test/johnson/conversions/file_test.rb", "test/johnson/conversions/nil_test.rb", "test/johnson/conversions/number_test.rb", "test/johnson/conversions/regexp_test.rb", "test/johnson/conversions/string_test.rb", "test/johnson/conversions/struct_test.rb", "test/johnson/conversions/symbol_test.rb", "test/johnson/conversions/thread_test.rb", "test/johnson/error_test.rb", "test/johnson/extensions_test.rb", "test/johnson/nodes/array_literal_test.rb", "test/johnson/nodes/array_node_test.rb", "test/johnson/nodes/binary_node_test.rb", "test/johnson/nodes/bracket_access_test.rb", "test/johnson/nodes/delete_test.rb", "test/johnson/nodes/do_while_test.rb", "test/johnson/nodes/dot_accessor_test.rb", "test/johnson/nodes/export_test.rb", "test/johnson/nodes/for_test.rb", "test/johnson/nodes/function_test.rb", "test/johnson/nodes/if_test.rb", "test/johnson/nodes/import_test.rb", "test/johnson/nodes/label_test.rb", "test/johnson/nodes/let_test.rb", "test/johnson/nodes/object_literal_test.rb", "test/johnson/nodes/return_test.rb", "test/johnson/nodes/semi_test.rb", "test/johnson/nodes/switch_test.rb", "test/johnson/nodes/ternary_test.rb", "test/johnson/nodes/throw_test.rb", "test/johnson/nodes/try_node_test.rb", "test/johnson/nodes/typeof_test.rb", "test/johnson/nodes/unary_node_test.rb", "test/johnson/nodes/void_test.rb", "test/johnson/nodes/while_test.rb", "test/johnson/nodes/with_test.rb", "test/johnson/prelude_test.rb", "test/johnson/runtime_test.rb", "test/johnson/spidermonkey/context_test.rb", "test/johnson/spidermonkey/immutable_node_test.rb", "test/johnson/spidermonkey/js_land_proxy_test.rb", "test/johnson/spidermonkey/ruby_land_proxy_test.rb", "test/johnson/spidermonkey/runtime_test.rb", "test/johnson/version_test.rb", "test/johnson/visitors/dot_visitor_test.rb", "test/johnson/visitors/enumerating_visitor_test.rb", "test/johnson_test.rb", "test/parser_test.rb", "vendor/spidermonkey/.cvsignore", "vendor/spidermonkey/Makefile.in", "vendor/spidermonkey/Makefile.ref", "vendor/spidermonkey/README.html", "vendor/spidermonkey/SpiderMonkey.rsp", "vendor/spidermonkey/Y.js", "vendor/spidermonkey/build.mk", "vendor/spidermonkey/config.mk", "vendor/spidermonkey/config/AIX4.1.mk", "vendor/spidermonkey/config/AIX4.2.mk", "vendor/spidermonkey/config/AIX4.3.mk", "vendor/spidermonkey/config/Darwin.mk", "vendor/spidermonkey/config/Darwin1.3.mk", "vendor/spidermonkey/config/Darwin1.4.mk", "vendor/spidermonkey/config/Darwin5.2.mk", "vendor/spidermonkey/config/Darwin5.3.mk", "vendor/spidermonkey/config/FreeBSD.mk", "vendor/spidermonkey/config/HP-UXB.10.10.mk", "vendor/spidermonkey/config/HP-UXB.10.20.mk", "vendor/spidermonkey/config/HP-UXB.11.00.mk", "vendor/spidermonkey/config/IRIX.mk", "vendor/spidermonkey/config/IRIX5.3.mk", "vendor/spidermonkey/config/IRIX6.1.mk", "vendor/spidermonkey/config/IRIX6.2.mk", "vendor/spidermonkey/config/IRIX6.3.mk", "vendor/spidermonkey/config/IRIX6.5.mk", "vendor/spidermonkey/config/Linux_All.mk", "vendor/spidermonkey/config/Mac_OS10.0.mk", "vendor/spidermonkey/config/OSF1V4.0.mk", "vendor/spidermonkey/config/OSF1V5.0.mk", "vendor/spidermonkey/config/SunOS4.1.4.mk", "vendor/spidermonkey/config/SunOS5.10.mk", "vendor/spidermonkey/config/SunOS5.3.mk", "vendor/spidermonkey/config/SunOS5.4.mk", "vendor/spidermonkey/config/SunOS5.5.1.mk", "vendor/spidermonkey/config/SunOS5.5.mk", "vendor/spidermonkey/config/SunOS5.6.mk", "vendor/spidermonkey/config/SunOS5.7.mk", "vendor/spidermonkey/config/SunOS5.8.mk", "vendor/spidermonkey/config/SunOS5.9.mk", "vendor/spidermonkey/config/WINNT4.0.mk", "vendor/spidermonkey/config/WINNT5.0.mk", "vendor/spidermonkey/config/WINNT5.1.mk", "vendor/spidermonkey/config/WINNT5.2.mk", "vendor/spidermonkey/config/WINNT6.0.mk", "vendor/spidermonkey/config/dgux.mk", "vendor/spidermonkey/editline/Makefile.ref", "vendor/spidermonkey/editline/README", "vendor/spidermonkey/editline/editline.3", "vendor/spidermonkey/editline/editline.c", "vendor/spidermonkey/editline/editline.h", "vendor/spidermonkey/editline/sysunix.c", "vendor/spidermonkey/editline/unix.h", "vendor/spidermonkey/fdlibm/.cvsignore", "vendor/spidermonkey/fdlibm/Makefile.in", "vendor/spidermonkey/fdlibm/Makefile.ref", "vendor/spidermonkey/fdlibm/e_acos.c", "vendor/spidermonkey/fdlibm/e_acosh.c", "vendor/spidermonkey/fdlibm/e_asin.c", "vendor/spidermonkey/fdlibm/e_atan2.c", "vendor/spidermonkey/fdlibm/e_atanh.c", "vendor/spidermonkey/fdlibm/e_cosh.c", "vendor/spidermonkey/fdlibm/e_exp.c", "vendor/spidermonkey/fdlibm/e_fmod.c", "vendor/spidermonkey/fdlibm/e_gamma.c", "vendor/spidermonkey/fdlibm/e_gamma_r.c", "vendor/spidermonkey/fdlibm/e_hypot.c", "vendor/spidermonkey/fdlibm/e_j0.c", "vendor/spidermonkey/fdlibm/e_j1.c", "vendor/spidermonkey/fdlibm/e_jn.c", "vendor/spidermonkey/fdlibm/e_lgamma.c", "vendor/spidermonkey/fdlibm/e_lgamma_r.c", "vendor/spidermonkey/fdlibm/e_log.c", "vendor/spidermonkey/fdlibm/e_log10.c", "vendor/spidermonkey/fdlibm/e_pow.c", "vendor/spidermonkey/fdlibm/e_rem_pio2.c", "vendor/spidermonkey/fdlibm/e_remainder.c", "vendor/spidermonkey/fdlibm/e_scalb.c", "vendor/spidermonkey/fdlibm/e_sinh.c", "vendor/spidermonkey/fdlibm/e_sqrt.c", "vendor/spidermonkey/fdlibm/fdlibm.h", "vendor/spidermonkey/fdlibm/fdlibm.mak", "vendor/spidermonkey/fdlibm/fdlibm.mdp", "vendor/spidermonkey/fdlibm/k_cos.c", "vendor/spidermonkey/fdlibm/k_rem_pio2.c", "vendor/spidermonkey/fdlibm/k_sin.c", "vendor/spidermonkey/fdlibm/k_standard.c", "vendor/spidermonkey/fdlibm/k_tan.c", "vendor/spidermonkey/fdlibm/s_asinh.c", "vendor/spidermonkey/fdlibm/s_atan.c", "vendor/spidermonkey/fdlibm/s_cbrt.c", "vendor/spidermonkey/fdlibm/s_ceil.c", "vendor/spidermonkey/fdlibm/s_copysign.c", "vendor/spidermonkey/fdlibm/s_cos.c", "vendor/spidermonkey/fdlibm/s_erf.c", "vendor/spidermonkey/fdlibm/s_expm1.c", "vendor/spidermonkey/fdlibm/s_fabs.c", "vendor/spidermonkey/fdlibm/s_finite.c", "vendor/spidermonkey/fdlibm/s_floor.c", "vendor/spidermonkey/fdlibm/s_frexp.c", "vendor/spidermonkey/fdlibm/s_ilogb.c", "vendor/spidermonkey/fdlibm/s_isnan.c", "vendor/spidermonkey/fdlibm/s_ldexp.c", "vendor/spidermonkey/fdlibm/s_lib_version.c", "vendor/spidermonkey/fdlibm/s_log1p.c", "vendor/spidermonkey/fdlibm/s_logb.c", "vendor/spidermonkey/fdlibm/s_matherr.c", "vendor/spidermonkey/fdlibm/s_modf.c", "vendor/spidermonkey/fdlibm/s_nextafter.c", "vendor/spidermonkey/fdlibm/s_rint.c", "vendor/spidermonkey/fdlibm/s_scalbn.c", "vendor/spidermonkey/fdlibm/s_signgam.c", "vendor/spidermonkey/fdlibm/s_significand.c", "vendor/spidermonkey/fdlibm/s_sin.c", "vendor/spidermonkey/fdlibm/s_tan.c", "vendor/spidermonkey/fdlibm/s_tanh.c", "vendor/spidermonkey/fdlibm/w_acos.c", "vendor/spidermonkey/fdlibm/w_acosh.c", "vendor/spidermonkey/fdlibm/w_asin.c", "vendor/spidermonkey/fdlibm/w_atan2.c", "vendor/spidermonkey/fdlibm/w_atanh.c", "vendor/spidermonkey/fdlibm/w_cosh.c", "vendor/spidermonkey/fdlibm/w_exp.c", "vendor/spidermonkey/fdlibm/w_fmod.c", "vendor/spidermonkey/fdlibm/w_gamma.c", "vendor/spidermonkey/fdlibm/w_gamma_r.c", "vendor/spidermonkey/fdlibm/w_hypot.c", "vendor/spidermonkey/fdlibm/w_j0.c", "vendor/spidermonkey/fdlibm/w_j1.c", "vendor/spidermonkey/fdlibm/w_jn.c", "vendor/spidermonkey/fdlibm/w_lgamma.c", "vendor/spidermonkey/fdlibm/w_lgamma_r.c", "vendor/spidermonkey/fdlibm/w_log.c", "vendor/spidermonkey/fdlibm/w_log10.c", "vendor/spidermonkey/fdlibm/w_pow.c", "vendor/spidermonkey/fdlibm/w_remainder.c", "vendor/spidermonkey/fdlibm/w_scalb.c", "vendor/spidermonkey/fdlibm/w_sinh.c", "vendor/spidermonkey/fdlibm/w_sqrt.c", "vendor/spidermonkey/javascript-trace.d", "vendor/spidermonkey/js.c", "vendor/spidermonkey/js.mak", "vendor/spidermonkey/js.mdp", "vendor/spidermonkey/js.msg", "vendor/spidermonkey/js3240.rc", "vendor/spidermonkey/jsOS240.def", "vendor/spidermonkey/jsapi.c", "vendor/spidermonkey/jsapi.h", "vendor/spidermonkey/jsarena.c", "vendor/spidermonkey/jsarena.h", "vendor/spidermonkey/jsarray.c", "vendor/spidermonkey/jsarray.h", "vendor/spidermonkey/jsatom.c", "vendor/spidermonkey/jsatom.h", "vendor/spidermonkey/jsbit.h", "vendor/spidermonkey/jsbool.c", "vendor/spidermonkey/jsbool.h", "vendor/spidermonkey/jsclist.h", "vendor/spidermonkey/jscntxt.c", "vendor/spidermonkey/jscntxt.h", "vendor/spidermonkey/jscompat.h", "vendor/spidermonkey/jsconfig.h", "vendor/spidermonkey/jsconfig.mk", "vendor/spidermonkey/jscpucfg.c", "vendor/spidermonkey/jscpucfg.h", "vendor/spidermonkey/jsdate.c", "vendor/spidermonkey/jsdate.h", "vendor/spidermonkey/jsdbgapi.c", "vendor/spidermonkey/jsdbgapi.h", "vendor/spidermonkey/jsdhash.c", "vendor/spidermonkey/jsdhash.h", "vendor/spidermonkey/jsdtoa.c", "vendor/spidermonkey/jsdtoa.h", "vendor/spidermonkey/jsdtracef.c", "vendor/spidermonkey/jsdtracef.h", "vendor/spidermonkey/jsemit.c", "vendor/spidermonkey/jsemit.h", "vendor/spidermonkey/jsexn.c", "vendor/spidermonkey/jsexn.h", "vendor/spidermonkey/jsfile.c", "vendor/spidermonkey/jsfile.h", "vendor/spidermonkey/jsfile.msg", "vendor/spidermonkey/jsfun.c", "vendor/spidermonkey/jsfun.h", "vendor/spidermonkey/jsgc.c", "vendor/spidermonkey/jsgc.h", "vendor/spidermonkey/jshash.c", "vendor/spidermonkey/jshash.h", "vendor/spidermonkey/jsify.pl", "vendor/spidermonkey/jsinterp.c", "vendor/spidermonkey/jsinterp.h", "vendor/spidermonkey/jsinvoke.c", "vendor/spidermonkey/jsiter.c", "vendor/spidermonkey/jsiter.h", "vendor/spidermonkey/jskeyword.tbl", "vendor/spidermonkey/jskwgen.c", "vendor/spidermonkey/jslibmath.h", "vendor/spidermonkey/jslock.c", "vendor/spidermonkey/jslock.h", "vendor/spidermonkey/jslocko.asm", "vendor/spidermonkey/jslog2.c", "vendor/spidermonkey/jslong.c", "vendor/spidermonkey/jslong.h", "vendor/spidermonkey/jsmath.c", "vendor/spidermonkey/jsmath.h", "vendor/spidermonkey/jsnum.c", "vendor/spidermonkey/jsnum.h", "vendor/spidermonkey/jsobj.c", "vendor/spidermonkey/jsobj.h", "vendor/spidermonkey/jsopcode.c", "vendor/spidermonkey/jsopcode.h", "vendor/spidermonkey/jsopcode.tbl", "vendor/spidermonkey/jsotypes.h", "vendor/spidermonkey/jsparse.c", "vendor/spidermonkey/jsparse.h", "vendor/spidermonkey/jsprf.c", "vendor/spidermonkey/jsprf.h", "vendor/spidermonkey/jsproto.tbl", "vendor/spidermonkey/jsprvtd.h", "vendor/spidermonkey/jspubtd.h", "vendor/spidermonkey/jsregexp.c", "vendor/spidermonkey/jsregexp.h", "vendor/spidermonkey/jsreops.tbl", "vendor/spidermonkey/jsscan.c", "vendor/spidermonkey/jsscan.h", "vendor/spidermonkey/jsscope.c", "vendor/spidermonkey/jsscope.h", "vendor/spidermonkey/jsscript.c", "vendor/spidermonkey/jsscript.h", "vendor/spidermonkey/jsshell.msg", "vendor/spidermonkey/jsstddef.h", "vendor/spidermonkey/jsstr.c", "vendor/spidermonkey/jsstr.h", "vendor/spidermonkey/jstypes.h", "vendor/spidermonkey/jsutil.c", "vendor/spidermonkey/jsutil.h", "vendor/spidermonkey/jsxdrapi.c", "vendor/spidermonkey/jsxdrapi.h", "vendor/spidermonkey/jsxml.c", "vendor/spidermonkey/jsxml.h", "vendor/spidermonkey/lock_SunOS.s", "vendor/spidermonkey/perfect.js", "vendor/spidermonkey/plify_jsdhash.sed", "vendor/spidermonkey/prmjtime.c", "vendor/spidermonkey/prmjtime.h", "vendor/spidermonkey/resource.h", "vendor/spidermonkey/rules.mk", "vendor/spidermonkey/win32.order"]
17
16
  s.has_rdoc = true
18
17
  s.homepage = %q{http://github.com/jbarnette/johnson/wikis}
19
18
  s.rdoc_options = ["--main", "README.rdoc"]
20
19
  s.require_paths = ["lib", "ext"]
21
20
  s.rubyforge_project = %q{johnson}
22
21
  s.rubygems_version = %q{1.3.1}
23
- s.summary = %q{}
22
+ s.summary = %q{Johnson wraps JavaScript in a loving Ruby embrace.}
24
23
  s.test_files = ["test/johnson/browser_test.rb", "test/johnson/conversions/array_test.rb", "test/johnson/conversions/boolean_test.rb", "test/johnson/conversions/callable_test.rb", "test/johnson/conversions/file_test.rb", "test/johnson/conversions/nil_test.rb", "test/johnson/conversions/number_test.rb", "test/johnson/conversions/regexp_test.rb", "test/johnson/conversions/string_test.rb", "test/johnson/conversions/struct_test.rb", "test/johnson/conversions/symbol_test.rb", "test/johnson/conversions/thread_test.rb", "test/johnson/error_test.rb", "test/johnson/extensions_test.rb", "test/johnson/nodes/array_literal_test.rb", "test/johnson/nodes/array_node_test.rb", "test/johnson/nodes/binary_node_test.rb", "test/johnson/nodes/bracket_access_test.rb", "test/johnson/nodes/delete_test.rb", "test/johnson/nodes/do_while_test.rb", "test/johnson/nodes/dot_accessor_test.rb", "test/johnson/nodes/export_test.rb", "test/johnson/nodes/for_test.rb", "test/johnson/nodes/function_test.rb", "test/johnson/nodes/if_test.rb", "test/johnson/nodes/import_test.rb", "test/johnson/nodes/label_test.rb", "test/johnson/nodes/let_test.rb", "test/johnson/nodes/object_literal_test.rb", "test/johnson/nodes/return_test.rb", "test/johnson/nodes/semi_test.rb", "test/johnson/nodes/switch_test.rb", "test/johnson/nodes/ternary_test.rb", "test/johnson/nodes/throw_test.rb", "test/johnson/nodes/try_node_test.rb", "test/johnson/nodes/typeof_test.rb", "test/johnson/nodes/unary_node_test.rb", "test/johnson/nodes/void_test.rb", "test/johnson/nodes/while_test.rb", "test/johnson/nodes/with_test.rb", "test/johnson/prelude_test.rb", "test/johnson/runtime_test.rb", "test/johnson/spidermonkey/context_test.rb", "test/johnson/spidermonkey/immutable_node_test.rb", "test/johnson/spidermonkey/js_land_proxy_test.rb", "test/johnson/spidermonkey/ruby_land_proxy_test.rb", "test/johnson/spidermonkey/runtime_test.rb", "test/johnson/version_test.rb", "test/johnson/visitors/dot_visitor_test.rb", "test/johnson/visitors/enumerating_visitor_test.rb", "test/johnson_test.rb", "test/parser_test.rb"]
25
24
 
26
25
  if s.respond_to? :specification_version then
@@ -29,13 +28,16 @@ Gem::Specification.new do |s|
29
28
 
30
29
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
31
30
  s.add_runtime_dependency(%q<rake>, [">= 0"])
31
+ s.add_development_dependency(%q<rake-compiler>, [">= 0"])
32
32
  s.add_development_dependency(%q<hoe>, [">= 1.11.0"])
33
33
  else
34
34
  s.add_dependency(%q<rake>, [">= 0"])
35
+ s.add_dependency(%q<rake-compiler>, [">= 0"])
35
36
  s.add_dependency(%q<hoe>, [">= 1.11.0"])
36
37
  end
37
38
  else
38
39
  s.add_dependency(%q<rake>, [">= 0"])
40
+ s.add_dependency(%q<rake-compiler>, [">= 0"])
39
41
  s.add_dependency(%q<hoe>, [">= 1.11.0"])
40
42
  end
41
43
  end
@@ -0,0 +1,9 @@
1
+ namespace :gem do
2
+ "Generate a VERSION.timestamp gemspec."
3
+ task :spec do
4
+ File.open("#{HOE.name}.gemspec", "w") do |f|
5
+ HOE.spec.version = "#{HOE.version}.#{Time.now.strftime("%Y%m%d%H%M%S")}"
6
+ f.puts(HOE.spec.to_ruby)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,37 @@
1
+ require "erb"
2
+
3
+ GENERATED_NODE = "ext/spidermonkey/immutable_node.c"
4
+ HOE.clean_globs << GENERATED_NODE
5
+ task :check_manifest => GENERATED_NODE
6
+
7
+ def jsops
8
+ ops = []
9
+ File.open("vendor/spidermonkey/jsopcode.tbl", "rb") { |f|
10
+ f.each_line do |line|
11
+ if line =~ /^OPDEF\((\w+),/
12
+ ops << $1
13
+ end
14
+ end
15
+ }
16
+ ops
17
+ end
18
+
19
+ def tokens
20
+ toks = []
21
+ File.open("vendor/spidermonkey/jsscan.h", "rb") { |f|
22
+ f.each_line do |line|
23
+ line.scan(/TOK_\w+/).each do |token|
24
+ next if token == "TOK_ERROR"
25
+ toks << token
26
+ end
27
+ end
28
+ }
29
+ toks.uniq
30
+ end
31
+
32
+ file GENERATED_NODE => "ext/spidermonkey/immutable_node.c.erb" do |t|
33
+ template = ERB.new(File.open(t.prerequisites.first, "rb") { |x| x.read })
34
+ File.open(GENERATED_NODE, "wb") { |f| f.write template.result(binding) }
35
+ end
36
+
37
+ file "ext/spidermonkey/extconf.rb" => GENERATED_NODE
@@ -0,0 +1,36 @@
1
+ namespace :test do
2
+ # partial-loads-ok and undef-value-errors necessary to ignore
3
+ # spurious (and eminently ignorable) warnings from the ruby
4
+ # interpreter
5
+ VALGRIND_BASIC_OPTS = "--num-callers=50 --error-limit=no --partial-loads-ok=yes --undef-value-errors=no"
6
+
7
+ desc "run test suite under valgrind with basic ruby options"
8
+ task :valgrind => :build do
9
+ cmdline = "valgrind #{VALGRIND_BASIC_OPTS} #{test_suite_cmdline}"
10
+ puts cmdline
11
+ system cmdline
12
+ end
13
+
14
+ desc "run test suite under valgrind with memory-fill ruby options"
15
+ task :valgrind_mem => :build do
16
+ # fill malloced memory with "m" and freed memory with "f"
17
+ cmdline = "valgrind #{VALGRIND_BASIC_OPTS} --freelist-vol=100000000 --malloc-fill=6D --free-fill=66 #{test_suite_cmdline}"
18
+ puts cmdline
19
+ system cmdline
20
+ end
21
+
22
+ desc "run test suite under valgrind with memory-zero ruby options"
23
+ task :valgrind_mem0 => :build do
24
+ # fill malloced and freed memory with 0
25
+ cmdline = "valgrind #{VALGRIND_BASIC_OPTS} --freelist-vol=100000000 --malloc-fill=00 --free-fill=00 #{test_suite_cmdline}"
26
+ puts cmdline
27
+ system cmdline
28
+ end
29
+
30
+ desc "run test suite under gdb"
31
+ task :gdb => :build do
32
+ cmdline = "gdb --args #{test_suite_cmdline}"
33
+ puts cmdline
34
+ system cmdline
35
+ end
36
+ end
@@ -0,0 +1,20 @@
1
+ namespace :vendor do
2
+ namespace :spidermonkey do
3
+ desc "Clean the vendored SpiderMonkey."
4
+ task :clean do
5
+ Dir.chdir "vendor/spidermonkey" do
6
+ sh "make clean -f Makefile.ref" unless Dir["**/libjs.a"].empty?
7
+ end
8
+ end
9
+
10
+ desc "Compile the vendored SpiderMonkey."
11
+ task :compile do
12
+ Dir.chdir "vendor/spidermonkey" do
13
+ sh "make -f Makefile.ref" if Dir["**/libjs.a"].empty?
14
+ end
15
+ end
16
+ end
17
+ end
18
+
19
+ task :clean => "vendor:spidermonkey:clean"
20
+ file "ext/spidermonkey/extconf.rb" => "vendor:spidermonkey:compile"
data/test/helper.rb CHANGED
@@ -5,9 +5,6 @@ require "test/unit"
5
5
  $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), path)))
6
6
  end
7
7
 
8
- # If the test isn't running from Rake, make sure the extension's current.
9
- Rake rescue Dir.chdir(File.dirname(__FILE__) + "/..") { %x(rake extensions) }
10
-
11
8
  require "johnson"
12
9
 
13
10
  module Johnson
@@ -33,14 +33,14 @@ module Johnson
33
33
  assert_kind_of(Set, @runtime.evaluate("Ruby.Set.new()"))
34
34
  end
35
35
 
36
- def test_require_an_existing_js_file_without_extension
37
- assert_js("Johnson.require('johnson/template')")
38
- end
36
+ # def test_require_an_existing_js_file_without_extension
37
+ # assert_js("Johnson.require('johnson/template')")
38
+ # end
39
39
 
40
- def test_require_returns_false_the_second_time_around
41
- assert_js("Johnson.require('johnson/template')")
42
- assert(!@runtime.evaluate("Johnson.require('johnson/template')"))
43
- end
40
+ # def test_require_returns_false_the_second_time_around
41
+ # assert_js("Johnson.require('johnson/template')")
42
+ # assert(!@runtime.evaluate("Johnson.require('johnson/template')"))
43
+ # end
44
44
 
45
45
  def test_missing_requires_throw_LoadError
46
46
  assert_js(<<-END)