johnson 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,10 @@
1
- === 1.1.0 "Segfault City" (2009-04-04)
1
+ === 1.1.1 / 2009-06-27
2
+
3
+ * Stress GC during tests by setting JOHNSON_GC env var. [Mike Dalessio]
4
+ * Better cross-language exception stack traces. [Mike Dalessio]
5
+ * Modernize our use of Hoe and plugins.
6
+
7
+ === 1.1.0 / 2009-04-04
2
8
 
3
9
  * Enough delays. First real/RubyForge release!
4
10
  * Cleaned up the build.
@@ -6,6 +12,6 @@
6
12
  * Fixed allocation-during-GC bugs.
7
13
  * Added some new GC bugs.
8
14
 
9
- === 1.0.0 (2008-03-11)
15
+ === 1.0.0 / 2008-03-11
10
16
 
11
17
  * Birthday!
@@ -31,7 +31,6 @@ ext/spidermonkey/runtime.c
31
31
  ext/spidermonkey/runtime.h
32
32
  ext/spidermonkey/spidermonkey.c
33
33
  ext/spidermonkey/spidermonkey.h
34
- johnson.gemspec
35
34
  js/johnson/cli.js
36
35
  js/johnson/prelude.js
37
36
  lib/johnson.rb
@@ -65,9 +64,7 @@ lib/johnson/visitors/enumerating_visitor.rb
65
64
  lib/johnson/visitors/sexp_visitor.rb
66
65
  lib/johnson/visitors/visitor.rb
67
66
  lib/rails/init.rb
68
- lib/tasks/gem.rake
69
67
  lib/tasks/parsing.rake
70
- lib/tasks/testing.rake
71
68
  lib/tasks/vendor.rake
72
69
  test/helper.rb
73
70
  test/johnson/browser_test.rb
@@ -1,10 +1,13 @@
1
1
  = Johnson
2
2
 
3
- Johnson wraps JavaScript in a loving Ruby embrace.
3
+ * http://github.com/jbarnette/johnson
4
+ * http://johnson.lighthouseapp.com
5
+ * http://groups.google.com/group/johnson-talk
4
6
 
5
- * {Source Code}[http://github.com/jbarnette/johnson]
6
- * {Bug Tracker}[http://johnson.lighthouseapp.com]
7
- * {RubyForge Project}[http://johnson.rubyforge.org]
7
+ == Description
8
+
9
+ Johnson wraps JavaScript in a loving Ruby embrace. It embeds the
10
+ Mozilla SpiderMonkey JavaScript runtime as a C extension.
8
11
 
9
12
  == Examples
10
13
 
@@ -16,28 +19,18 @@ Johnson wraps JavaScript in a loving Ruby embrace.
16
19
 
17
20
  == Installation
18
21
 
19
- [sudo] gem install johnson
20
-
21
- === Restrictions
22
-
23
- Johnson is currently developed and tested on Mac OS X with Ruby
24
- 1.8.6. We'd like to widen our support: contributions are very welcome!
25
-
26
- It's also kinda segfaulty at the moment. GC is hard.
27
-
28
- === Development Versions
22
+ $ gem install johnson
29
23
 
30
- We periodically update Johnson's gemspec on Github. Rather than
31
- installing the official releases (hosted on RubyForge), you can track
32
- the development version. Development versions will have a timestamped
33
- version number, like 1.0.0.200806232349.
24
+ === TODO
34
25
 
35
- $ [sudo] gem sources -a http://gems.github.com # once
36
- $ [sudo] gem install jbarnette-johnson
26
+ * Support more than just Mac OS X / Ruby 1.8.6.
27
+ * Stop freaking segfaulting.
37
28
 
38
29
  == License
39
30
 
40
- Copyright 2008-2009 John Barnette, Aaron Patterson, Yehuda Katz,
31
+ Copyright 2008-2009 John Barnette,
32
+ Aaron Patterson,
33
+ Yehuda Katz,
41
34
  Matthew Draper
42
35
 
43
36
  Permission is hereby granted, free of charge, to any person obtaining
data/Rakefile CHANGED
@@ -2,30 +2,28 @@ require "rubygems"
2
2
  require "hoe"
3
3
  require "rake/extensiontask"
4
4
 
5
- require "./lib/johnson/version.rb"
6
-
7
- HOE = Hoe.new "johnson", Johnson::VERSION do |p|
8
- p.developer "John Barnette", "jbarnette@rubyforge.org"
9
- p.developer "Aaron Patterson", "aaron.patterson@gmail.com"
10
- p.developer "Yehuda Katz", "wycats@gmail.com"
11
- p.developer "Matthew Draper", "matthew@trebex.net"
12
-
13
- p.history_file = "CHANGELOG.rdoc"
14
- p.readme_file = "README.rdoc"
15
- p.summary = "Johnson wraps JavaScript in a loving Ruby embrace."
16
- p.url = "http://github.com/jbarnette/johnson/wikis"
17
-
18
- p.extra_rdoc_files = [p.readme_file]
19
- p.test_globs = %w(test/**/*_test.rb)
20
-
21
- p.clean_globs << "lib/johnson/spidermonkey.bundle"
22
- p.clean_globs << "tmp"
23
- p.clean_globs << "vendor/spidermonkey/**/*.OBJ"
24
- p.clean_globs << "ext/**/*.{o,so,bundle,a,log}"
25
-
26
- p.extra_deps << "rake"
27
- p.extra_dev_deps << "rake-compiler"
28
- p.spec_extras = { :extensions => %w(Rakefile) }
5
+ Hoe.plugin :debugging, :git
6
+
7
+ HOE = Hoe.spec "johnson" do
8
+ developer "John Barnette", "jbarnette@rubyforge.org"
9
+ developer "Aaron Patterson", "aaron.patterson@gmail.com"
10
+ developer "Yehuda Katz", "wycats@gmail.com"
11
+ developer "Matthew Draper", "matthew@trebex.net"
12
+
13
+ self.extra_rdoc_files = FileList["*.rdoc"]
14
+ self.history_file = "CHANGELOG.rdoc"
15
+ self.readme_file = "README.rdoc"
16
+ self.test_globs = %w(test/**/*_test.rb)
17
+
18
+ clean_globs << "lib/johnson/spidermonkey.bundle"
19
+ clean_globs << "tmp"
20
+ clean_globs << "vendor/spidermonkey/**/*.OBJ"
21
+ clean_globs << "ext/**/*.{o,so,bundle,a,log}"
22
+
23
+ # FIX: this crap needs to die
24
+ extra_deps << "rake"
25
+ extra_dev_deps << "rake-compiler"
26
+ self.spec_extras = { :extensions => %w(Rakefile) }
29
27
  end
30
28
 
31
29
  Rake::ExtensionTask.new "spidermonkey", HOE.spec do |ext|
@@ -297,12 +297,12 @@ JSBool report_ruby_error_in_js(JohnsonRuntime* runtime, int state, VALUE old_err
297
297
  case TAG_RAISE:
298
298
  {
299
299
  VALUE local_error = ruby_errinfo;
300
- jsval js_err;
301
300
  ruby_errinfo = old_errinfo;
302
- if (!convert_to_js(runtime, local_error, &js_err))
303
- return JS_FALSE;
304
- JS_SetPendingException(context, js_err);
305
- return JS_FALSE;
301
+
302
+ local_error = rb_funcall(local_error, rb_intern("inspect"), 0);
303
+ JS_ReportError(context, StringValuePtr(local_error));
304
+
305
+ return JS_FALSE ;
306
306
  }
307
307
 
308
308
  case TAG_THROW:
@@ -1,3 +1,3 @@
1
1
  module Johnson #:nodoc:
2
- VERSION = "1.1.0"
2
+ VERSION = "1.1.1"
3
3
  end
@@ -8,7 +8,18 @@ end
8
8
  require "johnson"
9
9
 
10
10
  module Johnson
11
+ module GCTearDown
12
+ def teardown
13
+ if ENV['JOHNSON_GC']
14
+ STDOUT.putc '!'
15
+ GC.start
16
+ end
17
+ end
18
+ end
19
+
11
20
  class TestCase < Test::Unit::TestCase
21
+ include GCTearDown
22
+
12
23
  class TestLogger
13
24
  def debug(string)
14
25
  puts string
@@ -36,6 +47,7 @@ module Johnson
36
47
  end
37
48
 
38
49
  class NodeTestCase < Test::Unit::TestCase
50
+ include GCTearDown
39
51
  include Johnson::Nodes
40
52
 
41
53
  undef :default_test if method_defined? :default_test
@@ -231,6 +231,47 @@ module Johnson
231
231
  def test_raises_exception_to_ruby
232
232
  assert_raise(Johnson::Error) { @runtime.evaluate("undefinedValue();") }
233
233
  end
234
+
235
+ def test_js_property_false_should_not_invoke
236
+ klass = Class.new do
237
+ def bar ; 10 ; end
238
+ def js_property?(name) ; false ; end
239
+ end
240
+ @runtime['foo'] = foo = klass.new
241
+ assert_equal foo.method(:bar), @runtime.evaluate("foo.bar")
242
+ end
243
+
244
+ def test_js_property_nil_should_not_invoke
245
+ klass = Class.new do
246
+ def bar ; 10 ; end
247
+ def js_property?(name) ; nil ; end
248
+ end
249
+ foo = klass.new
250
+ assert_js_equal(foo.method(:bar), "foo.bar", :foo => foo)
251
+ end
252
+
253
+ def test_js_property_true_should_invoke_0_arity
254
+ klass = Class.new do
255
+ def bar ; 10 ; end
256
+ def js_property?(name) ; true ; end
257
+ end
258
+ assert_js_equal(10, "foo.bar", :foo => klass.new)
259
+ end
260
+
261
+ def test_js_property_on_n_arity_should_raise_exception
262
+ klass = Class.new do
263
+ def bar(n) ; 10 + n ; end
264
+ def js_property?(name) ; true ; end
265
+ end
266
+ @runtime['foo'] = klass.new
267
+ begin
268
+ @runtime.evaluate("foo.bar")
269
+ rescue Exception => e
270
+ assert_match(/ArgumentError/, e.message)
271
+ else
272
+ flunk "did not raise an exception"
273
+ end
274
+ end
234
275
  end
235
276
  end
236
277
  end
@@ -204,11 +204,25 @@ module Johnson
204
204
  end
205
205
 
206
206
  def test_raises_in_js
207
- err = RuntimeError.new("an exception")
208
- asplode = lambda { raise err }
209
- assert_js_equal(err, "x = null; try { foo(); } catch(ex) { x = ex; }; x", :foo => asplode)
207
+ @runtime["foo"] = lambda { raise RuntimeError.new("an exception") }
208
+ raised = @runtime.evaluate "x = null; try { foo(); } catch(ex) { x = ex; }; x"
209
+ assert_equal "#<RuntimeError: an exception>", raised.message
210
210
  end
211
-
211
+
212
+ def test_uncaught_exceptions_have_decent_stack_trace
213
+ @runtime["foo"] = lambda { raise RuntimeError.new("an exception") }
214
+ line_number = __LINE__ - 1 # reference to previous line
215
+ begin
216
+ @runtime.evaluate "foo()"
217
+ rescue Exception => e
218
+ assert_equal "#<RuntimeError: an exception> at (none):1", e.message
219
+ assert_match %r/none:1\b/, e.backtrace[0]
220
+ assert_match %r/#{__FILE__}:#{line_number}\b/, e.backtrace[1]
221
+ else
222
+ flunk "exception was not raised"
223
+ end
224
+ end
225
+
212
226
  def test_array_multiple_assignment
213
227
  a = @runtime.evaluate("[1,2,3]")
214
228
  x, y, z = a
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: johnson
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Barnette
@@ -12,7 +12,7 @@ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
14
 
15
- date: 2009-04-04 00:00:00 -07:00
15
+ date: 2009-06-27 00:00:00 -07:00
16
16
  default_executable:
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
@@ -43,9 +43,11 @@ dependencies:
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 1.12.1
46
+ version: 2.3.1
47
47
  version:
48
- description: ""
48
+ description: |-
49
+ Johnson wraps JavaScript in a loving Ruby embrace. It embeds the
50
+ Mozilla SpiderMonkey JavaScript runtime as a C extension.
49
51
  email:
50
52
  - jbarnette@rubyforge.org
51
53
  - aaron.patterson@gmail.com
@@ -58,6 +60,7 @@ extensions:
58
60
  extra_rdoc_files:
59
61
  - Manifest.txt
60
62
  - docs/cross-compile.txt
63
+ - CHANGELOG.rdoc
61
64
  - README.rdoc
62
65
  files:
63
66
  - .autotest
@@ -93,7 +96,6 @@ files:
93
96
  - ext/spidermonkey/runtime.h
94
97
  - ext/spidermonkey/spidermonkey.c
95
98
  - ext/spidermonkey/spidermonkey.h
96
- - johnson.gemspec
97
99
  - js/johnson/cli.js
98
100
  - js/johnson/prelude.js
99
101
  - lib/johnson.rb
@@ -127,9 +129,7 @@ files:
127
129
  - lib/johnson/visitors/sexp_visitor.rb
128
130
  - lib/johnson/visitors/visitor.rb
129
131
  - lib/rails/init.rb
130
- - lib/tasks/gem.rake
131
132
  - lib/tasks/parsing.rake
132
- - lib/tasks/testing.rake
133
133
  - lib/tasks/vendor.rake
134
134
  - test/helper.rb
135
135
  - test/johnson/browser_test.rb
@@ -431,7 +431,9 @@ files:
431
431
  - vendor/spidermonkey/rules.mk
432
432
  - vendor/spidermonkey/win32.order
433
433
  has_rdoc: true
434
- homepage: http://github.com/jbarnette/johnson/wikis
434
+ homepage: http://github.com/jbarnette/johnson
435
+ licenses: []
436
+
435
437
  post_install_message:
436
438
  rdoc_options:
437
439
  - --main
@@ -454,10 +456,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
454
456
  requirements: []
455
457
 
456
458
  rubyforge_project: johnson
457
- rubygems_version: 1.3.1
459
+ rubygems_version: 1.3.4
458
460
  signing_key:
459
- specification_version: 2
460
- summary: Johnson wraps JavaScript in a loving Ruby embrace.
461
+ specification_version: 3
462
+ summary: Johnson wraps JavaScript in a loving Ruby embrace
461
463
  test_files:
462
464
  - test/johnson/browser_test.rb
463
465
  - test/johnson/conversions/array_test.rb
@@ -1,44 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- Gem::Specification.new do |s|
4
- s.name = %q{johnson}
5
- s.version = "1.0.0.20090402155420"
6
-
7
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["John Barnette", "Aaron Patterson", "Yehuda Katz", "Matthew Draper"]
9
- s.date = %q{2009-04-02}
10
- s.default_executable = %q{johnson}
11
- s.description = %q{}
12
- s.email = ["jbarnette@rubyforge.org", "aaron.patterson@gmail.com", "wycats@gmail.com", "matthew@trebex.net"]
13
- s.executables = ["johnson"]
14
- s.extensions = ["Rakefile"]
15
- s.extra_rdoc_files = ["Manifest.txt", "docs/cross-compile.txt", "README.rdoc"]
16
- 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
- s.has_rdoc = true
18
- s.homepage = %q{http://github.com/jbarnette/johnson/wikis}
19
- s.rdoc_options = ["--main", "README.rdoc"]
20
- s.require_paths = ["lib", "ext"]
21
- s.rubyforge_project = %q{johnson}
22
- s.rubygems_version = %q{1.3.1}
23
- s.summary = %q{Johnson wraps JavaScript in a loving Ruby embrace.}
24
- 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
-
26
- if s.respond_to? :specification_version then
27
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
28
- s.specification_version = 2
29
-
30
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
31
- s.add_runtime_dependency(%q<rake>, [">= 0"])
32
- s.add_development_dependency(%q<rake-compiler>, [">= 0"])
33
- s.add_development_dependency(%q<hoe>, [">= 1.12.1"])
34
- else
35
- s.add_dependency(%q<rake>, [">= 0"])
36
- s.add_dependency(%q<rake-compiler>, [">= 0"])
37
- s.add_dependency(%q<hoe>, [">= 1.12.1"])
38
- end
39
- else
40
- s.add_dependency(%q<rake>, [">= 0"])
41
- s.add_dependency(%q<rake-compiler>, [">= 0"])
42
- s.add_dependency(%q<hoe>, [">= 1.12.1"])
43
- end
44
- end
@@ -1,9 +0,0 @@
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
@@ -1,36 +0,0 @@
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 => :compile do
9
- cmdline = "valgrind #{VALGRIND_BASIC_OPTS} ruby #{HOE.make_test_cmd}"
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 => :compile 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 ruby #{HOE.make_test_cmd}"
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 => :compile do
24
- # fill malloced and freed memory with 0
25
- cmdline = "valgrind #{VALGRIND_BASIC_OPTS} --freelist-vol=100000000 --malloc-fill=00 --free-fill=00 ruby #{HOE.make_test_cmd}"
26
- puts cmdline
27
- system cmdline
28
- end
29
-
30
- desc "run test suite under gdb"
31
- task :gdb => :compile do
32
- cmdline = "gdb --args ruby #{HOE.make_test_cmd}"
33
- puts cmdline
34
- system cmdline
35
- end
36
- end