opal-cj 0.7.0.beta1

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.
Files changed (470) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.gitmodules +27 -0
  4. data/.rspec +3 -0
  5. data/.spectator +2 -0
  6. data/.spectator-mspec +3 -0
  7. data/.travis.yml +45 -0
  8. data/CHANGELOG.md +406 -0
  9. data/CONTRIBUTING.md +41 -0
  10. data/Gemfile +27 -0
  11. data/Guardfile +77 -0
  12. data/LICENSE +19 -0
  13. data/README.md +178 -0
  14. data/Rakefile +116 -0
  15. data/benchmarks/operators.rb +11 -0
  16. data/bin/opal +22 -0
  17. data/bin/opal-build +77 -0
  18. data/bin/opal-mspec +10 -0
  19. data/bin/opal-repl +72 -0
  20. data/config.ru +14 -0
  21. data/examples/rack/Gemfile +3 -0
  22. data/examples/rack/app/application.rb +13 -0
  23. data/examples/rack/app/user.rb +21 -0
  24. data/examples/rack/config.ru +7 -0
  25. data/examples/rack/index.html.erb +10 -0
  26. data/examples/sinatra/Gemfile +4 -0
  27. data/examples/sinatra/app/application.rb +7 -0
  28. data/examples/sinatra/config.ru +28 -0
  29. data/lib/mspec/opal/main.rb.erb +9 -0
  30. data/lib/mspec/opal/rake_task.rb +278 -0
  31. data/lib/mspec/opal/runner.rb +206 -0
  32. data/lib/mspec/opal/sprockets.js +57 -0
  33. data/lib/opal.rb +11 -0
  34. data/lib/opal/builder.rb +135 -0
  35. data/lib/opal/builder_processors.rb +165 -0
  36. data/lib/opal/cli.rb +145 -0
  37. data/lib/opal/cli_options.rb +149 -0
  38. data/lib/opal/cli_runners.rb +10 -0
  39. data/lib/opal/cli_runners/nodejs.rb +56 -0
  40. data/lib/opal/cli_runners/phantom.js +35 -0
  41. data/lib/opal/cli_runners/phantomjs.rb +28 -0
  42. data/lib/opal/cli_runners/server.rb +54 -0
  43. data/lib/opal/compiler.rb +307 -0
  44. data/lib/opal/erb.rb +64 -0
  45. data/lib/opal/fragment.rb +41 -0
  46. data/lib/opal/hike_path_finder.rb +18 -0
  47. data/lib/opal/nodes.rb +26 -0
  48. data/lib/opal/nodes/arglist.rb +56 -0
  49. data/lib/opal/nodes/array.rb +54 -0
  50. data/lib/opal/nodes/base.rb +151 -0
  51. data/lib/opal/nodes/call.rb +283 -0
  52. data/lib/opal/nodes/call_special.rb +178 -0
  53. data/lib/opal/nodes/case.rb +96 -0
  54. data/lib/opal/nodes/class.rb +42 -0
  55. data/lib/opal/nodes/constants.rb +78 -0
  56. data/lib/opal/nodes/def.rb +157 -0
  57. data/lib/opal/nodes/defined.rb +113 -0
  58. data/lib/opal/nodes/definitions.rb +168 -0
  59. data/lib/opal/nodes/for.rb +35 -0
  60. data/lib/opal/nodes/hash.rb +67 -0
  61. data/lib/opal/nodes/helpers.rb +114 -0
  62. data/lib/opal/nodes/if.rb +67 -0
  63. data/lib/opal/nodes/iter.rb +131 -0
  64. data/lib/opal/nodes/literal.rb +230 -0
  65. data/lib/opal/nodes/logic.rb +217 -0
  66. data/lib/opal/nodes/masgn.rb +62 -0
  67. data/lib/opal/nodes/module.rb +46 -0
  68. data/lib/opal/nodes/rescue.rb +135 -0
  69. data/lib/opal/nodes/runtime_helpers.rb +45 -0
  70. data/lib/opal/nodes/scope.rb +293 -0
  71. data/lib/opal/nodes/singleton_class.rb +25 -0
  72. data/lib/opal/nodes/super.rb +97 -0
  73. data/lib/opal/nodes/top.rb +101 -0
  74. data/lib/opal/nodes/variables.rb +158 -0
  75. data/lib/opal/nodes/while.rb +65 -0
  76. data/lib/opal/nodes/yield.rb +95 -0
  77. data/lib/opal/parser.rb +658 -0
  78. data/lib/opal/parser/grammar.rb +5452 -0
  79. data/lib/opal/parser/grammar.y +1684 -0
  80. data/lib/opal/parser/keywords.rb +66 -0
  81. data/lib/opal/parser/lexer.rb +1208 -0
  82. data/lib/opal/parser/parser_scope.rb +25 -0
  83. data/lib/opal/parser/sexp.rb +75 -0
  84. data/lib/opal/path_reader.rb +28 -0
  85. data/lib/opal/paths.rb +38 -0
  86. data/lib/opal/source_map.rb +70 -0
  87. data/lib/opal/sprockets.rb +4 -0
  88. data/lib/opal/sprockets/cache_key_fix.rb +17 -0
  89. data/lib/opal/sprockets/environment.rb +37 -0
  90. data/lib/opal/sprockets/erb.rb +37 -0
  91. data/lib/opal/sprockets/path_reader.rb +34 -0
  92. data/lib/opal/sprockets/processor.rb +124 -0
  93. data/lib/opal/sprockets/server.rb +180 -0
  94. data/lib/opal/util.rb +64 -0
  95. data/lib/opal/version.rb +3 -0
  96. data/opal.gemspec +36 -0
  97. data/opal/README.md +6 -0
  98. data/opal/corelib/array.rb +1556 -0
  99. data/opal/corelib/array/inheritance.rb +113 -0
  100. data/opal/corelib/basic_object.rb +73 -0
  101. data/opal/corelib/boolean.rb +41 -0
  102. data/opal/corelib/class.rb +55 -0
  103. data/opal/corelib/comparable.rb +56 -0
  104. data/opal/corelib/complex.rb +3 -0
  105. data/opal/corelib/dir.rb +20 -0
  106. data/opal/corelib/enumerable.rb +1132 -0
  107. data/opal/corelib/enumerator.rb +422 -0
  108. data/opal/corelib/error.rb +63 -0
  109. data/opal/corelib/file.rb +56 -0
  110. data/opal/corelib/hash.rb +728 -0
  111. data/opal/corelib/helpers.rb +102 -0
  112. data/opal/corelib/io.rb +59 -0
  113. data/opal/corelib/kernel.rb +569 -0
  114. data/opal/corelib/main.rb +7 -0
  115. data/opal/corelib/match_data.rb +114 -0
  116. data/opal/corelib/method.rb +58 -0
  117. data/opal/corelib/module.rb +462 -0
  118. data/opal/corelib/nil_class.rb +62 -0
  119. data/opal/corelib/numeric.rb +532 -0
  120. data/opal/corelib/proc.rb +52 -0
  121. data/opal/corelib/range.rb +116 -0
  122. data/opal/corelib/rational.rb +3 -0
  123. data/opal/corelib/regexp.rb +133 -0
  124. data/opal/corelib/runtime.js +1240 -0
  125. data/opal/corelib/string.rb +1212 -0
  126. data/opal/corelib/string/inheritance.rb +78 -0
  127. data/opal/corelib/struct.rb +141 -0
  128. data/opal/corelib/time.rb +584 -0
  129. data/opal/corelib/variables.rb +24 -0
  130. data/opal/opal.rb +32 -0
  131. data/package.json +9 -0
  132. data/spec/filters/bugs/array.rb +232 -0
  133. data/spec/filters/bugs/basic_object.rb +14 -0
  134. data/spec/filters/bugs/class.rb +21 -0
  135. data/spec/filters/bugs/enumerable.rb +69 -0
  136. data/spec/filters/bugs/enumerator.rb +3 -0
  137. data/spec/filters/bugs/hash.rb +128 -0
  138. data/spec/filters/bugs/kernel.rb +10 -0
  139. data/spec/filters/bugs/language.rb +415 -0
  140. data/spec/filters/bugs/math.rb +95 -0
  141. data/spec/filters/bugs/module.rb +14 -0
  142. data/spec/filters/bugs/nil.rb +7 -0
  143. data/spec/filters/bugs/numeric.rb +20 -0
  144. data/spec/filters/bugs/opal.rb +14 -0
  145. data/spec/filters/bugs/regexp.rb +11 -0
  146. data/spec/filters/bugs/set.rb +7 -0
  147. data/spec/filters/bugs/singleton.rb +6 -0
  148. data/spec/filters/bugs/string.rb +360 -0
  149. data/spec/filters/bugs/stringscanner.rb +22 -0
  150. data/spec/filters/bugs/struct.rb +45 -0
  151. data/spec/filters/bugs/time.rb +177 -0
  152. data/spec/filters/bugs/unknown.rb +11 -0
  153. data/spec/filters/unsupported/encoding.rb +95 -0
  154. data/spec/filters/unsupported/enumerator.rb +14 -0
  155. data/spec/filters/unsupported/float.rb +5 -0
  156. data/spec/filters/unsupported/frozen.rb +90 -0
  157. data/spec/filters/unsupported/hash_compare_by_identity.rb +16 -0
  158. data/spec/filters/unsupported/integer_size.rb +7 -0
  159. data/spec/filters/unsupported/method_added.rb +10 -0
  160. data/spec/filters/unsupported/mutable_strings.rb +361 -0
  161. data/spec/filters/unsupported/private_constants.rb +30 -0
  162. data/spec/filters/unsupported/private_methods.rb +44 -0
  163. data/spec/filters/unsupported/random.rb +4 -0
  164. data/spec/filters/unsupported/ruby_exe.rb +5 -0
  165. data/spec/filters/unsupported/tainted.rb +155 -0
  166. data/spec/filters/unsupported/time.rb +21 -0
  167. data/spec/filters/unsupported/trusted.rb +80 -0
  168. data/spec/lib/builder_processors_spec.rb +27 -0
  169. data/spec/lib/builder_spec.rb +66 -0
  170. data/spec/lib/cli_spec.rb +134 -0
  171. data/spec/lib/compiler_spec.rb +197 -0
  172. data/spec/lib/dependency_resolver_spec.rb +40 -0
  173. data/spec/lib/fixtures/no_requires.rb +1 -0
  174. data/spec/lib/fixtures/opal_file.rb +2 -0
  175. data/spec/lib/fixtures/require_tree_test.rb +3 -0
  176. data/spec/lib/fixtures/required_tree_test/required_file1.rb +1 -0
  177. data/spec/lib/fixtures/required_tree_test/required_file2.rb +1 -0
  178. data/spec/lib/fixtures/requires.rb +7 -0
  179. data/spec/lib/fixtures/sprockets_file.js.rb +3 -0
  180. data/spec/lib/fixtures/sprockets_require_tree_test.rb +3 -0
  181. data/spec/lib/hike_path_finder_spec.rb +23 -0
  182. data/spec/lib/lexer_spec.rb +110 -0
  183. data/spec/lib/parser/alias_spec.rb +26 -0
  184. data/spec/lib/parser/and_spec.rb +13 -0
  185. data/spec/lib/parser/attrasgn_spec.rb +28 -0
  186. data/spec/lib/parser/begin_spec.rb +42 -0
  187. data/spec/lib/parser/block_spec.rb +12 -0
  188. data/spec/lib/parser/break_spec.rb +17 -0
  189. data/spec/lib/parser/call_spec.rb +139 -0
  190. data/spec/lib/parser/class_spec.rb +35 -0
  191. data/spec/lib/parser/comments_spec.rb +11 -0
  192. data/spec/lib/parser/def_spec.rb +61 -0
  193. data/spec/lib/parser/if_spec.rb +26 -0
  194. data/spec/lib/parser/iter_spec.rb +59 -0
  195. data/spec/lib/parser/lambda_spec.rb +64 -0
  196. data/spec/lib/parser/literal_spec.rb +118 -0
  197. data/spec/lib/parser/masgn_spec.rb +37 -0
  198. data/spec/lib/parser/module_spec.rb +27 -0
  199. data/spec/lib/parser/not_spec.rb +27 -0
  200. data/spec/lib/parser/op_asgn1_spec.rb +23 -0
  201. data/spec/lib/parser/op_asgn2_spec.rb +23 -0
  202. data/spec/lib/parser/or_spec.rb +13 -0
  203. data/spec/lib/parser/return_spec.rb +17 -0
  204. data/spec/lib/parser/sclass_spec.rb +21 -0
  205. data/spec/lib/parser/string_spec.rb +276 -0
  206. data/spec/lib/parser/super_spec.rb +20 -0
  207. data/spec/lib/parser/unary_spec.rb +48 -0
  208. data/spec/lib/parser/undef_spec.rb +15 -0
  209. data/spec/lib/parser/unless_spec.rb +13 -0
  210. data/spec/lib/parser/variables_spec.rb +92 -0
  211. data/spec/lib/parser/while_spec.rb +15 -0
  212. data/spec/lib/parser/yield_spec.rb +20 -0
  213. data/spec/lib/path_reader_spec.rb +24 -0
  214. data/spec/lib/shared/path_finder_shared.rb +19 -0
  215. data/spec/lib/shared/path_reader_shared.rb +31 -0
  216. data/spec/lib/spec_helper.rb +9 -0
  217. data/spec/lib/sprockets/environment_spec.rb +30 -0
  218. data/spec/lib/sprockets/erb_spec.rb +25 -0
  219. data/spec/lib/sprockets/path_reader_spec.rb +25 -0
  220. data/spec/lib/sprockets/processor_spec.rb +35 -0
  221. data/spec/lib/sprockets/server_spec.rb +20 -0
  222. data/spec/opal/compiler/irb_spec.rb +44 -0
  223. data/spec/opal/core/array/select_spec.rb +14 -0
  224. data/spec/opal/core/array/set_range_to_array_spec.rb +7 -0
  225. data/spec/opal/core/date_spec.rb +122 -0
  226. data/spec/opal/core/enumerable/all_break_spec.rb +5 -0
  227. data/spec/opal/core/enumerable/any_break_spec.rb +5 -0
  228. data/spec/opal/core/enumerable/collect_break_spec.rb +13 -0
  229. data/spec/opal/core/enumerable/count_break_spec.rb +5 -0
  230. data/spec/opal/core/enumerable/detect_break_spec.rb +5 -0
  231. data/spec/opal/core/enumerable/drop_while_break_spec.rb +5 -0
  232. data/spec/opal/core/enumerable/each_slice_break.rb +6 -0
  233. data/spec/opal/core/enumerable/each_with_index_break_spec.rb +5 -0
  234. data/spec/opal/core/enumerable/each_with_object_break_spec.rb +5 -0
  235. data/spec/opal/core/enumerable/find_all_break_spec.rb +5 -0
  236. data/spec/opal/core/enumerable/find_index_break_spec.rb +5 -0
  237. data/spec/opal/core/enumerable/grep_break_spec.rb +5 -0
  238. data/spec/opal/core/enumerable/max_break_spec.rb +5 -0
  239. data/spec/opal/core/enumerable/max_by_break_spec.rb +5 -0
  240. data/spec/opal/core/enumerable/min_break_spec.rb +5 -0
  241. data/spec/opal/core/enumerable/min_by_break_spec.rb +5 -0
  242. data/spec/opal/core/enumerable/none_break_spec.rb +5 -0
  243. data/spec/opal/core/enumerable/one_break_spec.rb +5 -0
  244. data/spec/opal/core/enumerable/reduce_break_spec.rb +5 -0
  245. data/spec/opal/core/enumerable/take_while_break_spec.rb +5 -0
  246. data/spec/opal/core/fixtures/class.rb +124 -0
  247. data/spec/opal/core/fixtures/class_variables.rb +0 -0
  248. data/spec/opal/core/fixtures/constants.rb +33 -0
  249. data/spec/opal/core/fixtures/require_tree_files/file 1.rb +1 -0
  250. data/spec/opal/core/fixtures/require_tree_files/file 2.rb +1 -0
  251. data/spec/opal/core/fixtures/require_tree_files/file 3.rb +1 -0
  252. data/spec/opal/core/fixtures/require_tree_files/file 4.rb +1 -0
  253. data/spec/opal/core/fixtures/require_tree_files/file 5.rb +1 -0
  254. data/spec/opal/core/kernel/Array_spec.rb +10 -0
  255. data/spec/opal/core/kernel/block_given_spec.rb +30 -0
  256. data/spec/opal/core/kernel/class_spec.rb +6 -0
  257. data/spec/opal/core/kernel/define_singleton_method_spec.rb +21 -0
  258. data/spec/opal/core/kernel/equal_value_spec.rb +12 -0
  259. data/spec/opal/core/kernel/extend_spec.rb +21 -0
  260. data/spec/opal/core/kernel/format_spec.rb +122 -0
  261. data/spec/opal/core/kernel/freeze_spec.rb +15 -0
  262. data/spec/opal/core/kernel/instance_eval_spec.rb +28 -0
  263. data/spec/opal/core/kernel/instance_variable_defined_spec.rb +15 -0
  264. data/spec/opal/core/kernel/instance_variable_get_spec.rb +14 -0
  265. data/spec/opal/core/kernel/instance_variable_set_spec.rb +10 -0
  266. data/spec/opal/core/kernel/loop_spec.rb +23 -0
  267. data/spec/opal/core/kernel/match_spec.rb +5 -0
  268. data/spec/opal/core/kernel/method_spec.rb +31 -0
  269. data/spec/opal/core/kernel/methods_spec.rb +25 -0
  270. data/spec/opal/core/kernel/nil_spec.rb +7 -0
  271. data/spec/opal/core/kernel/p_spec.rb +15 -0
  272. data/spec/opal/core/kernel/printf_spec.rb +11 -0
  273. data/spec/opal/core/kernel/proc_spec.rb +13 -0
  274. data/spec/opal/core/kernel/rand_spec.rb +23 -0
  275. data/spec/opal/core/kernel/require_tree_spec.rb +7 -0
  276. data/spec/opal/core/kernel/respond_to_spec.rb +41 -0
  277. data/spec/opal/core/kernel/send_spec.rb +56 -0
  278. data/spec/opal/core/kernel/sprintf_spec.rb +5 -0
  279. data/spec/opal/core/language/block_spec.rb +538 -0
  280. data/spec/opal/core/language/fixtures/array.rb +11 -0
  281. data/spec/opal/core/language/fixtures/block.rb +57 -0
  282. data/spec/opal/core/language/fixtures/break.rb +240 -0
  283. data/spec/opal/core/language/fixtures/ensure.rb +72 -0
  284. data/spec/opal/core/language/fixtures/literal_lambda.rb +7 -0
  285. data/spec/opal/core/language/fixtures/metaclass.rb +33 -0
  286. data/spec/opal/core/language/fixtures/module.rb +24 -0
  287. data/spec/opal/core/language/fixtures/next.rb +128 -0
  288. data/spec/opal/core/language/fixtures/return.rb +118 -0
  289. data/spec/opal/core/language/fixtures/send.rb +110 -0
  290. data/spec/opal/core/language/fixtures/send_1.9.rb +22 -0
  291. data/spec/opal/core/language/fixtures/super.rb +308 -0
  292. data/spec/opal/core/language/fixtures/variables.rb +58 -0
  293. data/spec/opal/core/language/fixtures/yield.rb +28 -0
  294. data/spec/opal/core/language/predefined_spec.rb +85 -0
  295. data/spec/opal/core/language/proc_spec.rb +263 -0
  296. data/spec/opal/core/language/regexp_spec.rb +20 -0
  297. data/spec/opal/core/language/send_spec.rb +225 -0
  298. data/spec/opal/core/language/string_spec.rb +44 -0
  299. data/spec/opal/core/language/symbol_spec.rb +40 -0
  300. data/spec/opal/core/language/variables_spec.rb +1366 -0
  301. data/spec/opal/core/language/versions/array_1.9.rb +39 -0
  302. data/spec/opal/core/language/versions/block_1.9.rb +0 -0
  303. data/spec/opal/core/language/versions/break_1.9.rb +0 -0
  304. data/spec/opal/core/language/versions/case_1.9.rb +20 -0
  305. data/spec/opal/core/language/versions/hash_1.9.rb +18 -0
  306. data/spec/opal/core/language/versions/literal_lambda_1.9.rb +143 -0
  307. data/spec/opal/core/language/versions/not_1.9.rb +22 -0
  308. data/spec/opal/core/language/versions/send_1.9.rb +241 -0
  309. data/spec/opal/core/language/versions/symbol_1.9.rb +15 -0
  310. data/spec/opal/core/language/versions/variables_1.9.rb +8 -0
  311. data/spec/opal/core/module/alias_method_spec.rb +28 -0
  312. data/spec/opal/core/module/ancestors_spec.rb +11 -0
  313. data/spec/opal/core/module/append_features_spec.rb +14 -0
  314. data/spec/opal/core/module/attr_accessor_spec.rb +26 -0
  315. data/spec/opal/core/module/const_defined_spec.rb +85 -0
  316. data/spec/opal/core/module/const_get_spec.rb +85 -0
  317. data/spec/opal/core/module/const_missing_spec.rb +17 -0
  318. data/spec/opal/core/module/const_set_spec.rb +64 -0
  319. data/spec/opal/core/module/constants_spec.rb +49 -0
  320. data/spec/opal/core/module/fixtures/classes.rb +434 -0
  321. data/spec/opal/core/module/method_defined_spec.rb +48 -0
  322. data/spec/opal/core/module/module_function_spec.rb +25 -0
  323. data/spec/opal/core/module/name_spec.rb +52 -0
  324. data/spec/opal/core/module/public_method_defined_spec.rb +18 -0
  325. data/spec/opal/core/module/remove_const_spec.rb +22 -0
  326. data/spec/opal/core/module/undef_method_spec.rb +66 -0
  327. data/spec/opal/core/numeric/bit_and_spec.rb +7 -0
  328. data/spec/opal/core/numeric/bit_or_spec.rb +8 -0
  329. data/spec/opal/core/numeric/bit_xor_spec.rb +6 -0
  330. data/spec/opal/core/numeric/ceil_spec.rb +8 -0
  331. data/spec/opal/core/numeric/chr_spec.rb +8 -0
  332. data/spec/opal/core/numeric/comparison_spec.rb +24 -0
  333. data/spec/opal/core/numeric/complement_spec.rb +8 -0
  334. data/spec/opal/core/numeric/divide_spec.rb +10 -0
  335. data/spec/opal/core/numeric/eql_spec.rb +9 -0
  336. data/spec/opal/core/numeric/exponent_spec.rb +33 -0
  337. data/spec/opal/core/numeric/floor_spec.rb +8 -0
  338. data/spec/opal/core/numeric/gt_spec.rb +11 -0
  339. data/spec/opal/core/numeric/gte_spec.rb +12 -0
  340. data/spec/opal/core/numeric/integer_spec.rb +9 -0
  341. data/spec/opal/core/numeric/left_shift_spec.rb +21 -0
  342. data/spec/opal/core/numeric/lt_spec.rb +11 -0
  343. data/spec/opal/core/numeric/lte_spec.rb +12 -0
  344. data/spec/opal/core/numeric/minus_spec.rb +8 -0
  345. data/spec/opal/core/numeric/modulo_spec.rb +19 -0
  346. data/spec/opal/core/numeric/multiply_spec.rb +9 -0
  347. data/spec/opal/core/numeric/next_spec.rb +9 -0
  348. data/spec/opal/core/numeric/ord_spec.rb +9 -0
  349. data/spec/opal/core/numeric/plus_spec.rb +8 -0
  350. data/spec/opal/core/numeric/pred_spec.rb +7 -0
  351. data/spec/opal/core/numeric/right_shift_spec.rb +25 -0
  352. data/spec/opal/core/numeric/step_spec.rb +11 -0
  353. data/spec/opal/core/numeric/succ_spec.rb +9 -0
  354. data/spec/opal/core/numeric/times_spec.rb +36 -0
  355. data/spec/opal/core/numeric/to_f_spec.rb +7 -0
  356. data/spec/opal/core/numeric/to_i_spec.rb +7 -0
  357. data/spec/opal/core/numeric/to_json_spec.rb +8 -0
  358. data/spec/opal/core/numeric/to_s_spec.rb +26 -0
  359. data/spec/opal/core/numeric/uminus_spec.rb +9 -0
  360. data/spec/opal/core/numeric/upto_spec.rb +19 -0
  361. data/spec/opal/core/numeric/zero_spec.rb +7 -0
  362. data/spec/opal/core/proc/call_spec.rb +21 -0
  363. data/spec/opal/core/proc/element_reference_spec.rb +21 -0
  364. data/spec/opal/core/proc/proc_tricks_spec.rb +7 -0
  365. data/spec/opal/core/runtime/begin_spec.rb +39 -0
  366. data/spec/opal/core/runtime/block_send_spec.rb +28 -0
  367. data/spec/opal/core/runtime/block_spec.rb +23 -0
  368. data/spec/opal/core/runtime/bridged_classes_spec.rb +64 -0
  369. data/spec/opal/core/runtime/constants_spec.rb +13 -0
  370. data/spec/opal/core/runtime/eval_spec.rb +5 -0
  371. data/spec/opal/core/runtime/main_methods_spec.rb +27 -0
  372. data/spec/opal/core/runtime/method_missing_spec.rb +62 -0
  373. data/spec/opal/core/runtime/method_spec.rb +31 -0
  374. data/spec/opal/core/runtime/operator_call_spec.rb +13 -0
  375. data/spec/opal/core/runtime/paren_spec.rb +14 -0
  376. data/spec/opal/core/runtime/rescue_spec.rb +38 -0
  377. data/spec/opal/core/runtime/return_spec.rb +38 -0
  378. data/spec/opal/core/runtime/send_spec.rb +34 -0
  379. data/spec/opal/core/runtime/singleton_class_spec.rb +13 -0
  380. data/spec/opal/core/runtime/super_spec.rb +212 -0
  381. data/spec/opal/core/runtime/truthy_spec.rb +23 -0
  382. data/spec/opal/core/runtime/variables_spec.rb +20 -0
  383. data/spec/opal/core/source_map_spec.rb +15 -0
  384. data/spec/opal/core/string_spec.rb +11 -0
  385. data/spec/opal/stdlib/erb/erb_spec.rb +30 -0
  386. data/spec/opal/stdlib/erb/inline_block.opalerb +3 -0
  387. data/spec/opal/stdlib/erb/quoted.opalerb +1 -0
  388. data/spec/opal/stdlib/erb/simple.opalerb +1 -0
  389. data/spec/opal/stdlib/json/ext_spec.rb +48 -0
  390. data/spec/opal/stdlib/json/parse_spec.rb +33 -0
  391. data/spec/opal/stdlib/native/alias_native_spec.rb +27 -0
  392. data/spec/opal/stdlib/native/each_spec.rb +13 -0
  393. data/spec/opal/stdlib/native/element_reference_spec.rb +16 -0
  394. data/spec/opal/stdlib/native/exposure_spec.rb +33 -0
  395. data/spec/opal/stdlib/native/ext_spec.rb +19 -0
  396. data/spec/opal/stdlib/native/initialize_spec.rb +17 -0
  397. data/spec/opal/stdlib/native/method_missing_spec.rb +51 -0
  398. data/spec/opal/stdlib/native/native_reader_spec.rb +22 -0
  399. data/spec/opal/stdlib/native/native_writer_spec.rb +30 -0
  400. data/spec/opal/stdlib/native/new_spec.rb +8 -0
  401. data/spec/opal/stdlib/promise/error_spec.rb +15 -0
  402. data/spec/opal/stdlib/promise/rescue_spec.rb +35 -0
  403. data/spec/opal/stdlib/promise/then_spec.rb +54 -0
  404. data/spec/opal/stdlib/promise/trace_spec.rb +35 -0
  405. data/spec/opal/stdlib/promise/value_spec.rb +15 -0
  406. data/spec/opal/stdlib/promise/when_spec.rb +34 -0
  407. data/spec/opal/stdlib/template/paths_spec.rb +10 -0
  408. data/spec/opal/stdlib/thread/mutex_spec.rb +40 -0
  409. data/spec/opal/stdlib/thread/thread_queue_spec.rb +32 -0
  410. data/spec/opal/stdlib/thread/thread_spec.rb +60 -0
  411. data/spec/rubyspecs +329 -0
  412. data/spec/spec_helper.rb +42 -0
  413. data/spec/support/mspec_rspec_adapter.rb +33 -0
  414. data/spec/support/parser_helpers.rb +37 -0
  415. data/stdlib/README.md +3 -0
  416. data/stdlib/base64.rb +152 -0
  417. data/stdlib/benchmark.rb +10 -0
  418. data/stdlib/buffer.rb +40 -0
  419. data/stdlib/buffer/array.rb +66 -0
  420. data/stdlib/buffer/view.rb +70 -0
  421. data/stdlib/date.rb +170 -0
  422. data/stdlib/delegate.rb +29 -0
  423. data/stdlib/dir.rb +1 -0
  424. data/stdlib/encoding.rb +166 -0
  425. data/stdlib/enumerator.rb +1 -0
  426. data/stdlib/erb.rb +16 -0
  427. data/stdlib/file.rb +1 -0
  428. data/stdlib/forwardable.rb +71 -0
  429. data/stdlib/json.rb +182 -0
  430. data/stdlib/math.rb +370 -0
  431. data/stdlib/native.rb +530 -0
  432. data/stdlib/nodejs.rb +5 -0
  433. data/stdlib/nodejs/dir.rb +13 -0
  434. data/stdlib/nodejs/file.rb +98 -0
  435. data/stdlib/nodejs/fileutils.rb +26 -0
  436. data/stdlib/nodejs/io.rb +2 -0
  437. data/stdlib/nodejs/irb.rb +45 -0
  438. data/stdlib/nodejs/process.rb +16 -0
  439. data/stdlib/nodejs/require.rb +32 -0
  440. data/stdlib/nodejs/rubygems.rb +68 -0
  441. data/stdlib/nodejs/runtime.rb +25 -0
  442. data/stdlib/nodejs/yaml.rb +11 -0
  443. data/stdlib/observer.rb +202 -0
  444. data/stdlib/opal-parser.rb +53 -0
  445. data/stdlib/opal-source-maps.rb +2 -0
  446. data/stdlib/ostruct.rb +69 -0
  447. data/stdlib/pathname.rb +31 -0
  448. data/stdlib/phantomjs.rb +8 -0
  449. data/stdlib/pp.rb +12 -0
  450. data/stdlib/process.rb +10 -0
  451. data/stdlib/promise.rb +300 -0
  452. data/stdlib/racc/parser.rb +215 -0
  453. data/stdlib/rbconfig.rb +20 -0
  454. data/stdlib/securerandom.rb +12 -0
  455. data/stdlib/set.rb +116 -0
  456. data/stdlib/singleton.rb +40 -0
  457. data/stdlib/source_map.rb +5 -0
  458. data/stdlib/source_map/map.rb +220 -0
  459. data/stdlib/source_map/mapping.rb +26 -0
  460. data/stdlib/source_map/offset.rb +88 -0
  461. data/stdlib/source_map/version.rb +3 -0
  462. data/stdlib/source_map/vlq.rb +98 -0
  463. data/stdlib/sourcemap.rb +1 -0
  464. data/stdlib/stringio.rb +181 -0
  465. data/stdlib/strscan.rb +155 -0
  466. data/stdlib/template.rb +46 -0
  467. data/stdlib/thread.rb +160 -0
  468. data/stdlib/time.rb +9 -0
  469. data/tasks/github.rake +19 -0
  470. metadata +690 -0
@@ -0,0 +1,15 @@
1
+ require 'promise'
2
+
3
+ describe 'Promise.error' do
4
+ it 'rejects the promise with the given error' do
5
+ Promise.error(23).error.should == 23
6
+ end
7
+
8
+ it 'marks the promise as realized' do
9
+ Promise.error(23).realized?.should be_true
10
+ end
11
+
12
+ it 'marks the promise as rejected' do
13
+ Promise.error(23).rejected?.should be_true
14
+ end
15
+ end
@@ -0,0 +1,35 @@
1
+ require 'promise'
2
+
3
+ describe 'Promise#rescue' do
4
+ it 'calls the block when the promise has already been rejected' do
5
+ x = 42
6
+ Promise.error(23).rescue { |v| x = v }
7
+ x.should == 23
8
+ end
9
+
10
+ it 'calls the block when the promise is rejected' do
11
+ a = Promise.new
12
+ x = 42
13
+
14
+ a.rescue { |v| x = v }
15
+ a.reject(23)
16
+
17
+ x.should == 23
18
+ end
19
+
20
+ it 'does not call then blocks when the promise is rejected' do
21
+ x = 42
22
+ y = 23
23
+
24
+ Promise.error(23).then { y = 42 }.rescue { |v| x = v }
25
+
26
+ x.should == 23
27
+ y.should == 23
28
+ end
29
+
30
+ it 'does not call subsequent rescue blocks' do
31
+ x = 42
32
+ Promise.error(23).rescue { |v| x = v }.rescue { x = 42 }
33
+ x.should == 23
34
+ end
35
+ end
@@ -0,0 +1,54 @@
1
+ require 'promise'
2
+
3
+ describe 'Promise#then' do
4
+ it 'calls the block when the promise has already been resolved' do
5
+ x = 42
6
+ Promise.value(23).then { |v| x = v }
7
+ x.should == 23
8
+ end
9
+
10
+ it 'calls the block when the promise is resolved' do
11
+ a = Promise.new
12
+ x = 42
13
+
14
+ a.then { |v| x = v }
15
+ a.resolve(23)
16
+
17
+ x.should == 23
18
+ end
19
+
20
+ it 'works with multiple chains' do
21
+ x = 42
22
+ Promise.value(2).then { |v| v * 2 }.then { |v| v * 4 }.then { |v| x = v }
23
+ x.should == 16
24
+ end
25
+
26
+ it 'works when a block returns a promise' do
27
+ a = Promise.new
28
+ b = Promise.new
29
+
30
+ x = 42
31
+ a.then { b }.then { |v| x = v }
32
+
33
+ a.resolve(42)
34
+ b.resolve(23)
35
+
36
+ x.should == 23
37
+ end
38
+
39
+ it 'sends raised exceptions as rejections' do
40
+ x = nil
41
+
42
+ Promise.value(2).then { raise "hue" }.rescue { |v| x = v }
43
+
44
+ x.should be_kind_of(RuntimeError)
45
+ end
46
+
47
+ it 'sends raised exceptions inside rescue blocks as next errors' do
48
+ x = nil
49
+
50
+ Promise.value(2).then { raise "hue" }.rescue { raise "omg" }.rescue { |v| x = v }
51
+
52
+ x.should be_kind_of(RuntimeError)
53
+ end
54
+ end
@@ -0,0 +1,35 @@
1
+ require 'promise'
2
+
3
+ describe 'Promise#trace' do
4
+ it 'calls the block with all the previous results' do
5
+ x = 42
6
+
7
+ Promise.value(1).then { 2 }.then { 3 }.trace {|a, b, c|
8
+ x = a + b + c
9
+ }
10
+
11
+ x.should == 6
12
+ end
13
+
14
+ it 'calls the then after the trace' do
15
+ x = 42
16
+
17
+ Promise.value(1).then { 2 }.then { 3 }.trace {|a, b, c|
18
+ a + b + c
19
+ }.then { |v| x = v }
20
+
21
+ x.should == 6
22
+ end
23
+
24
+ it 'works after a when' do
25
+ x = 42
26
+
27
+ Promise.value(1).then {
28
+ Promise.when Promise.value(2), Promise.value(3)
29
+ }.trace {|a, b|
30
+ x = a + b[0] + b[1]
31
+ }
32
+
33
+ x.should == 6
34
+ end
35
+ end
@@ -0,0 +1,15 @@
1
+ require 'promise'
2
+
3
+ describe 'Promise.value' do
4
+ it 'resolves the promise with the given value' do
5
+ Promise.value(23).value.should == 23
6
+ end
7
+
8
+ it 'marks the promise as realized' do
9
+ Promise.value(23).realized?.should be_true
10
+ end
11
+
12
+ it 'marks the promise as resolved' do
13
+ Promise.value(23).resolved?.should be_true
14
+ end
15
+ end
@@ -0,0 +1,34 @@
1
+ require 'promise'
2
+
3
+ describe 'Promise.when' do
4
+ it 'calls the block with all promises results' do
5
+ a = Promise.new
6
+ b = Promise.new
7
+
8
+ x = 42
9
+
10
+ Promise.when(a, b).then {|y, z|
11
+ x = y + z
12
+ }
13
+
14
+ a.resolve(1)
15
+ b.resolve(2)
16
+
17
+ x.should == 3
18
+ end
19
+
20
+ it 'can be built lazily' do
21
+ a = Promise.new
22
+ b = Promise.value(3)
23
+
24
+ x = 42
25
+
26
+ Promise.when(a).and(b).then {|c, d|
27
+ x = c + d
28
+ }
29
+
30
+ a.resolve(2)
31
+
32
+ x.should == 5
33
+ end
34
+ end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+ require 'template'
3
+
4
+ describe Template do
5
+ describe ".paths" do
6
+ it "should be an array of registered templates" do
7
+ Template.paths.should be_kind_of(Array)
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,40 @@
1
+ require 'thread'
2
+
3
+ describe Mutex do
4
+ before do
5
+ @mutex = Mutex.new
6
+ end
7
+
8
+ it "cannot be locked twice" do
9
+ @mutex.lock
10
+ lambda do
11
+ @mutex.lock
12
+ end.should raise_error(ThreadError)
13
+ end
14
+
15
+ it "reports locked? status" do
16
+ @mutex.locked?.should be_false
17
+ @mutex.lock
18
+ @mutex.locked?.should be_true
19
+ end
20
+
21
+ it "reports locked? status with try_lock" do
22
+ @mutex.try_lock.should be_true
23
+ @mutex.locked?.should be_true
24
+ @mutex.try_lock.should be_false
25
+ end
26
+
27
+ it "is locked and unlocked by synchronize" do
28
+ @mutex.synchronize do
29
+ @mutex.locked?.should be_true
30
+ end
31
+ @mutex.locked?.should be_false
32
+ end
33
+
34
+ it "will not be locked by synchronize if already locked" do
35
+ @mutex.lock
36
+ lambda do
37
+ @mutex.synchronize {}
38
+ end.should raise_error(ThreadError)
39
+ end
40
+ end
@@ -0,0 +1,32 @@
1
+ require 'thread'
2
+
3
+ describe Thread::Queue do
4
+ before do
5
+ @queue = Thread::Queue.new
6
+ end
7
+
8
+ it "is aliased as ::Queue" do
9
+ ::Thread::Queue.should == ::Queue
10
+ end
11
+
12
+ it "will not allow deadlock" do
13
+ lambda do
14
+ @queue.pop
15
+ end.should raise_error(ThreadError)
16
+ end
17
+
18
+ it "pops in FIFO order" do
19
+ @queue.push(1)
20
+ @queue.push(2)
21
+
22
+ @queue.pop.should == 1
23
+ @queue.pop.should == 2
24
+ end
25
+
26
+ it "can be cleared by clear" do
27
+ @queue.push(1)
28
+ @queue.clear
29
+ @queue.size.should == 0
30
+ @queue.empty?.should be_true
31
+ end
32
+ end
@@ -0,0 +1,60 @@
1
+ require 'thread'
2
+
3
+ # Our implementation of Thread only supports faux thread-local variables.
4
+ # Since we can't actually create a thread, nothing in rubyspec will run.
5
+ describe Thread do
6
+ it "returns a value for current" do
7
+ Thread.current.should_not be_nil
8
+ end
9
+
10
+ it "only has current in list" do
11
+ Thread.list.should == [Thread.current]
12
+ end
13
+
14
+ it "does not allow creation of new threads" do
15
+ lambda do
16
+ Thread.new {}
17
+ end.should raise_error(NotImplementedError)
18
+ end
19
+
20
+ describe "local storage" do
21
+ before do
22
+ @current = Thread.current
23
+ @current.send(:core_initialize!)
24
+ end
25
+
26
+ it "stores fiber-local variables" do
27
+ @current[:a] = 'hello'
28
+ @current[:a].should == 'hello'
29
+ end
30
+
31
+ it "returns fiber-local keys that are assigned" do
32
+ @current[:a] = 'hello'
33
+ @current.key?(:a).should be_true
34
+ @current.keys.should === ['a']
35
+ end
36
+
37
+ it "considers fiber-local keys, as symbols or strings equal" do
38
+ @current[:a] = 1
39
+ @current['a'] = 2
40
+ @current.keys.size.should == 1
41
+ @current[:a].should == 2
42
+ end
43
+
44
+ it "implements thread-local variables" do
45
+ @current.thread_variable_set('a', 1)
46
+ @current.thread_variable_get('a').should == 1
47
+ @current.thread_variables.should == ['a']
48
+ end
49
+
50
+ it "distinguishes between fiber-local and thread-local variables" do
51
+ @current[:a] = 1
52
+ @current.thread_variables.should == []
53
+
54
+ @current.thread_variable_set(:a, 2)
55
+
56
+ @current[:a].should == 1
57
+ @current.thread_variable_get(:a).should == 2
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,329 @@
1
+ # all spec files inside these directories are loaded (matching *_spec.rb)
2
+ corelib/core/array
3
+ corelib/core/basicobject
4
+ corelib/core/class
5
+ corelib/core/comparable
6
+ corelib/core/enumerable
7
+ corelib/core/false
8
+ corelib/core/hash
9
+ corelib/core/nil
10
+ corelib/core/struct
11
+ corelib/core/true
12
+ corelib/core/math
13
+
14
+ corelib/core/fixnum/abs_spec
15
+ corelib/core/fixnum/case_compare_spec
16
+ corelib/core/fixnum/comparison_spec
17
+ corelib/core/fixnum/equal_value_spec
18
+ corelib/core/fixnum/element_reference_spec
19
+ corelib/core/fixnum/even_spec
20
+ corelib/core/fixnum/gt_spec
21
+ corelib/core/fixnum/gte_spec
22
+ corelib/core/fixnum/left_shift_spec
23
+ corelib/core/fixnum/right_shift_spec
24
+ corelib/core/fixnum/lt_spec
25
+ corelib/core/fixnum/lte_spec
26
+ corelib/core/fixnum/magnitude_spec
27
+ corelib/core/fixnum/minus_spec
28
+ corelib/core/fixnum/odd_spec
29
+ corelib/core/fixnum/plus_spec
30
+ corelib/core/fixnum/to_s_spec
31
+ corelib/core/fixnum/zero_spec
32
+
33
+ corelib/core/integer/downto_spec
34
+
35
+ corelib/core/enumerator/each_spec
36
+ corelib/core/enumerator/new_spec
37
+ corelib/core/enumerator/next_spec
38
+ corelib/core/enumerator/rewind_spec
39
+
40
+ corelib/core/kernel/comparison_spec
41
+ corelib/core/kernel/eql_spec
42
+ corelib/core/kernel/equal_spec
43
+ corelib/core/kernel/equal_value_spec
44
+ corelib/core/kernel/tap_spec
45
+ corelib/core/kernel/to_s_spec
46
+ corelib/core/kernel/warn_spec
47
+
48
+ corelib/core/matchdata/captures_spec
49
+ corelib/core/matchdata/inspect_spec
50
+ corelib/core/matchdata/length_spec
51
+ corelib/core/matchdata/regexp_spec
52
+ corelib/core/matchdata/size_spec
53
+ corelib/core/matchdata/string_spec
54
+ corelib/core/matchdata/to_a_spec
55
+ corelib/core/matchdata/to_s_spec
56
+ corelib/core/matchdata/values_at_spec
57
+
58
+ corelib/core/range/begin_spec
59
+ corelib/core/range/case_compare_spec
60
+ corelib/core/range/end_spec
61
+ corelib/core/range/new_spec
62
+ corelib/core/range/size_spec
63
+
64
+ corelib/core/string/allocate_spec
65
+ corelib/core/string/append_spec
66
+ corelib/core/string/ascii_only_spec
67
+ corelib/core/string/bytes_spec
68
+ corelib/core/string/bytesize_spec
69
+ # corelib/core/string/byteslice_spec - invalid regexp
70
+ corelib/core/string/capitalize_spec
71
+ corelib/core/string/case_compare_spec
72
+ corelib/core/string/casecmp_spec
73
+ corelib/core/string/center_spec
74
+ corelib/core/string/chars_spec
75
+ corelib/core/string/chomp_spec
76
+ corelib/core/string/chop_spec
77
+ corelib/core/string/chr_spec
78
+ corelib/core/string/clear_spec
79
+ corelib/core/string/codepoints_spec
80
+ corelib/core/string/comparison_spec
81
+ corelib/core/string/concat_spec
82
+ corelib/core/string/count_spec
83
+ # corelib/core/string/crypt_spec - not supported (can add these)
84
+ corelib/core/string/delete_spec
85
+ corelib/core/string/downcase_spec
86
+ # corelib/core/string/dump_spec - parse error on "\\x05"
87
+ corelib/core/string/dup_spec
88
+ corelib/core/string/each_byte_spec
89
+ corelib/core/string/each_char_spec
90
+ corelib/core/string/each_codepoint_spec
91
+ corelib/core/string/each_line_spec
92
+ # corelib/core/string/element_reference_spec - fails to find a shared group - "String#[] with Regexp"
93
+ corelib/core/string/element_set_spec
94
+ corelib/core/string/empty_spec
95
+ corelib/core/string/encode_spec
96
+ corelib/core/string/encoding_spec
97
+ corelib/core/string/end_with_spec
98
+ corelib/core/string/eql_spec
99
+ corelib/core/string/equal_value_spec
100
+ corelib/core/string/force_encoding_spec
101
+ # corelib/core/string/getbyte_spec - parse error - "UTF-8 (\u{9865}} characters and hex escapes (\xDE)"
102
+ # corelib/core/string/gsub_spec - invalid regular expression
103
+ corelib/core/string/hash_spec
104
+ corelib/core/string/hex_spec
105
+ corelib/core/string/include_spec
106
+ corelib/core/string/index_spec
107
+ corelib/core/string/initialize_spec
108
+ corelib/core/string/insert_spec
109
+ # corelib/core/string/inspect_spec - Encoding::CompatibilityError: incompatible character encodings: UTF-8 and ASCII-8BIT
110
+ corelib/core/string/intern_spec
111
+ corelib/core/string/length_spec
112
+ corelib/core/string/lines_spec
113
+ corelib/core/string/ljust_spec
114
+ corelib/core/string/lstrip_spec
115
+ #core/string/match_spec - fails to find a shared group
116
+ # corelib/core/string/modulo_spec - lots of failing specs
117
+ corelib/core/string/multiply_spec
118
+ corelib/core/string/new_spec
119
+ corelib/core/string/next_spec
120
+ # # corelib/core/string/oct_spec - parse error on -01234
121
+ corelib/core/string/ord_spec
122
+ corelib/core/string/partition_spec
123
+ corelib/core/string/plus_spec
124
+ corelib/core/string/prepend_spec
125
+ corelib/core/string/replace_spec
126
+ corelib/core/string/reverse_spec
127
+ corelib/core/string/rindex_spec
128
+ corelib/core/string/rjust_spec
129
+ corelib/core/string/rpartition_spec
130
+ corelib/core/string/rstrip_spec
131
+ # corelib/core/string/scan_spec - infinite loop on parsing
132
+ corelib/core/string/setbyte_spec
133
+ corelib/core/string/size_spec
134
+ # corelib/core/string/slice_spec - fails to find a shared thing (same as element_reference_spec)
135
+ corelib/core/string/split_spec
136
+ corelib/core/string/squeeze_spec
137
+ corelib/core/string/start_with_spec
138
+ corelib/core/string/strip_spec
139
+ corelib/core/string/sub_spec
140
+ corelib/core/string/succ_spec
141
+ corelib/core/string/sum_spec
142
+ corelib/core/string/swapcase_spec
143
+ # corelib/core/string/to_c_spec - lots of failing specs
144
+ corelib/core/string/to_f_spec
145
+ # corelib/core/string/to_i_spec
146
+ # corelib/core/string/to_r_spec
147
+ corelib/core/string/to_str_spec
148
+ corelib/core/string/to_sym_spec
149
+ corelib/core/string/to_s_spec
150
+ corelib/core/string/tr_s_spec
151
+ corelib/core/string/tr_spec
152
+ # corelib/core/string/try_convert_spec
153
+ corelib/core/string/upcase_spec
154
+ corelib/core/string/upto_spec
155
+ corelib/core/string/valid_encoding_spec
156
+
157
+ corelib/core/symbol/to_proc_spec
158
+
159
+ corelib/core/time/asctime_spec
160
+ corelib/core/time/at_spec
161
+ corelib/core/time/ctime_spec
162
+ corelib/core/time/day_spec
163
+ corelib/core/time/eql_spec
164
+ corelib/core/time/friday_spec
165
+ corelib/core/time/getgm_spec
166
+ corelib/core/time/gm_spec
167
+ corelib/core/time/gmt_offset_spec
168
+ corelib/core/time/hour_spec
169
+ corelib/core/time/inspect_spec
170
+ corelib/core/time/local_spec
171
+ corelib/core/time/mday_spec
172
+ corelib/core/time/min_spec
173
+ corelib/core/time/minus_spec
174
+ corelib/core/time/mktime_spec
175
+ corelib/core/time/mon_spec
176
+ corelib/core/time/monday_spec
177
+ corelib/core/time/month_spec
178
+ # corelib/core/time/new_spec - js parse error (xstring in shared/now)
179
+ # corelib/core/time/now_spec - js parse error (xstring in shared/now)
180
+ corelib/core/time/plus_spec
181
+ corelib/core/time/saturday_spec
182
+ corelib/core/time/sec_spec
183
+ corelib/core/time/strftime_spec
184
+ corelib/core/time/sunday_spec
185
+ corelib/core/time/thursday_spec
186
+ corelib/core/time/to_i_spec
187
+ corelib/core/time/to_s_spec
188
+ corelib/core/time/tuesday_spec
189
+ corelib/core/time/utc_offset_spec
190
+ corelib/core/time/utc_spec
191
+ corelib/core/time/wday_spec
192
+ corelib/core/time/wednesday_spec
193
+ corelib/core/time/yday_spec
194
+ corelib/core/time/year_spec
195
+
196
+ corelib/core/regexp/case_compare_spec
197
+ corelib/core/regexp/eql_spec
198
+ corelib/core/regexp/equal_value_spec
199
+ corelib/core/regexp/escape_spec
200
+ corelib/core/regexp/match_spec
201
+ corelib/core/regexp/quote_spec
202
+
203
+ corelib/language/BEGIN_spec
204
+ corelib/language/alias_spec
205
+ corelib/language/and_spec
206
+ corelib/language/array_spec
207
+ # corelib/language/block_spec - can't parse |(a, (b, c))| args, or |a, b; c, d|
208
+ # corelib/language/break_spec - can't parse break expr with block
209
+ corelib/language/case_spec
210
+ corelib/language/class_spec
211
+ corelib/language/class_variable_spec
212
+ corelib/language/constants_spec
213
+ # corelib/language/def_spec - can't parse f('key'=>'value', *[5, 'string'])
214
+ corelib/language/defined_spec
215
+ # corelib/language/encoding_spec - can't parse encodings
216
+ corelib/language/ensure_spec
217
+ # corelib/language/execution_spec - can't parse x-strings with shell commands
218
+ corelib/language/file_spec
219
+ corelib/language/for_spec
220
+ corelib/language/hash_spec
221
+ corelib/language/if_spec
222
+ # corelib/language/line_spec - $LOADED_FEATURES not present
223
+ # corelib/language/lambda_spec - Can't parse literal {} in parenthesized argument list
224
+ corelib/language/loop_spec
225
+ corelib/language/magic_comment_spec
226
+ # corelib/language/match_spec - generates invalid regexp
227
+ corelib/language/metaclass_spec
228
+ corelib/language/module_spec
229
+ # corelib/language/next_spec - can't parse break expr with block
230
+ corelib/language/not_spec
231
+ corelib/language/numbers_spec
232
+ corelib/language/or_spec
233
+ corelib/language/order_spec
234
+ corelib/language/precedence_spec
235
+ # corelib/language/predefined_spec - ruby_exe() specs all failing
236
+ corelib/language/private_spec
237
+ # corelib/language/proc_spec - javascript Parse error
238
+ corelib/language/redo_spec
239
+ # corelib/language/regexp_spec - invalid javascript Regexp
240
+ corelib/language/rescue_spec
241
+ corelib/language/retry_spec
242
+ # corelib/language/return_spec - can't parse return with expr using block
243
+ # corelib/language/send_spec - can't parse trailing comma in call argument list
244
+ corelib/language/singleton_class_spec
245
+ # corelib/language/splat_spec - can't parse all splats
246
+ # corelib/language/string_spec - can't parse strings using control-characters
247
+ corelib/language/super_spec
248
+ # corelib/language/symbol_spec - lots fail
249
+ # corelib/language/throw_spec - unsupported
250
+ corelib/language/undef_spec
251
+ corelib/language/unless_spec
252
+ corelib/language/until_spec
253
+ # corelib/language/variables_spec - can't parse whole file
254
+ corelib/language/while_spec
255
+ # corelib/language/yield_spec - can't parse destructuring argument list, see block_spec
256
+
257
+ stdlib/rubysl-singleton/spec/
258
+ stdlib/rubysl-observer/spec/
259
+
260
+ stdlib/rubysl-strscan/spec/bol_spec
261
+ stdlib/rubysl-strscan/spec/check_spec
262
+ stdlib/rubysl-strscan/spec/element_reference_spec
263
+ stdlib/rubysl-strscan/spec/get_byte_spec
264
+ stdlib/rubysl-strscan/spec/pos_spec
265
+ stdlib/rubysl-strscan/spec/scan_spec
266
+ stdlib/rubysl-strscan/spec/skip_spec
267
+ stdlib/rubysl-strscan/spec/terminate_spec
268
+
269
+ stdlib/rubysl-delegate/spec/delegator/send_spec
270
+
271
+ stdlib/rubysl-erb/spec/util/html_escape_spec
272
+
273
+ stdlib/rubysl-set/spec/add_spec
274
+ stdlib/rubysl-set/spec/append_spec
275
+ stdlib/rubysl-set/spec/clear_spec
276
+ stdlib/rubysl-set/spec/constructor_spec
277
+ stdlib/rubysl-set/spec/delete_if_spec
278
+ stdlib/rubysl-set/spec/delete_spec
279
+ stdlib/rubysl-set/spec/each_spec
280
+ stdlib/rubysl-set/spec/empty_spec
281
+ stdlib/rubysl-set/spec/enumerable/to_set_spec
282
+ stdlib/rubysl-set/spec/equal_value_spec
283
+ stdlib/rubysl-set/spec/include_spec
284
+ stdlib/rubysl-set/spec/initialize_spec
285
+ stdlib/rubysl-set/spec/length_spec
286
+ stdlib/rubysl-set/spec/member_spec
287
+ stdlib/rubysl-set/spec/merge_spec
288
+ stdlib/rubysl-set/spec/size_spec
289
+ stdlib/rubysl-set/spec/to_a_spec
290
+ # stdlib/rubysl-set/spec/classify_spec
291
+ # stdlib/rubysl-set/spec/collect_spec
292
+ # stdlib/rubysl-set/spec/difference_spec
293
+ # stdlib/rubysl-set/spec/divide_spec
294
+ # stdlib/rubysl-set/spec/eql_spec
295
+ # stdlib/rubysl-set/spec/exclusion_spec
296
+ # stdlib/rubysl-set/spec/flatten_merge_spec
297
+ # stdlib/rubysl-set/spec/flatten_spec
298
+ # stdlib/rubysl-set/spec/hash_spec
299
+ # stdlib/rubysl-set/spec/initialize_copy_spec
300
+ # stdlib/rubysl-set/spec/inspect_spec
301
+ # stdlib/rubysl-set/spec/intersection_spec
302
+ # stdlib/rubysl-set/spec/keep_if_spec
303
+ # stdlib/rubysl-set/spec/map_spec
304
+ # stdlib/rubysl-set/spec/minus_spec
305
+ # stdlib/rubysl-set/spec/plus_spec
306
+ # stdlib/rubysl-set/spec/pretty_print_cycle_spec
307
+ # stdlib/rubysl-set/spec/pretty_print_spec
308
+ # stdlib/rubysl-set/spec/proper_subset_spec
309
+ # stdlib/rubysl-set/spec/proper_superset_spec
310
+ # stdlib/rubysl-set/spec/reject_spec
311
+ # stdlib/rubysl-set/spec/replace_spec
312
+ # stdlib/rubysl-set/spec/select_spec
313
+ # stdlib/rubysl-set/spec/subset_spec
314
+ # stdlib/rubysl-set/spec/subtract_spec
315
+ # stdlib/rubysl-set/spec/superset_spec
316
+ # stdlib/rubysl-set/spec/union_spec
317
+
318
+
319
+
320
+
321
+ stdlib/rubysl-pathname/spec/new_spec
322
+ stdlib/rubysl-pathname/spec/equal_value_spec
323
+ stdlib/rubysl-pathname/spec/absolute_spec
324
+ stdlib/rubysl-pathname/spec/relative_spec
325
+
326
+ stdlib/rubysl-date/spec/date/add_spec
327
+ stdlib/rubysl-date/spec/date/eql_spec
328
+ stdlib/rubysl-date/spec/date/minus_spec
329
+ stdlib/rubysl-date/spec/date/plus_spec