johnson 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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