jbarnette-johnson 1.0.0.200806240111

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. data/CHANGELOG +5 -0
  2. data/MANIFEST +385 -0
  3. data/MINGW32.mk +124 -0
  4. data/README.rdoc +51 -0
  5. data/Rakefile +166 -0
  6. data/bin/johnson +107 -0
  7. data/cross-compile.txt +38 -0
  8. data/ext/spidermonkey/context.c +122 -0
  9. data/ext/spidermonkey/context.h +19 -0
  10. data/ext/spidermonkey/conversions.c +286 -0
  11. data/ext/spidermonkey/conversions.h +18 -0
  12. data/ext/spidermonkey/debugger.c +208 -0
  13. data/ext/spidermonkey/debugger.h +9 -0
  14. data/ext/spidermonkey/extconf.rb +25 -0
  15. data/ext/spidermonkey/extensions.c +37 -0
  16. data/ext/spidermonkey/extensions.h +12 -0
  17. data/ext/spidermonkey/global.c +40 -0
  18. data/ext/spidermonkey/global.h +11 -0
  19. data/ext/spidermonkey/idhash.c +16 -0
  20. data/ext/spidermonkey/idhash.h +8 -0
  21. data/ext/spidermonkey/immutable_node.c.erb +522 -0
  22. data/ext/spidermonkey/immutable_node.h +22 -0
  23. data/ext/spidermonkey/jroot.h +187 -0
  24. data/ext/spidermonkey/js_land_proxy.c +609 -0
  25. data/ext/spidermonkey/js_land_proxy.h +20 -0
  26. data/ext/spidermonkey/ruby_land_proxy.c +537 -0
  27. data/ext/spidermonkey/ruby_land_proxy.h +17 -0
  28. data/ext/spidermonkey/runtime.c +304 -0
  29. data/ext/spidermonkey/runtime.h +25 -0
  30. data/ext/spidermonkey/spidermonkey.c +20 -0
  31. data/ext/spidermonkey/spidermonkey.h +29 -0
  32. data/js/johnson/browser.js +9 -0
  33. data/js/johnson/browser/env.js +687 -0
  34. data/js/johnson/browser/jquery.js +3444 -0
  35. data/js/johnson/browser/xmlsax.js +1564 -0
  36. data/js/johnson/browser/xmlw3cdom.js +4189 -0
  37. data/js/johnson/cli.js +30 -0
  38. data/js/johnson/prelude.js +80 -0
  39. data/js/johnson/template.js +29 -0
  40. data/lib/hoe.rb +748 -0
  41. data/lib/johnson.rb +46 -0
  42. data/lib/johnson/cli.rb +7 -0
  43. data/lib/johnson/cli/options.rb +56 -0
  44. data/lib/johnson/error.rb +4 -0
  45. data/lib/johnson/nodes.rb +7 -0
  46. data/lib/johnson/nodes/binary_node.rb +64 -0
  47. data/lib/johnson/nodes/for.rb +14 -0
  48. data/lib/johnson/nodes/for_in.rb +12 -0
  49. data/lib/johnson/nodes/function.rb +13 -0
  50. data/lib/johnson/nodes/list.rb +27 -0
  51. data/lib/johnson/nodes/node.rb +68 -0
  52. data/lib/johnson/nodes/ternary_node.rb +20 -0
  53. data/lib/johnson/parser.rb +21 -0
  54. data/lib/johnson/parser/syntax_error.rb +13 -0
  55. data/lib/johnson/runtime.rb +55 -0
  56. data/lib/johnson/spidermonkey/context.rb +10 -0
  57. data/lib/johnson/spidermonkey/debugger.rb +67 -0
  58. data/lib/johnson/spidermonkey/immutable_node.rb +280 -0
  59. data/lib/johnson/spidermonkey/js_land_proxy.rb +62 -0
  60. data/lib/johnson/spidermonkey/mutable_tree_visitor.rb +233 -0
  61. data/lib/johnson/spidermonkey/ruby_land_proxy.rb +52 -0
  62. data/lib/johnson/spidermonkey/runtime.rb +94 -0
  63. data/lib/johnson/version.rb +4 -0
  64. data/lib/johnson/visitable.rb +16 -0
  65. data/lib/johnson/visitors.rb +4 -0
  66. data/lib/johnson/visitors/dot_visitor.rb +167 -0
  67. data/lib/johnson/visitors/ecma_visitor.rb +315 -0
  68. data/lib/johnson/visitors/enumerating_visitor.rb +115 -0
  69. data/lib/johnson/visitors/sexp_visitor.rb +172 -0
  70. data/lib/rails/init.rb +37 -0
  71. data/test/assets/index.html +38 -0
  72. data/test/assets/jquery_test.html +186 -0
  73. data/test/helper.rb +58 -0
  74. data/test/johnson/browser_test.rb +38 -0
  75. data/test/johnson/conversions/array_test.rb +32 -0
  76. data/test/johnson/conversions/boolean_test.rb +17 -0
  77. data/test/johnson/conversions/callable_test.rb +34 -0
  78. data/test/johnson/conversions/file_test.rb +15 -0
  79. data/test/johnson/conversions/nil_test.rb +20 -0
  80. data/test/johnson/conversions/number_test.rb +34 -0
  81. data/test/johnson/conversions/regexp_test.rb +24 -0
  82. data/test/johnson/conversions/string_test.rb +26 -0
  83. data/test/johnson/conversions/struct_test.rb +15 -0
  84. data/test/johnson/conversions/symbol_test.rb +19 -0
  85. data/test/johnson/conversions/thread_test.rb +24 -0
  86. data/test/johnson/error_test.rb +9 -0
  87. data/test/johnson/extensions_test.rb +56 -0
  88. data/test/johnson/nodes/array_literal_test.rb +57 -0
  89. data/test/johnson/nodes/array_node_test.rb +26 -0
  90. data/test/johnson/nodes/binary_node_test.rb +61 -0
  91. data/test/johnson/nodes/bracket_access_test.rb +16 -0
  92. data/test/johnson/nodes/delete_test.rb +11 -0
  93. data/test/johnson/nodes/do_while_test.rb +12 -0
  94. data/test/johnson/nodes/dot_accessor_test.rb +15 -0
  95. data/test/johnson/nodes/export_test.rb +9 -0
  96. data/test/johnson/nodes/for_test.rb +54 -0
  97. data/test/johnson/nodes/function_test.rb +71 -0
  98. data/test/johnson/nodes/if_test.rb +41 -0
  99. data/test/johnson/nodes/import_test.rb +13 -0
  100. data/test/johnson/nodes/label_test.rb +19 -0
  101. data/test/johnson/nodes/object_literal_test.rb +110 -0
  102. data/test/johnson/nodes/return_test.rb +16 -0
  103. data/test/johnson/nodes/semi_test.rb +8 -0
  104. data/test/johnson/nodes/switch_test.rb +55 -0
  105. data/test/johnson/nodes/ternary_test.rb +25 -0
  106. data/test/johnson/nodes/throw_test.rb +9 -0
  107. data/test/johnson/nodes/try_node_test.rb +59 -0
  108. data/test/johnson/nodes/typeof_test.rb +11 -0
  109. data/test/johnson/nodes/unary_node_test.rb +23 -0
  110. data/test/johnson/nodes/void_test.rb +11 -0
  111. data/test/johnson/nodes/while_test.rb +26 -0
  112. data/test/johnson/nodes/with_test.rb +10 -0
  113. data/test/johnson/prelude_test.rb +56 -0
  114. data/test/johnson/runtime_test.rb +46 -0
  115. data/test/johnson/spidermonkey/context_test.rb +21 -0
  116. data/test/johnson/spidermonkey/immutable_node_test.rb +34 -0
  117. data/test/johnson/spidermonkey/js_land_proxy_test.rb +236 -0
  118. data/test/johnson/spidermonkey/ruby_land_proxy_test.rb +225 -0
  119. data/test/johnson/spidermonkey/runtime_test.rb +17 -0
  120. data/test/johnson/version_test.rb +13 -0
  121. data/test/johnson/visitors/dot_visitor_test.rb +39 -0
  122. data/test/johnson/visitors/enumerating_visitor_test.rb +12 -0
  123. data/test/johnson_test.rb +16 -0
  124. data/test/jquery_units/test.js +27 -0
  125. data/test/jquery_units/test_helper.js +197 -0
  126. data/test/jquery_units/units/ajax.js +795 -0
  127. data/test/jquery_units/units/core.js +1563 -0
  128. data/test/jquery_units/units/event.js +299 -0
  129. data/test/jquery_units/units/fx.js +427 -0
  130. data/test/jquery_units/units/offset.js +112 -0
  131. data/test/jquery_units/units/selector.js +224 -0
  132. data/test/jspec/helper.js +7 -0
  133. data/test/jspec/jspec.js +192 -0
  134. data/test/jspec/simple_spec.js +68 -0
  135. data/test/parser_test.rb +276 -0
  136. data/todo/.keep +0 -0
  137. metadata +501 -0
@@ -0,0 +1,68 @@
1
+ Johnson.require("test/jspec/helper");
2
+
3
+ var setup = function() {
4
+ var fileLocation = "file://" + Ruby.File.expand_path(Ruby.Dir.pwd()) + "/test/assets/index.html";
5
+ window.location = fileLocation;
6
+ Johnson.waitForThreads();
7
+ }
8
+
9
+ setup();
10
+
11
+ jspec.describe("browser emulator", function() {
12
+
13
+ it("can set its location", function() {
14
+ var uriLocation = "file:" + Ruby.File.expand_path(Ruby.Dir.pwd()) + "/test/assets/index.html";
15
+ expect(window.location).to("==", uriLocation);
16
+ });
17
+
18
+ it("makes the document node a DOMDocument element", function() {
19
+ // setup();
20
+ expect(document).to("have_constructor", DOMDocument);
21
+ });
22
+
23
+ it("makes the document body a DOMNode", function() {
24
+ // setup();
25
+ expect(document.body).to("have_constructor", DOMNode);
26
+ })
27
+
28
+ it("makes childNodes a DOMNodeList", function() {
29
+ // setup();
30
+ expect(document.body.childNodes).to("have_constructor", DOMNodeList);
31
+ })
32
+
33
+ it("knows how to get an element by ID and get its correct tagName", function() {
34
+ // setup();
35
+ expect(document.getElementById('test').tagName).to("==", "HR");
36
+ })
37
+
38
+ it("sets the constructor of elements gotten via getElementsByTagName to DOMNode", function() {
39
+ // setup();
40
+ expect(document.getElementsByTagName("hr")[0]).to("have_constructor", DOMNode);
41
+ })
42
+
43
+ it("knows how to get the right tagName from elements gotten via getElementsByTagName", function() {
44
+ // setup();
45
+ expect(document.getElementsByTagName("hr")[0].tagName).to("==", "HR");
46
+ })
47
+
48
+ });
49
+
50
+ jspec.describe("jQuery Support", function() {
51
+ it("loads jQuery", function() {
52
+ Johnson.require("johnson/browser/jquery");
53
+ expect($).to("==", jQuery);
54
+ });
55
+
56
+ it("gets elements with $(tag)", function() {
57
+ expect($("hr").length).to("==", 2);
58
+ });
59
+ });
60
+
61
+ Johnson.require("johnson/browser/jquery");
62
+ jspec.describe("The jQuery file", function() {
63
+ it("loads the jQuery HTML files", function() {
64
+ window.location = "file:" + Ruby.File.expand_path(Ruby.Dir.pwd()) + "/test/assets/jquery_test.html";
65
+ Johnson.waitForThreads();
66
+ expect($("h1").length).to("==", 1);
67
+ });
68
+ });
@@ -0,0 +1,276 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), "helper"))
2
+
3
+ require 'stringio'
4
+ class ParserTest < Test::Unit::TestCase
5
+ include Johnson::Nodes
6
+ def setup
7
+ @parser = Johnson::Parser
8
+ end
9
+
10
+ def test_parser_init
11
+ assert @parser
12
+ tree = @parser.parse(StringIO.new(""))
13
+ assert_kind_of SourceElements, tree
14
+ assert_equal 0, tree.line
15
+ assert_equal 0, tree.column
16
+ assert_sexp([], tree)
17
+ end
18
+
19
+ def test_exception_raised
20
+ assert_raises(Johnson::Parser::SyntaxError) {
21
+ @parser.parse('if(')
22
+ }
23
+ end
24
+
25
+ def test_exception_has_info
26
+ begin
27
+ @parser.parse('if(')
28
+ rescue Johnson::Parser::SyntaxError => ex
29
+ assert_equal(1, ex.line_number)
30
+ assert_equal('', ex.file_name)
31
+ assert_equal('syntax error', ex.message)
32
+ end
33
+ end
34
+
35
+ def test_exception_has_filename
36
+ begin
37
+ @parser.parse('if(', 'test.js')
38
+ rescue Johnson::Parser::SyntaxError => ex
39
+ assert_equal(1, ex.line_number)
40
+ assert_equal('test.js', ex.file_name)
41
+ assert_equal('syntax error', ex.message)
42
+ end
43
+ end
44
+
45
+ def test_exception_has_linenum
46
+ begin
47
+ @parser.parse('if(', 'test.js', 10)
48
+ rescue Johnson::Parser::SyntaxError => ex
49
+ assert_equal(10, ex.line_number)
50
+ assert_equal('test.js', ex.file_name)
51
+ assert_equal('syntax error', ex.message)
52
+ end
53
+ end
54
+
55
+ def test_variable_declaration_no_init
56
+ assert_sexp(
57
+ [[:var, [[:name, 'foo']]]],
58
+ @parser.parse('var foo;')
59
+ )
60
+ assert_ecma('var foo;', @parser.parse('var foo;'))
61
+ end
62
+
63
+ def test_new_foo
64
+ assert_sexp([[:var, [[:assign, [:name, "a"], [:new, [[:name, "foo"]]]]]]],
65
+ @parser.parse('var a = new foo;'))
66
+ assert_sexp([[:new, [[:name, "foo"]]]],
67
+ @parser.parse('new foo;'))
68
+ end
69
+
70
+ def test_function_call
71
+ assert_sexp([[:bracket_access,
72
+ [:function_call, [[:name, "bar"]]],
73
+ [:lit, 1]]],
74
+ @parser.parse('bar()[1];'))
75
+ assert_ecma('bar()[1];', @parser.parse('bar()[1]'))
76
+ end
77
+
78
+ def test_postfix_inc
79
+ assert_sexp([[:postfix_inc, [:name, "x"]]],
80
+ @parser.parse('x++;'))
81
+ assert_ecma('x++;', @parser.parse('x++;'))
82
+ assert_sexp([[:postfix_inc, [:dot_accessor, [:name, "x"], [:name, "foo"]]]],
83
+ @parser.parse('foo.x++;'))
84
+ assert_ecma('foo.x++;', @parser.parse('foo.x++;'))
85
+ assert_sexp([[:postfix_inc, [:bracket_access, [:name, "x"], [:lit, 1]]]],
86
+ @parser.parse('x[1]++;'))
87
+ assert_ecma('x[1]++;', @parser.parse('x[1]++;'))
88
+ end
89
+
90
+ def test_prefix_inc
91
+ assert_sexp([[:prefix_inc, [:name, "x"]]],
92
+ @parser.parse('++x;'))
93
+ assert_ecma('++x;', @parser.parse('++x;'))
94
+ assert_sexp([[:prefix_inc, [:dot_accessor, [:name, "x"], [:name, "foo"]]]],
95
+ @parser.parse('++foo.x;'))
96
+ assert_ecma('++foo.x;', @parser.parse('++foo.x;'))
97
+ assert_sexp([[:prefix_inc, [:bracket_access, [:name, "x"], [:lit, 1]]]],
98
+ @parser.parse('++x[1];'))
99
+ assert_ecma('++x[1];', @parser.parse('++x[1];'))
100
+ end
101
+
102
+ def test_postfix_dec
103
+ assert_sexp([[:postfix_dec, [:name, "x"]]],
104
+ @parser.parse('x--;'))
105
+ assert_ecma('x--;', @parser.parse('x--;'))
106
+ assert_sexp([[:postfix_dec, [:dot_accessor, [:name, "x"], [:name, "foo"]]]],
107
+ @parser.parse('foo.x--;'))
108
+ assert_ecma('foo.x--;', @parser.parse('foo.x--;'))
109
+ assert_sexp([[:postfix_dec, [:bracket_access, [:name, "x"], [:lit, 1]]]],
110
+ @parser.parse('x[1]--;'))
111
+ assert_ecma('x[1]--;', @parser.parse('x[1]--;'))
112
+ end
113
+
114
+ def test_prefix_dec
115
+ assert_sexp([[:prefix_dec, [:name, "x"]]],
116
+ @parser.parse('--x;'))
117
+ assert_ecma('--x;', @parser.parse('--x;'))
118
+ assert_sexp([[:prefix_dec, [:dot_accessor, [:name, "x"], [:name, "foo"]]]],
119
+ @parser.parse('--foo.x;'))
120
+ assert_ecma('--foo.x;', @parser.parse('--foo.x;'))
121
+ assert_sexp([[:prefix_dec, [:bracket_access, [:name, "x"], [:lit, 1]]]],
122
+ @parser.parse('--x[1];'))
123
+ assert_ecma('--x[1];', @parser.parse('--x[1];'))
124
+ end
125
+
126
+ def test_expr_comma
127
+ assert_sexp([[:comma,
128
+ [[:op_equal, [:name, 'i'], [:lit, 10]],
129
+ [:op_equal, [:name, 'j'], [:lit, 11]]]]],
130
+ @parser.parse('i = 10, j = 11;')
131
+ )
132
+ assert_ecma('i = 10, j = 11;', @parser.parse('i = 10, j = 11'))
133
+ end
134
+
135
+ def test_primary_expr_paren
136
+ assert_sexp(
137
+ [[:var,
138
+ [[:assign, [:name, "a"], [:paren, [:lit, 10]]]]
139
+ ]],
140
+ @parser.parse('var a = (10);'))
141
+ assert_ecma('var a = (10);', @parser.parse('var a = (10);'))
142
+ end
143
+
144
+ def test_parser_var_ints
145
+ assert @parser
146
+ tree = @parser.parse(StringIO.new("var foo = 10, bar = 1;"))
147
+ assert_kind_of SourceElements, tree
148
+ assert_kind_of VarStatement, tree.value.first
149
+ assert_sexp(
150
+ [[:var,
151
+ [
152
+ [:assign, [:name, "foo"], [:lit, 10]],
153
+ [:assign, [:name, "bar"], [:lit, 1]],
154
+ ]]],
155
+ tree
156
+ )
157
+ assert_ecma('var foo = 10, bar = 1;',
158
+ @parser.parse('var foo = 10, bar = 1'))
159
+ end
160
+
161
+ def test_parser_var_string_lit
162
+ assert @parser
163
+ tree = @parser.parse(StringIO.new("var foo = 'hello world';"))
164
+ assert_sexp(
165
+ [[:var,
166
+ [
167
+ [:assign, [:name, "foo"], [:str, 'hello world']],
168
+ ]]],
169
+ tree
170
+ )
171
+ assert_ecma('var foo = "hello world";',
172
+ @parser.parse('var foo = "hello world"'))
173
+ end
174
+
175
+ def test_accessor_as_square_brace
176
+ assert_ecma("foo['hello-world'];",
177
+ @parser.parse("foo['hello-world']"))
178
+ end
179
+
180
+ def test_paren_around_function
181
+ assert_ecma("(function() { }).foo();",
182
+ @parser.parse('(function() { }).foo()'))
183
+ assert_ecma("(function() { })();",
184
+ @parser.parse('(function() { })()'))
185
+ end
186
+
187
+ def test_parser_var_nil_lit
188
+ assert @parser
189
+ tree = @parser.parse(StringIO.new("var foo = null;"))
190
+ assert_sexp(
191
+ [[:var,
192
+ [
193
+ [:assign, [:name, "foo"], [:nil]],
194
+ ]]],
195
+ tree
196
+ )
197
+ assert_ecma('var foo = null;', @parser.parse('var foo = null'))
198
+ end
199
+
200
+ def test_parser_var_true_lit
201
+ assert @parser
202
+ tree = @parser.parse(StringIO.new("var foo = true;"))
203
+ assert_sexp(
204
+ [[:var,
205
+ [
206
+ [:assign, [:name, "foo"], [:true]],
207
+ ]]],
208
+ tree
209
+ )
210
+ assert_ecma('var foo = true;', @parser.parse('var foo = true'))
211
+ end
212
+
213
+ def test_parser_var_false_lit
214
+ assert @parser
215
+ tree = @parser.parse(StringIO.new("var foo = false;"))
216
+ assert_sexp(
217
+ [[:var,
218
+ [
219
+ [:assign, [:name, "foo"], [:false]],
220
+ ]]],
221
+ tree
222
+ )
223
+ assert_ecma('var foo = false;', @parser.parse('var foo = false'))
224
+ end
225
+
226
+ def test_parser_var_this_lit
227
+ assert @parser
228
+ tree = @parser.parse(StringIO.new("var foo = this;"))
229
+ assert_sexp(
230
+ [[:var,
231
+ [
232
+ [:assign, [:name, "foo"], [:this]],
233
+ ]]],
234
+ tree
235
+ )
236
+ assert_ecma('var foo = this;', @parser.parse('var foo = this'))
237
+ end
238
+
239
+ def test_parser_var_regex_lit
240
+ assert @parser
241
+ tree = @parser.parse(StringIO.new("var foo = /abc/;"))
242
+ assert_sexp(
243
+ [[:var,
244
+ [
245
+ [:assign, [:name, "foo"], [:lit, "/abc/"]],
246
+ ]]],
247
+ tree
248
+ )
249
+ assert_ecma('var foo = /abc/;', @parser.parse('var foo = /abc/'))
250
+ end
251
+
252
+ def test_parser_var_float
253
+ assert @parser
254
+ tree = @parser.parse(StringIO.new("var foo = 10, bar = 1.1;"))
255
+ assert_kind_of SourceElements, tree
256
+ assert_kind_of VarStatement, tree.value.first
257
+ assert_sexp(
258
+ [[:var,
259
+ [
260
+ [:assign, [:name, "foo"], [:lit, 10]],
261
+ [:assign, [:name, "bar"], [:lit, 1.1]],
262
+ ]]],
263
+ tree
264
+ )
265
+ assert_ecma('var foo = 10, bar = 1.1;',
266
+ @parser.parse('var foo = 10, bar = 1.1'))
267
+ end
268
+
269
+ def assert_sexp(expected, node)
270
+ assert_equal(expected, node.to_sexp)
271
+ end
272
+
273
+ def assert_ecma(expected, node)
274
+ assert_equal(expected, node.to_ecma)
275
+ end
276
+ end
data/todo/.keep ADDED
File without changes
metadata ADDED
@@ -0,0 +1,501 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jbarnette-johnson
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0.200806240111
5
+ platform: ruby
6
+ authors:
7
+ - John Barnette
8
+ - Aaron Patterson
9
+ - Yehuda Katz
10
+ - Matthew Draper
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+
15
+ date: 2008-06-24 00:00:00 -07:00
16
+ default_executable: johnson
17
+ dependencies:
18
+ - !ruby/object:Gem::Dependency
19
+ name: rake
20
+ version_requirement:
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: "0"
26
+ version:
27
+ description: Johnson wraps JavaScript in a loving Ruby embrace.
28
+ email: johnson-talk@googlegroups.com
29
+ executables:
30
+ - johnson
31
+ extensions:
32
+ - Rakefile
33
+ extra_rdoc_files:
34
+ - README.rdoc
35
+ - cross-compile.txt
36
+ files:
37
+ - CHANGELOG
38
+ - MANIFEST
39
+ - MINGW32.mk
40
+ - README.rdoc
41
+ - Rakefile
42
+ - bin/johnson
43
+ - cross-compile.txt
44
+ - ext/spidermonkey/context.c
45
+ - ext/spidermonkey/context.h
46
+ - ext/spidermonkey/conversions.c
47
+ - ext/spidermonkey/conversions.h
48
+ - ext/spidermonkey/debugger.c
49
+ - ext/spidermonkey/debugger.h
50
+ - ext/spidermonkey/extconf.rb
51
+ - ext/spidermonkey/extensions.c
52
+ - ext/spidermonkey/extensions.h
53
+ - ext/spidermonkey/global.c
54
+ - ext/spidermonkey/global.h
55
+ - ext/spidermonkey/idhash.c
56
+ - ext/spidermonkey/idhash.h
57
+ - ext/spidermonkey/immutable_node.c
58
+ - ext/spidermonkey/immutable_node.c.erb
59
+ - ext/spidermonkey/immutable_node.h
60
+ - ext/spidermonkey/jroot.h
61
+ - ext/spidermonkey/js_land_proxy.c
62
+ - ext/spidermonkey/js_land_proxy.h
63
+ - ext/spidermonkey/ruby_land_proxy.c
64
+ - ext/spidermonkey/ruby_land_proxy.h
65
+ - ext/spidermonkey/runtime.c
66
+ - ext/spidermonkey/runtime.h
67
+ - ext/spidermonkey/spidermonkey.c
68
+ - ext/spidermonkey/spidermonkey.h
69
+ - js/johnson/browser.js
70
+ - js/johnson/browser/env.js
71
+ - js/johnson/browser/jquery.js
72
+ - js/johnson/browser/xmlsax.js
73
+ - js/johnson/browser/xmlw3cdom.js
74
+ - js/johnson/cli.js
75
+ - js/johnson/prelude.js
76
+ - js/johnson/template.js
77
+ - lib/hoe.rb
78
+ - lib/johnson.rb
79
+ - lib/johnson/cli.rb
80
+ - lib/johnson/cli/options.rb
81
+ - lib/johnson/error.rb
82
+ - lib/johnson/nodes.rb
83
+ - lib/johnson/nodes/binary_node.rb
84
+ - lib/johnson/nodes/for.rb
85
+ - lib/johnson/nodes/for_in.rb
86
+ - lib/johnson/nodes/function.rb
87
+ - lib/johnson/nodes/list.rb
88
+ - lib/johnson/nodes/node.rb
89
+ - lib/johnson/nodes/ternary_node.rb
90
+ - lib/johnson/parser.rb
91
+ - lib/johnson/parser/syntax_error.rb
92
+ - lib/johnson/runtime.rb
93
+ - lib/johnson/spidermonkey/context.rb
94
+ - lib/johnson/spidermonkey/debugger.rb
95
+ - lib/johnson/spidermonkey/immutable_node.rb
96
+ - lib/johnson/spidermonkey/js_land_proxy.rb
97
+ - lib/johnson/spidermonkey/mutable_tree_visitor.rb
98
+ - lib/johnson/spidermonkey/ruby_land_proxy.rb
99
+ - lib/johnson/spidermonkey/runtime.rb
100
+ - lib/johnson/version.rb
101
+ - lib/johnson/visitable.rb
102
+ - lib/johnson/visitors.rb
103
+ - lib/johnson/visitors/dot_visitor.rb
104
+ - lib/johnson/visitors/ecma_visitor.rb
105
+ - lib/johnson/visitors/enumerating_visitor.rb
106
+ - lib/johnson/visitors/sexp_visitor.rb
107
+ - lib/rails/init.rb
108
+ - test/assets/index.html
109
+ - test/assets/jquery_test.html
110
+ - test/helper.rb
111
+ - test/johnson/browser_test.rb
112
+ - test/johnson/conversions/array_test.rb
113
+ - test/johnson/conversions/boolean_test.rb
114
+ - test/johnson/conversions/callable_test.rb
115
+ - test/johnson/conversions/file_test.rb
116
+ - test/johnson/conversions/nil_test.rb
117
+ - test/johnson/conversions/number_test.rb
118
+ - test/johnson/conversions/regexp_test.rb
119
+ - test/johnson/conversions/string_test.rb
120
+ - test/johnson/conversions/struct_test.rb
121
+ - test/johnson/conversions/symbol_test.rb
122
+ - test/johnson/conversions/thread_test.rb
123
+ - test/johnson/error_test.rb
124
+ - test/johnson/extensions_test.rb
125
+ - test/johnson/nodes/array_literal_test.rb
126
+ - test/johnson/nodes/array_node_test.rb
127
+ - test/johnson/nodes/binary_node_test.rb
128
+ - test/johnson/nodes/bracket_access_test.rb
129
+ - test/johnson/nodes/delete_test.rb
130
+ - test/johnson/nodes/do_while_test.rb
131
+ - test/johnson/nodes/dot_accessor_test.rb
132
+ - test/johnson/nodes/export_test.rb
133
+ - test/johnson/nodes/for_test.rb
134
+ - test/johnson/nodes/function_test.rb
135
+ - test/johnson/nodes/if_test.rb
136
+ - test/johnson/nodes/import_test.rb
137
+ - test/johnson/nodes/label_test.rb
138
+ - test/johnson/nodes/object_literal_test.rb
139
+ - test/johnson/nodes/return_test.rb
140
+ - test/johnson/nodes/semi_test.rb
141
+ - test/johnson/nodes/switch_test.rb
142
+ - test/johnson/nodes/ternary_test.rb
143
+ - test/johnson/nodes/throw_test.rb
144
+ - test/johnson/nodes/try_node_test.rb
145
+ - test/johnson/nodes/typeof_test.rb
146
+ - test/johnson/nodes/unary_node_test.rb
147
+ - test/johnson/nodes/void_test.rb
148
+ - test/johnson/nodes/while_test.rb
149
+ - test/johnson/nodes/with_test.rb
150
+ - test/johnson/prelude_test.rb
151
+ - test/johnson/runtime_test.rb
152
+ - test/johnson/spidermonkey/context_test.rb
153
+ - test/johnson/spidermonkey/immutable_node_test.rb
154
+ - test/johnson/spidermonkey/js_land_proxy_test.rb
155
+ - test/johnson/spidermonkey/ruby_land_proxy_test.rb
156
+ - test/johnson/spidermonkey/runtime_test.rb
157
+ - test/johnson/version_test.rb
158
+ - test/johnson/visitors/dot_visitor_test.rb
159
+ - test/johnson/visitors/enumerating_visitor_test.rb
160
+ - test/johnson_test.rb
161
+ - test/jquery_units/test.js
162
+ - test/jquery_units/test_helper.js
163
+ - test/jquery_units/units/ajax.js
164
+ - test/jquery_units/units/core.js
165
+ - test/jquery_units/units/event.js
166
+ - test/jquery_units/units/fx.js
167
+ - test/jquery_units/units/offset.js
168
+ - test/jquery_units/units/selector.js
169
+ - test/jspec/helper.js
170
+ - test/jspec/jspec.js
171
+ - test/jspec/simple_spec.js
172
+ - test/parser_test.rb
173
+ - todo/.keep
174
+ - vendor/spidermonkey/.cvsignore
175
+ - vendor/spidermonkey/Makefile.in
176
+ - vendor/spidermonkey/Makefile.ref
177
+ - vendor/spidermonkey/README.html
178
+ - vendor/spidermonkey/SpiderMonkey.rsp
179
+ - vendor/spidermonkey/Y.js
180
+ - vendor/spidermonkey/build.mk
181
+ - vendor/spidermonkey/config.mk
182
+ - vendor/spidermonkey/config/AIX4.1.mk
183
+ - vendor/spidermonkey/config/AIX4.2.mk
184
+ - vendor/spidermonkey/config/AIX4.3.mk
185
+ - vendor/spidermonkey/config/Darwin.mk
186
+ - vendor/spidermonkey/config/Darwin1.3.mk
187
+ - vendor/spidermonkey/config/Darwin1.4.mk
188
+ - vendor/spidermonkey/config/Darwin5.2.mk
189
+ - vendor/spidermonkey/config/Darwin5.3.mk
190
+ - vendor/spidermonkey/config/HP-UXB.10.10.mk
191
+ - vendor/spidermonkey/config/HP-UXB.10.20.mk
192
+ - vendor/spidermonkey/config/HP-UXB.11.00.mk
193
+ - vendor/spidermonkey/config/IRIX.mk
194
+ - vendor/spidermonkey/config/IRIX5.3.mk
195
+ - vendor/spidermonkey/config/IRIX6.1.mk
196
+ - vendor/spidermonkey/config/IRIX6.2.mk
197
+ - vendor/spidermonkey/config/IRIX6.3.mk
198
+ - vendor/spidermonkey/config/IRIX6.5.mk
199
+ - vendor/spidermonkey/config/Linux_All.mk
200
+ - vendor/spidermonkey/config/Mac_OS10.0.mk
201
+ - vendor/spidermonkey/config/OSF1V4.0.mk
202
+ - vendor/spidermonkey/config/OSF1V5.0.mk
203
+ - vendor/spidermonkey/config/SunOS4.1.4.mk
204
+ - vendor/spidermonkey/config/SunOS5.10.mk
205
+ - vendor/spidermonkey/config/SunOS5.3.mk
206
+ - vendor/spidermonkey/config/SunOS5.4.mk
207
+ - vendor/spidermonkey/config/SunOS5.5.1.mk
208
+ - vendor/spidermonkey/config/SunOS5.5.mk
209
+ - vendor/spidermonkey/config/SunOS5.6.mk
210
+ - vendor/spidermonkey/config/SunOS5.7.mk
211
+ - vendor/spidermonkey/config/SunOS5.8.mk
212
+ - vendor/spidermonkey/config/SunOS5.9.mk
213
+ - vendor/spidermonkey/config/WINNT4.0.mk
214
+ - vendor/spidermonkey/config/WINNT5.0.mk
215
+ - vendor/spidermonkey/config/WINNT5.1.mk
216
+ - vendor/spidermonkey/config/WINNT5.2.mk
217
+ - vendor/spidermonkey/config/WINNT6.0.mk
218
+ - vendor/spidermonkey/config/dgux.mk
219
+ - vendor/spidermonkey/editline/Makefile.ref
220
+ - vendor/spidermonkey/editline/README
221
+ - vendor/spidermonkey/editline/editline.3
222
+ - vendor/spidermonkey/editline/editline.c
223
+ - vendor/spidermonkey/editline/editline.h
224
+ - vendor/spidermonkey/editline/sysunix.c
225
+ - vendor/spidermonkey/editline/unix.h
226
+ - vendor/spidermonkey/fdlibm/.cvsignore
227
+ - vendor/spidermonkey/fdlibm/Makefile.in
228
+ - vendor/spidermonkey/fdlibm/Makefile.ref
229
+ - vendor/spidermonkey/fdlibm/e_acos.c
230
+ - vendor/spidermonkey/fdlibm/e_acosh.c
231
+ - vendor/spidermonkey/fdlibm/e_asin.c
232
+ - vendor/spidermonkey/fdlibm/e_atan2.c
233
+ - vendor/spidermonkey/fdlibm/e_atanh.c
234
+ - vendor/spidermonkey/fdlibm/e_cosh.c
235
+ - vendor/spidermonkey/fdlibm/e_exp.c
236
+ - vendor/spidermonkey/fdlibm/e_fmod.c
237
+ - vendor/spidermonkey/fdlibm/e_gamma.c
238
+ - vendor/spidermonkey/fdlibm/e_gamma_r.c
239
+ - vendor/spidermonkey/fdlibm/e_hypot.c
240
+ - vendor/spidermonkey/fdlibm/e_j0.c
241
+ - vendor/spidermonkey/fdlibm/e_j1.c
242
+ - vendor/spidermonkey/fdlibm/e_jn.c
243
+ - vendor/spidermonkey/fdlibm/e_lgamma.c
244
+ - vendor/spidermonkey/fdlibm/e_lgamma_r.c
245
+ - vendor/spidermonkey/fdlibm/e_log.c
246
+ - vendor/spidermonkey/fdlibm/e_log10.c
247
+ - vendor/spidermonkey/fdlibm/e_pow.c
248
+ - vendor/spidermonkey/fdlibm/e_rem_pio2.c
249
+ - vendor/spidermonkey/fdlibm/e_remainder.c
250
+ - vendor/spidermonkey/fdlibm/e_scalb.c
251
+ - vendor/spidermonkey/fdlibm/e_sinh.c
252
+ - vendor/spidermonkey/fdlibm/e_sqrt.c
253
+ - vendor/spidermonkey/fdlibm/fdlibm.h
254
+ - vendor/spidermonkey/fdlibm/fdlibm.mak
255
+ - vendor/spidermonkey/fdlibm/fdlibm.mdp
256
+ - vendor/spidermonkey/fdlibm/k_cos.c
257
+ - vendor/spidermonkey/fdlibm/k_rem_pio2.c
258
+ - vendor/spidermonkey/fdlibm/k_sin.c
259
+ - vendor/spidermonkey/fdlibm/k_standard.c
260
+ - vendor/spidermonkey/fdlibm/k_tan.c
261
+ - vendor/spidermonkey/fdlibm/s_asinh.c
262
+ - vendor/spidermonkey/fdlibm/s_atan.c
263
+ - vendor/spidermonkey/fdlibm/s_cbrt.c
264
+ - vendor/spidermonkey/fdlibm/s_ceil.c
265
+ - vendor/spidermonkey/fdlibm/s_copysign.c
266
+ - vendor/spidermonkey/fdlibm/s_cos.c
267
+ - vendor/spidermonkey/fdlibm/s_erf.c
268
+ - vendor/spidermonkey/fdlibm/s_expm1.c
269
+ - vendor/spidermonkey/fdlibm/s_fabs.c
270
+ - vendor/spidermonkey/fdlibm/s_finite.c
271
+ - vendor/spidermonkey/fdlibm/s_floor.c
272
+ - vendor/spidermonkey/fdlibm/s_frexp.c
273
+ - vendor/spidermonkey/fdlibm/s_ilogb.c
274
+ - vendor/spidermonkey/fdlibm/s_isnan.c
275
+ - vendor/spidermonkey/fdlibm/s_ldexp.c
276
+ - vendor/spidermonkey/fdlibm/s_lib_version.c
277
+ - vendor/spidermonkey/fdlibm/s_log1p.c
278
+ - vendor/spidermonkey/fdlibm/s_logb.c
279
+ - vendor/spidermonkey/fdlibm/s_matherr.c
280
+ - vendor/spidermonkey/fdlibm/s_modf.c
281
+ - vendor/spidermonkey/fdlibm/s_nextafter.c
282
+ - vendor/spidermonkey/fdlibm/s_rint.c
283
+ - vendor/spidermonkey/fdlibm/s_scalbn.c
284
+ - vendor/spidermonkey/fdlibm/s_signgam.c
285
+ - vendor/spidermonkey/fdlibm/s_significand.c
286
+ - vendor/spidermonkey/fdlibm/s_sin.c
287
+ - vendor/spidermonkey/fdlibm/s_tan.c
288
+ - vendor/spidermonkey/fdlibm/s_tanh.c
289
+ - vendor/spidermonkey/fdlibm/w_acos.c
290
+ - vendor/spidermonkey/fdlibm/w_acosh.c
291
+ - vendor/spidermonkey/fdlibm/w_asin.c
292
+ - vendor/spidermonkey/fdlibm/w_atan2.c
293
+ - vendor/spidermonkey/fdlibm/w_atanh.c
294
+ - vendor/spidermonkey/fdlibm/w_cosh.c
295
+ - vendor/spidermonkey/fdlibm/w_exp.c
296
+ - vendor/spidermonkey/fdlibm/w_fmod.c
297
+ - vendor/spidermonkey/fdlibm/w_gamma.c
298
+ - vendor/spidermonkey/fdlibm/w_gamma_r.c
299
+ - vendor/spidermonkey/fdlibm/w_hypot.c
300
+ - vendor/spidermonkey/fdlibm/w_j0.c
301
+ - vendor/spidermonkey/fdlibm/w_j1.c
302
+ - vendor/spidermonkey/fdlibm/w_jn.c
303
+ - vendor/spidermonkey/fdlibm/w_lgamma.c
304
+ - vendor/spidermonkey/fdlibm/w_lgamma_r.c
305
+ - vendor/spidermonkey/fdlibm/w_log.c
306
+ - vendor/spidermonkey/fdlibm/w_log10.c
307
+ - vendor/spidermonkey/fdlibm/w_pow.c
308
+ - vendor/spidermonkey/fdlibm/w_remainder.c
309
+ - vendor/spidermonkey/fdlibm/w_scalb.c
310
+ - vendor/spidermonkey/fdlibm/w_sinh.c
311
+ - vendor/spidermonkey/fdlibm/w_sqrt.c
312
+ - vendor/spidermonkey/javascript-trace.d
313
+ - vendor/spidermonkey/js.c
314
+ - vendor/spidermonkey/js.mak
315
+ - vendor/spidermonkey/js.mdp
316
+ - vendor/spidermonkey/js.msg
317
+ - vendor/spidermonkey/js.pkg
318
+ - vendor/spidermonkey/js3240.rc
319
+ - vendor/spidermonkey/jsOS240.def
320
+ - vendor/spidermonkey/jsapi.c
321
+ - vendor/spidermonkey/jsapi.h
322
+ - vendor/spidermonkey/jsarena.c
323
+ - vendor/spidermonkey/jsarena.h
324
+ - vendor/spidermonkey/jsarray.c
325
+ - vendor/spidermonkey/jsarray.h
326
+ - vendor/spidermonkey/jsatom.c
327
+ - vendor/spidermonkey/jsatom.h
328
+ - vendor/spidermonkey/jsbit.h
329
+ - vendor/spidermonkey/jsbool.c
330
+ - vendor/spidermonkey/jsbool.h
331
+ - vendor/spidermonkey/jsclist.h
332
+ - vendor/spidermonkey/jscntxt.c
333
+ - vendor/spidermonkey/jscntxt.h
334
+ - vendor/spidermonkey/jscompat.h
335
+ - vendor/spidermonkey/jsconfig.h
336
+ - vendor/spidermonkey/jsconfig.mk
337
+ - vendor/spidermonkey/jscpucfg.c
338
+ - vendor/spidermonkey/jscpucfg.h
339
+ - vendor/spidermonkey/jsdate.c
340
+ - vendor/spidermonkey/jsdate.h
341
+ - vendor/spidermonkey/jsdbgapi.c
342
+ - vendor/spidermonkey/jsdbgapi.h
343
+ - vendor/spidermonkey/jsdhash.c
344
+ - vendor/spidermonkey/jsdhash.h
345
+ - vendor/spidermonkey/jsdtoa.c
346
+ - vendor/spidermonkey/jsdtoa.h
347
+ - vendor/spidermonkey/jsdtracef.c
348
+ - vendor/spidermonkey/jsdtracef.h
349
+ - vendor/spidermonkey/jsemit.c
350
+ - vendor/spidermonkey/jsemit.h
351
+ - vendor/spidermonkey/jsexn.c
352
+ - vendor/spidermonkey/jsexn.h
353
+ - vendor/spidermonkey/jsfile.c
354
+ - vendor/spidermonkey/jsfile.h
355
+ - vendor/spidermonkey/jsfile.msg
356
+ - vendor/spidermonkey/jsfun.c
357
+ - vendor/spidermonkey/jsfun.h
358
+ - vendor/spidermonkey/jsgc.c
359
+ - vendor/spidermonkey/jsgc.h
360
+ - vendor/spidermonkey/jshash.c
361
+ - vendor/spidermonkey/jshash.h
362
+ - vendor/spidermonkey/jsify.pl
363
+ - vendor/spidermonkey/jsinterp.c
364
+ - vendor/spidermonkey/jsinterp.h
365
+ - vendor/spidermonkey/jsinvoke.c
366
+ - vendor/spidermonkey/jsiter.c
367
+ - vendor/spidermonkey/jsiter.h
368
+ - vendor/spidermonkey/jskeyword.tbl
369
+ - vendor/spidermonkey/jskwgen.c
370
+ - vendor/spidermonkey/jslibmath.h
371
+ - vendor/spidermonkey/jslock.c
372
+ - vendor/spidermonkey/jslock.h
373
+ - vendor/spidermonkey/jslocko.asm
374
+ - vendor/spidermonkey/jslog2.c
375
+ - vendor/spidermonkey/jslong.c
376
+ - vendor/spidermonkey/jslong.h
377
+ - vendor/spidermonkey/jsmath.c
378
+ - vendor/spidermonkey/jsmath.h
379
+ - vendor/spidermonkey/jsnum.c
380
+ - vendor/spidermonkey/jsnum.h
381
+ - vendor/spidermonkey/jsobj.c
382
+ - vendor/spidermonkey/jsobj.h
383
+ - vendor/spidermonkey/jsopcode.c
384
+ - vendor/spidermonkey/jsopcode.h
385
+ - vendor/spidermonkey/jsopcode.tbl
386
+ - vendor/spidermonkey/jsotypes.h
387
+ - vendor/spidermonkey/jsparse.c
388
+ - vendor/spidermonkey/jsparse.h
389
+ - vendor/spidermonkey/jsprf.c
390
+ - vendor/spidermonkey/jsprf.h
391
+ - vendor/spidermonkey/jsproto.tbl
392
+ - vendor/spidermonkey/jsprvtd.h
393
+ - vendor/spidermonkey/jspubtd.h
394
+ - vendor/spidermonkey/jsregexp.c
395
+ - vendor/spidermonkey/jsregexp.h
396
+ - vendor/spidermonkey/jsreops.tbl
397
+ - vendor/spidermonkey/jsscan.c
398
+ - vendor/spidermonkey/jsscan.h
399
+ - vendor/spidermonkey/jsscope.c
400
+ - vendor/spidermonkey/jsscope.h
401
+ - vendor/spidermonkey/jsscript.c
402
+ - vendor/spidermonkey/jsscript.h
403
+ - vendor/spidermonkey/jsshell.msg
404
+ - vendor/spidermonkey/jsstddef.h
405
+ - vendor/spidermonkey/jsstr.c
406
+ - vendor/spidermonkey/jsstr.h
407
+ - vendor/spidermonkey/jstypes.h
408
+ - vendor/spidermonkey/jsutil.c
409
+ - vendor/spidermonkey/jsutil.h
410
+ - vendor/spidermonkey/jsxdrapi.c
411
+ - vendor/spidermonkey/jsxdrapi.h
412
+ - vendor/spidermonkey/jsxml.c
413
+ - vendor/spidermonkey/jsxml.h
414
+ - vendor/spidermonkey/lock_SunOS.s
415
+ - vendor/spidermonkey/perfect.js
416
+ - vendor/spidermonkey/plify_jsdhash.sed
417
+ - vendor/spidermonkey/prmjtime.c
418
+ - vendor/spidermonkey/prmjtime.h
419
+ - vendor/spidermonkey/resource.h
420
+ - vendor/spidermonkey/rules.mk
421
+ - vendor/spidermonkey/win32.order
422
+ has_rdoc: true
423
+ homepage: http://github.com/jbarnette/johnson/wikis
424
+ post_install_message:
425
+ rdoc_options:
426
+ - --main
427
+ - README.rdoc
428
+ require_paths:
429
+ - lib
430
+ - ext
431
+ required_ruby_version: !ruby/object:Gem::Requirement
432
+ requirements:
433
+ - - ">="
434
+ - !ruby/object:Gem::Version
435
+ version: "0"
436
+ version:
437
+ required_rubygems_version: !ruby/object:Gem::Requirement
438
+ requirements:
439
+ - - ">="
440
+ - !ruby/object:Gem::Version
441
+ version: "0"
442
+ version:
443
+ requirements: []
444
+
445
+ rubyforge_project: johnson
446
+ rubygems_version: 1.0.1
447
+ signing_key:
448
+ specification_version: 2
449
+ summary: Johnson wraps JavaScript in a loving Ruby embrace.
450
+ test_files:
451
+ - test/johnson/browser_test.rb
452
+ - test/johnson/conversions/array_test.rb
453
+ - test/johnson/conversions/boolean_test.rb
454
+ - test/johnson/conversions/callable_test.rb
455
+ - test/johnson/conversions/file_test.rb
456
+ - test/johnson/conversions/nil_test.rb
457
+ - test/johnson/conversions/number_test.rb
458
+ - test/johnson/conversions/regexp_test.rb
459
+ - test/johnson/conversions/string_test.rb
460
+ - test/johnson/conversions/struct_test.rb
461
+ - test/johnson/conversions/symbol_test.rb
462
+ - test/johnson/conversions/thread_test.rb
463
+ - test/johnson/error_test.rb
464
+ - test/johnson/extensions_test.rb
465
+ - test/johnson/nodes/array_literal_test.rb
466
+ - test/johnson/nodes/array_node_test.rb
467
+ - test/johnson/nodes/binary_node_test.rb
468
+ - test/johnson/nodes/bracket_access_test.rb
469
+ - test/johnson/nodes/delete_test.rb
470
+ - test/johnson/nodes/do_while_test.rb
471
+ - test/johnson/nodes/dot_accessor_test.rb
472
+ - test/johnson/nodes/export_test.rb
473
+ - test/johnson/nodes/for_test.rb
474
+ - test/johnson/nodes/function_test.rb
475
+ - test/johnson/nodes/if_test.rb
476
+ - test/johnson/nodes/import_test.rb
477
+ - test/johnson/nodes/label_test.rb
478
+ - test/johnson/nodes/object_literal_test.rb
479
+ - test/johnson/nodes/return_test.rb
480
+ - test/johnson/nodes/semi_test.rb
481
+ - test/johnson/nodes/switch_test.rb
482
+ - test/johnson/nodes/ternary_test.rb
483
+ - test/johnson/nodes/throw_test.rb
484
+ - test/johnson/nodes/try_node_test.rb
485
+ - test/johnson/nodes/typeof_test.rb
486
+ - test/johnson/nodes/unary_node_test.rb
487
+ - test/johnson/nodes/void_test.rb
488
+ - test/johnson/nodes/while_test.rb
489
+ - test/johnson/nodes/with_test.rb
490
+ - test/johnson/prelude_test.rb
491
+ - test/johnson/runtime_test.rb
492
+ - test/johnson/spidermonkey/context_test.rb
493
+ - test/johnson/spidermonkey/immutable_node_test.rb
494
+ - test/johnson/spidermonkey/js_land_proxy_test.rb
495
+ - test/johnson/spidermonkey/ruby_land_proxy_test.rb
496
+ - test/johnson/spidermonkey/runtime_test.rb
497
+ - test/johnson/version_test.rb
498
+ - test/johnson/visitors/dot_visitor_test.rb
499
+ - test/johnson/visitors/enumerating_visitor_test.rb
500
+ - test/johnson_test.rb
501
+ - test/parser_test.rb