jbarnette-johnson 1.0.0.20090326122910 → 1.0.0.20090326154650

Sign up to get free protection for your applications and to get access to all the features.
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)