opal-wedge 0.9.0.dev

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 (830) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/.gitmodules +7 -0
  4. data/.inch.yml +19 -0
  5. data/.jshintrc +48 -0
  6. data/.rspec +3 -0
  7. data/.spectator +2 -0
  8. data/.spectator-mspec +3 -0
  9. data/.travis.yml +60 -0
  10. data/.yardopts +6 -0
  11. data/CHANGELOG.md +571 -0
  12. data/CODE_OF_CONDUCT.md +15 -0
  13. data/CONTRIBUTING.md +192 -0
  14. data/Gemfile +26 -0
  15. data/Guardfile +77 -0
  16. data/LICENSE +19 -0
  17. data/README.md +167 -0
  18. data/Rakefile +15 -0
  19. data/benchmark/benchmarks +103 -0
  20. data/benchmark/bm_array_intersection_numbers.rb +7 -0
  21. data/benchmark/bm_array_intersection_objects.rb +7 -0
  22. data/benchmark/bm_array_intersection_strings.rb +7 -0
  23. data/benchmark/bm_array_minus_numbers.rb +7 -0
  24. data/benchmark/bm_array_minus_objects.rb +7 -0
  25. data/benchmark/bm_array_minus_strings.rb +7 -0
  26. data/benchmark/bm_array_union_numbers.rb +7 -0
  27. data/benchmark/bm_array_union_objects.rb +7 -0
  28. data/benchmark/bm_array_union_strings.rb +7 -0
  29. data/benchmark/bm_array_uniq_bang_numbers.rb +5 -0
  30. data/benchmark/bm_array_uniq_bang_objects.rb +5 -0
  31. data/benchmark/bm_array_uniq_bang_strings.rb +5 -0
  32. data/benchmark/bm_array_uniq_numbers.rb +5 -0
  33. data/benchmark/bm_array_uniq_objects.rb +5 -0
  34. data/benchmark/bm_array_uniq_strings.rb +5 -0
  35. data/benchmark/bm_dispatch_bind_table.rb +57 -0
  36. data/benchmark/bm_dispatch_code_gen.rb +65 -0
  37. data/benchmark/bm_dispatch_code_gen_if.rb +64 -0
  38. data/benchmark/bm_dispatch_hardcoded.rb +44 -0
  39. data/benchmark/bm_dispatch_send.rb +38 -0
  40. data/benchmark/bm_dispatch_send_table.rb +57 -0
  41. data/benchmark/bm_hash_assoc_object.rb +11 -0
  42. data/benchmark/bm_hash_assoc_string.rb +9 -0
  43. data/benchmark/bm_hash_clone_object.rb +9 -0
  44. data/benchmark/bm_hash_clone_string.rb +9 -0
  45. data/benchmark/bm_hash_delete_object.rb +11 -0
  46. data/benchmark/bm_hash_delete_string.rb +9 -0
  47. data/benchmark/bm_hash_each_key_object.rb +9 -0
  48. data/benchmark/bm_hash_each_key_string.rb +9 -0
  49. data/benchmark/bm_hash_each_object.rb +9 -0
  50. data/benchmark/bm_hash_each_string.rb +9 -0
  51. data/benchmark/bm_hash_each_value_object.rb +9 -0
  52. data/benchmark/bm_hash_each_value_string.rb +9 -0
  53. data/benchmark/bm_hash_element_reference_object.rb +11 -0
  54. data/benchmark/bm_hash_element_reference_string.rb +9 -0
  55. data/benchmark/bm_hash_element_set_object.rb +5 -0
  56. data/benchmark/bm_hash_element_set_string.rb +5 -0
  57. data/benchmark/bm_hash_equal_value_object.rb +14 -0
  58. data/benchmark/bm_hash_equal_value_string.rb +11 -0
  59. data/benchmark/bm_hash_fetch_object.rb +11 -0
  60. data/benchmark/bm_hash_fetch_string.rb +9 -0
  61. data/benchmark/bm_hash_flatten_object.rb +9 -0
  62. data/benchmark/bm_hash_flatten_string.rb +9 -0
  63. data/benchmark/bm_hash_has_key_object.rb +11 -0
  64. data/benchmark/bm_hash_has_key_string.rb +9 -0
  65. data/benchmark/bm_hash_has_value_object.rb +9 -0
  66. data/benchmark/bm_hash_has_value_string.rb +9 -0
  67. data/benchmark/bm_hash_hash_object.rb +9 -0
  68. data/benchmark/bm_hash_hash_string.rb +9 -0
  69. data/benchmark/bm_hash_inspect_object.rb +9 -0
  70. data/benchmark/bm_hash_inspect_string.rb +9 -0
  71. data/benchmark/bm_hash_invert_object.rb +9 -0
  72. data/benchmark/bm_hash_invert_string.rb +9 -0
  73. data/benchmark/bm_hash_keep_if_object.rb +9 -0
  74. data/benchmark/bm_hash_keep_if_string.rb +9 -0
  75. data/benchmark/bm_hash_key_object.rb +9 -0
  76. data/benchmark/bm_hash_key_string.rb +9 -0
  77. data/benchmark/bm_hash_keys_object.rb +9 -0
  78. data/benchmark/bm_hash_keys_string.rb +9 -0
  79. data/benchmark/bm_hash_literal_mixed_large.rb +3 -0
  80. data/benchmark/bm_hash_literal_mixed_small.rb +3 -0
  81. data/benchmark/bm_hash_literal_object_large.rb +4 -0
  82. data/benchmark/bm_hash_literal_object_small.rb +3 -0
  83. data/benchmark/bm_hash_literal_string_large.rb +4 -0
  84. data/benchmark/bm_hash_literal_string_small.rb +3 -0
  85. data/benchmark/bm_hash_merge_object.rb +22 -0
  86. data/benchmark/bm_hash_merge_string.rb +18 -0
  87. data/benchmark/bm_hash_rassoc_object.rb +9 -0
  88. data/benchmark/bm_hash_rassoc_string.rb +9 -0
  89. data/benchmark/bm_hash_rehash_object.rb +9 -0
  90. data/benchmark/bm_hash_rehash_string.rb +9 -0
  91. data/benchmark/bm_hash_reject_bang_object.rb +9 -0
  92. data/benchmark/bm_hash_reject_bang_string.rb +9 -0
  93. data/benchmark/bm_hash_reject_object.rb +9 -0
  94. data/benchmark/bm_hash_reject_string.rb +9 -0
  95. data/benchmark/bm_hash_replace_object.rb +18 -0
  96. data/benchmark/bm_hash_replace_string.rb +14 -0
  97. data/benchmark/bm_hash_select_bang_object.rb +9 -0
  98. data/benchmark/bm_hash_select_bang_string.rb +9 -0
  99. data/benchmark/bm_hash_select_object.rb +9 -0
  100. data/benchmark/bm_hash_select_string.rb +9 -0
  101. data/benchmark/bm_hash_shift_object.rb +10 -0
  102. data/benchmark/bm_hash_shift_string.rb +10 -0
  103. data/benchmark/bm_hash_to_a_object.rb +9 -0
  104. data/benchmark/bm_hash_to_a_string.rb +9 -0
  105. data/benchmark/bm_hash_to_h_object.rb +10 -0
  106. data/benchmark/bm_hash_to_h_string.rb +10 -0
  107. data/benchmark/bm_hash_values_object.rb +9 -0
  108. data/benchmark/bm_hash_values_string.rb +9 -0
  109. data/benchmark/run.rb +37 -0
  110. data/bin/opal +27 -0
  111. data/bin/opal-build +77 -0
  112. data/bin/opal-mspec +10 -0
  113. data/bin/opal-repl +72 -0
  114. data/config.ru +14 -0
  115. data/docs/compiler_directives.md +127 -0
  116. data/examples/rack/.gitignore +1 -0
  117. data/examples/rack/Gemfile +3 -0
  118. data/examples/rack/app/application.rb +13 -0
  119. data/examples/rack/app/user.rb +22 -0
  120. data/examples/rack/config.ru +20 -0
  121. data/examples/rack/index.html.erb +10 -0
  122. data/examples/sinatra/Gemfile +5 -0
  123. data/examples/sinatra/app/application.rb +7 -0
  124. data/examples/sinatra/config.ru +38 -0
  125. data/lib/mspec/opal/main.rb.erb +9 -0
  126. data/lib/mspec/opal/new.html.erb +1 -0
  127. data/lib/mspec/opal/rake_task.rb +248 -0
  128. data/lib/mspec/opal/runner.rb +281 -0
  129. data/lib/mspec/opal/special_calls.rb +44 -0
  130. data/lib/mspec/opal/sprockets.js +57 -0
  131. data/lib/opal-wedge.rb +4 -0
  132. data/lib/opal.rb +11 -0
  133. data/lib/opal/builder.rb +161 -0
  134. data/lib/opal/builder_processors.rb +149 -0
  135. data/lib/opal/cli.rb +162 -0
  136. data/lib/opal/cli_options.rb +158 -0
  137. data/lib/opal/cli_runners.rb +11 -0
  138. data/lib/opal/cli_runners/apple_script.rb +65 -0
  139. data/lib/opal/cli_runners/nodejs.rb +63 -0
  140. data/lib/opal/cli_runners/phantom.js +44 -0
  141. data/lib/opal/cli_runners/phantomjs.rb +28 -0
  142. data/lib/opal/cli_runners/server.rb +56 -0
  143. data/lib/opal/compiler.rb +381 -0
  144. data/lib/opal/config.rb +48 -0
  145. data/lib/opal/erb.rb +84 -0
  146. data/lib/opal/fragment.rb +53 -0
  147. data/lib/opal/hike_path_finder.rb +18 -0
  148. data/lib/opal/nodes.rb +26 -0
  149. data/lib/opal/nodes/arglist.rb +56 -0
  150. data/lib/opal/nodes/array.rb +54 -0
  151. data/lib/opal/nodes/base.rb +151 -0
  152. data/lib/opal/nodes/call.rb +290 -0
  153. data/lib/opal/nodes/call_special.rb +252 -0
  154. data/lib/opal/nodes/case.rb +96 -0
  155. data/lib/opal/nodes/class.rb +42 -0
  156. data/lib/opal/nodes/constants.rb +78 -0
  157. data/lib/opal/nodes/def.rb +281 -0
  158. data/lib/opal/nodes/defined.rb +113 -0
  159. data/lib/opal/nodes/definitions.rb +168 -0
  160. data/lib/opal/nodes/for.rb +48 -0
  161. data/lib/opal/nodes/hash.rb +67 -0
  162. data/lib/opal/nodes/helpers.rb +116 -0
  163. data/lib/opal/nodes/if.rb +81 -0
  164. data/lib/opal/nodes/iter.rb +136 -0
  165. data/lib/opal/nodes/literal.rb +247 -0
  166. data/lib/opal/nodes/logic.rb +217 -0
  167. data/lib/opal/nodes/masgn.rb +62 -0
  168. data/lib/opal/nodes/module.rb +45 -0
  169. data/lib/opal/nodes/rescue.rb +143 -0
  170. data/lib/opal/nodes/runtime_helpers.rb +45 -0
  171. data/lib/opal/nodes/scope.rb +281 -0
  172. data/lib/opal/nodes/singleton_class.rb +26 -0
  173. data/lib/opal/nodes/super.rb +97 -0
  174. data/lib/opal/nodes/top.rb +103 -0
  175. data/lib/opal/nodes/variables.rb +191 -0
  176. data/lib/opal/nodes/while.rb +65 -0
  177. data/lib/opal/nodes/yield.rb +95 -0
  178. data/lib/opal/parser.rb +742 -0
  179. data/lib/opal/parser/grammar.rb +5723 -0
  180. data/lib/opal/parser/grammar.y +1787 -0
  181. data/lib/opal/parser/keywords.rb +66 -0
  182. data/lib/opal/parser/lexer.rb +1260 -0
  183. data/lib/opal/parser/parser_scope.rb +28 -0
  184. data/lib/opal/parser/sexp.rb +81 -0
  185. data/lib/opal/path_reader.rb +35 -0
  186. data/lib/opal/paths.rb +55 -0
  187. data/lib/opal/regexp_anchors.rb +5 -0
  188. data/lib/opal/source_map.rb +70 -0
  189. data/lib/opal/sprockets.rb +3 -0
  190. data/lib/opal/sprockets/cache_key_fix.rb +17 -0
  191. data/lib/opal/sprockets/environment.rb +31 -0
  192. data/lib/opal/sprockets/erb.rb +23 -0
  193. data/lib/opal/sprockets/path_reader.rb +36 -0
  194. data/lib/opal/sprockets/processor.rb +167 -0
  195. data/lib/opal/sprockets/server.rb +160 -0
  196. data/lib/opal/sprockets/source_map_header_patch.rb +41 -0
  197. data/lib/opal/sprockets/source_map_server.rb +115 -0
  198. data/lib/opal/util.rb +69 -0
  199. data/lib/opal/version.rb +5 -0
  200. data/lib/tilt/opal.rb +54 -0
  201. data/opal.gemspec +37 -0
  202. data/opal/README.md +6 -0
  203. data/opal/corelib/array.rb +2073 -0
  204. data/opal/corelib/array/inheritance.rb +127 -0
  205. data/opal/corelib/basic_object.rb +82 -0
  206. data/opal/corelib/boolean.rb +47 -0
  207. data/opal/corelib/class.rb +55 -0
  208. data/opal/corelib/comparable.rb +57 -0
  209. data/opal/corelib/complex.rb +3 -0
  210. data/opal/corelib/dir.rb +20 -0
  211. data/opal/corelib/enumerable.rb +1138 -0
  212. data/opal/corelib/enumerator.rb +426 -0
  213. data/opal/corelib/error.rb +77 -0
  214. data/opal/corelib/file.rb +59 -0
  215. data/opal/corelib/hash.rb +951 -0
  216. data/opal/corelib/helpers.rb +102 -0
  217. data/opal/corelib/io.rb +73 -0
  218. data/opal/corelib/kernel.rb +1124 -0
  219. data/opal/corelib/main.rb +7 -0
  220. data/opal/corelib/match_data.rb +128 -0
  221. data/opal/corelib/method.rb +62 -0
  222. data/opal/corelib/module.rb +553 -0
  223. data/opal/corelib/nil_class.rb +57 -0
  224. data/opal/corelib/numeric.rb +564 -0
  225. data/opal/corelib/proc.rb +105 -0
  226. data/opal/corelib/process.rb +27 -0
  227. data/opal/corelib/range.rb +116 -0
  228. data/opal/corelib/rational.rb +3 -0
  229. data/opal/corelib/regexp.rb +203 -0
  230. data/opal/corelib/runtime.js +1637 -0
  231. data/opal/corelib/string.rb +1762 -0
  232. data/opal/corelib/string/inheritance.rb +117 -0
  233. data/opal/corelib/struct.rb +159 -0
  234. data/opal/corelib/time.rb +746 -0
  235. data/opal/corelib/variables.rb +28 -0
  236. data/opal/opal.rb +33 -0
  237. data/spec/README.md +8 -0
  238. data/spec/filters/bugs/array.rb +77 -0
  239. data/spec/filters/bugs/basicobject.rb +33 -0
  240. data/spec/filters/bugs/class.rb +15 -0
  241. data/spec/filters/bugs/comparable.rb +4 -0
  242. data/spec/filters/bugs/date.rb +173 -0
  243. data/spec/filters/bugs/enumerable.rb +62 -0
  244. data/spec/filters/bugs/enumerator.rb +45 -0
  245. data/spec/filters/bugs/exception.rb +84 -0
  246. data/spec/filters/bugs/fixnum.rb +35 -0
  247. data/spec/filters/bugs/float.rb +100 -0
  248. data/spec/filters/bugs/hash.rb +17 -0
  249. data/spec/filters/bugs/integer.rb +63 -0
  250. data/spec/filters/bugs/kernel.rb +395 -0
  251. data/spec/filters/bugs/language.rb +246 -0
  252. data/spec/filters/bugs/math.rb +89 -0
  253. data/spec/filters/bugs/method.rb +5 -0
  254. data/spec/filters/bugs/module.rb +372 -0
  255. data/spec/filters/bugs/nil.rb +7 -0
  256. data/spec/filters/bugs/numeric.rb +123 -0
  257. data/spec/filters/bugs/proc.rb +65 -0
  258. data/spec/filters/bugs/range.rb +148 -0
  259. data/spec/filters/bugs/regexp.rb +252 -0
  260. data/spec/filters/bugs/set.rb +51 -0
  261. data/spec/filters/bugs/singleton.rb +6 -0
  262. data/spec/filters/bugs/string.rb +99 -0
  263. data/spec/filters/bugs/strscan.rb +106 -0
  264. data/spec/filters/bugs/struct.rb +22 -0
  265. data/spec/filters/bugs/time.rb +28 -0
  266. data/spec/filters/bugs/unboundmethod.rb +22 -0
  267. data/spec/filters/unsupported/array.rb +176 -0
  268. data/spec/filters/unsupported/basicobject.rb +12 -0
  269. data/spec/filters/unsupported/class.rb +4 -0
  270. data/spec/filters/unsupported/delegator.rb +5 -0
  271. data/spec/filters/unsupported/enumerable.rb +8 -0
  272. data/spec/filters/unsupported/enumerator.rb +13 -0
  273. data/spec/filters/unsupported/fixnum.rb +15 -0
  274. data/spec/filters/unsupported/float.rb +6 -0
  275. data/spec/filters/unsupported/hash.rb +55 -0
  276. data/spec/filters/unsupported/integer.rb +3 -0
  277. data/spec/filters/unsupported/kernel.rb +22 -0
  278. data/spec/filters/unsupported/language.rb +31 -0
  279. data/spec/filters/unsupported/matchdata.rb +33 -0
  280. data/spec/filters/unsupported/math.rb +3 -0
  281. data/spec/filters/unsupported/module.rb +36 -0
  282. data/spec/filters/unsupported/pathname.rb +3 -0
  283. data/spec/filters/unsupported/regexp.rb +94 -0
  284. data/spec/filters/unsupported/set.rb +4 -0
  285. data/spec/filters/unsupported/singleton.rb +6 -0
  286. data/spec/filters/unsupported/string.rb +538 -0
  287. data/spec/filters/unsupported/struct.rb +3 -0
  288. data/spec/filters/unsupported/time.rb +208 -0
  289. data/spec/lib/builder_processors_spec.rb +27 -0
  290. data/spec/lib/builder_spec.rb +72 -0
  291. data/spec/lib/cli_spec.rb +150 -0
  292. data/spec/lib/compiler/pre_processed_conditionals_spec.rb +87 -0
  293. data/spec/lib/compiler_spec.rb +131 -0
  294. data/spec/lib/dependency_resolver_spec.rb +40 -0
  295. data/spec/lib/fixtures/complex_sprockets.js.rb.erb +4 -0
  296. data/spec/lib/fixtures/file_with_directives.js +2 -0
  297. data/spec/lib/fixtures/jst_file.js.jst +1 -0
  298. data/spec/lib/fixtures/no_requires.rb +1 -0
  299. data/spec/lib/fixtures/opal_file.rb +2 -0
  300. data/spec/lib/fixtures/require_tree_test.rb +3 -0
  301. data/spec/lib/fixtures/required_file.js +1 -0
  302. data/spec/lib/fixtures/required_tree_test/required_file1.rb +1 -0
  303. data/spec/lib/fixtures/required_tree_test/required_file2.rb +1 -0
  304. data/spec/lib/fixtures/requires.rb +7 -0
  305. data/spec/lib/fixtures/source_map.rb +1 -0
  306. data/spec/lib/fixtures/source_map/subfolder/other_file.rb +1 -0
  307. data/spec/lib/fixtures/sprockets_file.js.rb +3 -0
  308. data/spec/lib/fixtures/sprockets_require_tree_test.rb +3 -0
  309. data/spec/lib/hike_path_finder_spec.rb +23 -0
  310. data/spec/lib/lexer_spec.rb +110 -0
  311. data/spec/lib/parser/alias_spec.rb +26 -0
  312. data/spec/lib/parser/and_spec.rb +13 -0
  313. data/spec/lib/parser/attrasgn_spec.rb +28 -0
  314. data/spec/lib/parser/begin_spec.rb +42 -0
  315. data/spec/lib/parser/block_spec.rb +12 -0
  316. data/spec/lib/parser/break_spec.rb +17 -0
  317. data/spec/lib/parser/call_spec.rb +165 -0
  318. data/spec/lib/parser/class_spec.rb +35 -0
  319. data/spec/lib/parser/comments_spec.rb +11 -0
  320. data/spec/lib/parser/def_spec.rb +80 -0
  321. data/spec/lib/parser/if_spec.rb +26 -0
  322. data/spec/lib/parser/iter_spec.rb +59 -0
  323. data/spec/lib/parser/lambda_spec.rb +64 -0
  324. data/spec/lib/parser/literal_spec.rb +118 -0
  325. data/spec/lib/parser/masgn_spec.rb +37 -0
  326. data/spec/lib/parser/module_spec.rb +27 -0
  327. data/spec/lib/parser/not_spec.rb +21 -0
  328. data/spec/lib/parser/op_asgn1_spec.rb +23 -0
  329. data/spec/lib/parser/op_asgn2_spec.rb +23 -0
  330. data/spec/lib/parser/or_spec.rb +13 -0
  331. data/spec/lib/parser/return_spec.rb +17 -0
  332. data/spec/lib/parser/sclass_spec.rb +21 -0
  333. data/spec/lib/parser/string_spec.rb +276 -0
  334. data/spec/lib/parser/super_spec.rb +20 -0
  335. data/spec/lib/parser/unary_spec.rb +48 -0
  336. data/spec/lib/parser/undef_spec.rb +15 -0
  337. data/spec/lib/parser/unless_spec.rb +13 -0
  338. data/spec/lib/parser/variables_spec.rb +92 -0
  339. data/spec/lib/parser/while_spec.rb +15 -0
  340. data/spec/lib/parser/yield_spec.rb +20 -0
  341. data/spec/lib/path_reader_spec.rb +36 -0
  342. data/spec/lib/shared/path_finder_shared.rb +19 -0
  343. data/spec/lib/shared/path_reader_shared.rb +31 -0
  344. data/spec/lib/spec_helper.rb +9 -0
  345. data/spec/lib/sprockets/erb_spec.rb +38 -0
  346. data/spec/lib/sprockets/path_reader_spec.rb +41 -0
  347. data/spec/lib/sprockets/processor_spec.rb +67 -0
  348. data/spec/lib/sprockets/server_spec.rb +102 -0
  349. data/spec/lib/tilt/opal_spec.rb +37 -0
  350. data/spec/opal/compiler/irb_spec.rb +44 -0
  351. data/spec/opal/core/array/intersection_spec.rb +38 -0
  352. data/spec/opal/core/array/minus_spec.rb +38 -0
  353. data/spec/opal/core/array/select_spec.rb +14 -0
  354. data/spec/opal/core/array/set_range_to_array_spec.rb +7 -0
  355. data/spec/opal/core/array/union_spec.rb +38 -0
  356. data/spec/opal/core/array/uniq_spec.rb +49 -0
  357. data/spec/opal/core/date_spec.rb +177 -0
  358. data/spec/opal/core/enumerable/all_break_spec.rb +5 -0
  359. data/spec/opal/core/enumerable/any_break_spec.rb +5 -0
  360. data/spec/opal/core/enumerable/collect_break_spec.rb +13 -0
  361. data/spec/opal/core/enumerable/count_break_spec.rb +5 -0
  362. data/spec/opal/core/enumerable/detect_break_spec.rb +5 -0
  363. data/spec/opal/core/enumerable/drop_while_break_spec.rb +5 -0
  364. data/spec/opal/core/enumerable/each_slice_break.rb +6 -0
  365. data/spec/opal/core/enumerable/each_with_index_break_spec.rb +5 -0
  366. data/spec/opal/core/enumerable/each_with_object_break_spec.rb +5 -0
  367. data/spec/opal/core/enumerable/find_all_break_spec.rb +5 -0
  368. data/spec/opal/core/enumerable/find_index_break_spec.rb +5 -0
  369. data/spec/opal/core/enumerable/grep_break_spec.rb +5 -0
  370. data/spec/opal/core/enumerable/max_break_spec.rb +5 -0
  371. data/spec/opal/core/enumerable/max_by_break_spec.rb +5 -0
  372. data/spec/opal/core/enumerable/min_break_spec.rb +5 -0
  373. data/spec/opal/core/enumerable/min_by_break_spec.rb +5 -0
  374. data/spec/opal/core/enumerable/none_break_spec.rb +5 -0
  375. data/spec/opal/core/enumerable/one_break_spec.rb +5 -0
  376. data/spec/opal/core/enumerable/reduce_break_spec.rb +5 -0
  377. data/spec/opal/core/enumerable/take_while_break_spec.rb +5 -0
  378. data/spec/opal/core/exception_spec.rb +13 -0
  379. data/spec/opal/core/fixtures/class.rb +124 -0
  380. data/spec/opal/core/fixtures/class_variables.rb +0 -0
  381. data/spec/opal/core/fixtures/constants.rb +33 -0
  382. data/spec/opal/core/fixtures/require_tree_files/file 1.rb +1 -0
  383. data/spec/opal/core/fixtures/require_tree_files/file 2.rb +1 -0
  384. data/spec/opal/core/fixtures/require_tree_files/file 3.rb +1 -0
  385. data/spec/opal/core/fixtures/require_tree_files/file 4.rb +1 -0
  386. data/spec/opal/core/fixtures/require_tree_files/file 5.rb +1 -0
  387. data/spec/opal/core/fixtures/require_tree_files/nested/nested 1.rb +1 -0
  388. data/spec/opal/core/fixtures/require_tree_files/nested/nested 2.rb +1 -0
  389. data/spec/opal/core/fixtures/require_tree_files/other/other 1.rb +1 -0
  390. data/spec/opal/core/fixtures/require_tree_with_dot/file 1.rb +1 -0
  391. data/spec/opal/core/fixtures/require_tree_with_dot/file 2.rb +1 -0
  392. data/spec/opal/core/fixtures/require_tree_with_dot/file 3.rb +1 -0
  393. data/spec/opal/core/fixtures/require_tree_with_dot/index.rb +3 -0
  394. data/spec/opal/core/hash/has_value_spec.rb +13 -0
  395. data/spec/opal/core/hash/internals_spec.rb +332 -0
  396. data/spec/opal/core/kernel/Array_spec.rb +10 -0
  397. data/spec/opal/core/kernel/block_given_spec.rb +30 -0
  398. data/spec/opal/core/kernel/class_spec.rb +6 -0
  399. data/spec/opal/core/kernel/define_singleton_method_spec.rb +21 -0
  400. data/spec/opal/core/kernel/equal_value_spec.rb +12 -0
  401. data/spec/opal/core/kernel/extend_spec.rb +21 -0
  402. data/spec/opal/core/kernel/format_spec.rb +122 -0
  403. data/spec/opal/core/kernel/freeze_spec.rb +15 -0
  404. data/spec/opal/core/kernel/instance_eval_spec.rb +28 -0
  405. data/spec/opal/core/kernel/instance_variable_defined_spec.rb +15 -0
  406. data/spec/opal/core/kernel/instance_variable_get_spec.rb +14 -0
  407. data/spec/opal/core/kernel/instance_variable_set_spec.rb +10 -0
  408. data/spec/opal/core/kernel/loop_spec.rb +23 -0
  409. data/spec/opal/core/kernel/match_spec.rb +5 -0
  410. data/spec/opal/core/kernel/method_spec.rb +31 -0
  411. data/spec/opal/core/kernel/methods_spec.rb +25 -0
  412. data/spec/opal/core/kernel/nil_spec.rb +7 -0
  413. data/spec/opal/core/kernel/p_spec.rb +15 -0
  414. data/spec/opal/core/kernel/printf_spec.rb +11 -0
  415. data/spec/opal/core/kernel/proc_spec.rb +13 -0
  416. data/spec/opal/core/kernel/rand_spec.rb +23 -0
  417. data/spec/opal/core/kernel/require_tree_spec.rb +18 -0
  418. data/spec/opal/core/kernel/respond_to_spec.rb +41 -0
  419. data/spec/opal/core/kernel/send_spec.rb +56 -0
  420. data/spec/opal/core/kernel/sprintf_spec.rb +5 -0
  421. data/spec/opal/core/language/block_spec.rb +538 -0
  422. data/spec/opal/core/language/fixtures/array.rb +11 -0
  423. data/spec/opal/core/language/fixtures/block.rb +57 -0
  424. data/spec/opal/core/language/fixtures/break.rb +240 -0
  425. data/spec/opal/core/language/fixtures/ensure.rb +72 -0
  426. data/spec/opal/core/language/fixtures/literal_lambda.rb +7 -0
  427. data/spec/opal/core/language/fixtures/metaclass.rb +33 -0
  428. data/spec/opal/core/language/fixtures/module.rb +24 -0
  429. data/spec/opal/core/language/fixtures/next.rb +128 -0
  430. data/spec/opal/core/language/fixtures/return.rb +118 -0
  431. data/spec/opal/core/language/fixtures/send.rb +110 -0
  432. data/spec/opal/core/language/fixtures/send_1.9.rb +22 -0
  433. data/spec/opal/core/language/fixtures/super.rb +308 -0
  434. data/spec/opal/core/language/fixtures/variables.rb +58 -0
  435. data/spec/opal/core/language/fixtures/yield.rb +28 -0
  436. data/spec/opal/core/language/predefined_spec.rb +138 -0
  437. data/spec/opal/core/language/proc_spec.rb +263 -0
  438. data/spec/opal/core/language/regexp_spec.rb +20 -0
  439. data/spec/opal/core/language/send_spec.rb +225 -0
  440. data/spec/opal/core/language/string_spec.rb +44 -0
  441. data/spec/opal/core/language/variables_spec.rb +1366 -0
  442. data/spec/opal/core/language/versions/array_1.9.rb +39 -0
  443. data/spec/opal/core/language/versions/block_1.9.rb +0 -0
  444. data/spec/opal/core/language/versions/break_1.9.rb +0 -0
  445. data/spec/opal/core/language/versions/case_1.9.rb +20 -0
  446. data/spec/opal/core/language/versions/def_2_0_spec.rb +62 -0
  447. data/spec/opal/core/language/versions/hash_1.9.rb +18 -0
  448. data/spec/opal/core/language/versions/literal_lambda_1.9.rb +143 -0
  449. data/spec/opal/core/language/versions/not_1.9.rb +22 -0
  450. data/spec/opal/core/language/versions/send_1.9.rb +241 -0
  451. data/spec/opal/core/language/versions/symbol_1.9.rb +15 -0
  452. data/spec/opal/core/language/versions/variables_1.9.rb +8 -0
  453. data/spec/opal/core/language_spec.rb +23 -0
  454. data/spec/opal/core/method/to_proc_spec.rb +28 -0
  455. data/spec/opal/core/module/alias_method_spec.rb +28 -0
  456. data/spec/opal/core/module/ancestors_spec.rb +11 -0
  457. data/spec/opal/core/module/append_features_spec.rb +14 -0
  458. data/spec/opal/core/module/attr_accessor_spec.rb +26 -0
  459. data/spec/opal/core/module/const_defined_spec.rb +85 -0
  460. data/spec/opal/core/module/const_get_spec.rb +85 -0
  461. data/spec/opal/core/module/const_missing_spec.rb +17 -0
  462. data/spec/opal/core/module/const_set_spec.rb +64 -0
  463. data/spec/opal/core/module/constants_spec.rb +49 -0
  464. data/spec/opal/core/module/fixtures/classes.rb +434 -0
  465. data/spec/opal/core/module/method_defined_spec.rb +48 -0
  466. data/spec/opal/core/module/module_function_spec.rb +25 -0
  467. data/spec/opal/core/module/name_spec.rb +52 -0
  468. data/spec/opal/core/module/public_method_defined_spec.rb +18 -0
  469. data/spec/opal/core/module/remove_const_spec.rb +22 -0
  470. data/spec/opal/core/module/undef_method_spec.rb +66 -0
  471. data/spec/opal/core/numeric/bit_and_spec.rb +7 -0
  472. data/spec/opal/core/numeric/bit_or_spec.rb +8 -0
  473. data/spec/opal/core/numeric/bit_xor_spec.rb +6 -0
  474. data/spec/opal/core/numeric/ceil_spec.rb +8 -0
  475. data/spec/opal/core/numeric/chr_spec.rb +8 -0
  476. data/spec/opal/core/numeric/comparison_spec.rb +24 -0
  477. data/spec/opal/core/numeric/complement_spec.rb +8 -0
  478. data/spec/opal/core/numeric/divide_spec.rb +10 -0
  479. data/spec/opal/core/numeric/eql_spec.rb +9 -0
  480. data/spec/opal/core/numeric/exponent_spec.rb +33 -0
  481. data/spec/opal/core/numeric/floor_spec.rb +8 -0
  482. data/spec/opal/core/numeric/gt_spec.rb +11 -0
  483. data/spec/opal/core/numeric/gte_spec.rb +12 -0
  484. data/spec/opal/core/numeric/integer_spec.rb +9 -0
  485. data/spec/opal/core/numeric/left_shift_spec.rb +21 -0
  486. data/spec/opal/core/numeric/lt_spec.rb +11 -0
  487. data/spec/opal/core/numeric/lte_spec.rb +12 -0
  488. data/spec/opal/core/numeric/minus_spec.rb +8 -0
  489. data/spec/opal/core/numeric/modulo_spec.rb +19 -0
  490. data/spec/opal/core/numeric/multiply_spec.rb +9 -0
  491. data/spec/opal/core/numeric/next_spec.rb +9 -0
  492. data/spec/opal/core/numeric/ord_spec.rb +9 -0
  493. data/spec/opal/core/numeric/plus_spec.rb +8 -0
  494. data/spec/opal/core/numeric/pred_spec.rb +7 -0
  495. data/spec/opal/core/numeric/right_shift_spec.rb +25 -0
  496. data/spec/opal/core/numeric/step_spec.rb +11 -0
  497. data/spec/opal/core/numeric/succ_spec.rb +9 -0
  498. data/spec/opal/core/numeric/times_spec.rb +36 -0
  499. data/spec/opal/core/numeric/to_f_spec.rb +7 -0
  500. data/spec/opal/core/numeric/to_i_spec.rb +7 -0
  501. data/spec/opal/core/numeric/to_json_spec.rb +8 -0
  502. data/spec/opal/core/numeric/to_s_spec.rb +26 -0
  503. data/spec/opal/core/numeric/uminus_spec.rb +9 -0
  504. data/spec/opal/core/numeric/upto_spec.rb +19 -0
  505. data/spec/opal/core/numeric/zero_spec.rb +7 -0
  506. data/spec/opal/core/object_id_spec.rb +56 -0
  507. data/spec/opal/core/proc/call_spec.rb +21 -0
  508. data/spec/opal/core/proc/element_reference_spec.rb +21 -0
  509. data/spec/opal/core/proc/proc_tricks_spec.rb +7 -0
  510. data/spec/opal/core/runtime/begin_spec.rb +39 -0
  511. data/spec/opal/core/runtime/block_send_spec.rb +28 -0
  512. data/spec/opal/core/runtime/block_spec.rb +23 -0
  513. data/spec/opal/core/runtime/bridged_classes_spec.rb +111 -0
  514. data/spec/opal/core/runtime/constants_spec.rb +13 -0
  515. data/spec/opal/core/runtime/donate_spec.rb +53 -0
  516. data/spec/opal/core/runtime/eval_spec.rb +5 -0
  517. data/spec/opal/core/runtime/main_methods_spec.rb +27 -0
  518. data/spec/opal/core/runtime/method_missing_spec.rb +62 -0
  519. data/spec/opal/core/runtime/method_spec.rb +31 -0
  520. data/spec/opal/core/runtime/operator_call_spec.rb +13 -0
  521. data/spec/opal/core/runtime/paren_spec.rb +14 -0
  522. data/spec/opal/core/runtime/rescue_spec.rb +38 -0
  523. data/spec/opal/core/runtime/return_spec.rb +38 -0
  524. data/spec/opal/core/runtime/send_spec.rb +34 -0
  525. data/spec/opal/core/runtime/singleton_class_spec.rb +13 -0
  526. data/spec/opal/core/runtime/super_spec.rb +212 -0
  527. data/spec/opal/core/runtime/truthy_spec.rb +23 -0
  528. data/spec/opal/core/runtime/variables_spec.rb +20 -0
  529. data/spec/opal/core/runtime_spec.rb +58 -0
  530. data/spec/opal/core/source_map_spec.rb +15 -0
  531. data/spec/opal/core/string_spec.rb +11 -0
  532. data/spec/opal/stdlib/erb/erb_spec.rb +30 -0
  533. data/spec/opal/stdlib/erb/inline_block.opalerb +3 -0
  534. data/spec/opal/stdlib/erb/quoted.opalerb +1 -0
  535. data/spec/opal/stdlib/erb/simple.opalerb +1 -0
  536. data/spec/opal/stdlib/js_spec.rb +66 -0
  537. data/spec/opal/stdlib/json/ext_spec.rb +48 -0
  538. data/spec/opal/stdlib/json/parse_spec.rb +33 -0
  539. data/spec/opal/stdlib/native/alias_native_spec.rb +27 -0
  540. data/spec/opal/stdlib/native/each_spec.rb +13 -0
  541. data/spec/opal/stdlib/native/element_reference_spec.rb +16 -0
  542. data/spec/opal/stdlib/native/exposure_spec.rb +33 -0
  543. data/spec/opal/stdlib/native/ext_spec.rb +19 -0
  544. data/spec/opal/stdlib/native/initialize_spec.rb +17 -0
  545. data/spec/opal/stdlib/native/method_missing_spec.rb +51 -0
  546. data/spec/opal/stdlib/native/native_alias_spec.rb +19 -0
  547. data/spec/opal/stdlib/native/native_class_spec.rb +18 -0
  548. data/spec/opal/stdlib/native/native_module_spec.rb +13 -0
  549. data/spec/opal/stdlib/native/native_reader_spec.rb +22 -0
  550. data/spec/opal/stdlib/native/native_writer_spec.rb +30 -0
  551. data/spec/opal/stdlib/native/new_spec.rb +8 -0
  552. data/spec/opal/stdlib/promise/always_spec.rb +30 -0
  553. data/spec/opal/stdlib/promise/error_spec.rb +15 -0
  554. data/spec/opal/stdlib/promise/rescue_spec.rb +44 -0
  555. data/spec/opal/stdlib/promise/then_spec.rb +71 -0
  556. data/spec/opal/stdlib/promise/trace_spec.rb +52 -0
  557. data/spec/opal/stdlib/promise/value_spec.rb +15 -0
  558. data/spec/opal/stdlib/promise/when_spec.rb +34 -0
  559. data/spec/opal/stdlib/template/paths_spec.rb +10 -0
  560. data/spec/opal/stdlib/thread/mutex_spec.rb +40 -0
  561. data/spec/opal/stdlib/thread/thread_queue_spec.rb +32 -0
  562. data/spec/opal/stdlib/thread/thread_spec.rb +60 -0
  563. data/spec/rubyspecs +144 -0
  564. data/spec/spec_helper.rb +53 -0
  565. data/spec/support/mspec_rspec_adapter.rb +33 -0
  566. data/spec/support/parser_helpers.rb +37 -0
  567. data/stdlib/README.md +3 -0
  568. data/stdlib/base64.rb +152 -0
  569. data/stdlib/benchmark.rb +557 -0
  570. data/stdlib/buffer.rb +41 -0
  571. data/stdlib/buffer/array.rb +66 -0
  572. data/stdlib/buffer/view.rb +70 -0
  573. data/stdlib/date.rb +248 -0
  574. data/stdlib/delegate.rb +29 -0
  575. data/stdlib/dir.rb +1 -0
  576. data/stdlib/encoding.rb +170 -0
  577. data/stdlib/enumerator.rb +1 -0
  578. data/stdlib/erb.rb +16 -0
  579. data/stdlib/file.rb +1 -0
  580. data/stdlib/fileutils.rb +0 -0
  581. data/stdlib/forwardable.rb +71 -0
  582. data/stdlib/iconv.rb +0 -0
  583. data/stdlib/js.rb +56 -0
  584. data/stdlib/json.rb +190 -0
  585. data/stdlib/math.rb +370 -0
  586. data/stdlib/native.rb +530 -0
  587. data/stdlib/nodejs.rb +7 -0
  588. data/stdlib/nodejs/dir.rb +13 -0
  589. data/stdlib/nodejs/file.rb +98 -0
  590. data/stdlib/nodejs/fileutils.rb +26 -0
  591. data/stdlib/nodejs/io.rb +2 -0
  592. data/stdlib/nodejs/irb.rb +45 -0
  593. data/stdlib/nodejs/kernel.rb +33 -0
  594. data/stdlib/nodejs/node_modules/.bin/js-yaml +140 -0
  595. data/stdlib/nodejs/node_modules/glob/LICENSE +15 -0
  596. data/stdlib/nodejs/node_modules/glob/README.md +357 -0
  597. data/stdlib/nodejs/node_modules/glob/common.js +177 -0
  598. data/stdlib/nodejs/node_modules/glob/glob.js +649 -0
  599. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/.eslintrc +17 -0
  600. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/LICENSE +15 -0
  601. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/README.md +37 -0
  602. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/inflight.js +44 -0
  603. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/LICENSE +15 -0
  604. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/README.md +36 -0
  605. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json +52 -0
  606. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/test/basic.js +51 -0
  607. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/wrappy.js +33 -0
  608. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/package.json +61 -0
  609. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/test.js +97 -0
  610. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/LICENSE +16 -0
  611. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/README.md +42 -0
  612. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/inherits.js +1 -0
  613. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/inherits_browser.js +23 -0
  614. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/package.json +51 -0
  615. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/test.js +25 -0
  616. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.npmignore +1 -0
  617. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.travis.yml +4 -0
  618. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/LICENSE +23 -0
  619. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/README.md +216 -0
  620. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/benchmark.js +15 -0
  621. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/browser.js +1181 -0
  622. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/minimatch.js +845 -0
  623. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +2 -0
  624. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.travis.yml +3 -0
  625. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md +121 -0
  626. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +8 -0
  627. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +191 -0
  628. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +2 -0
  629. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml +4 -0
  630. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +6 -0
  631. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md +80 -0
  632. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +5 -0
  633. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +38 -0
  634. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +73 -0
  635. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +56 -0
  636. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml +4 -0
  637. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE +18 -0
  638. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown +62 -0
  639. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js +6 -0
  640. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +13 -0
  641. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +83 -0
  642. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js +39 -0
  643. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +75 -0
  644. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js +32 -0
  645. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt +1075 -0
  646. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt +182 -0
  647. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js +9 -0
  648. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js +10 -0
  649. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh +24 -0
  650. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js +15 -0
  651. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/nested.js +16 -0
  652. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/order.js +10 -0
  653. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/pad.js +13 -0
  654. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js +7 -0
  655. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js +50 -0
  656. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/package.json +60 -0
  657. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/basic.js +399 -0
  658. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/brace-expand.js +45 -0
  659. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/defaults.js +274 -0
  660. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
  661. data/stdlib/nodejs/node_modules/glob/node_modules/once/LICENSE +27 -0
  662. data/stdlib/nodejs/node_modules/glob/node_modules/once/README.md +51 -0
  663. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/LICENSE +15 -0
  664. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/README.md +36 -0
  665. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/package.json +52 -0
  666. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/test/basic.js +51 -0
  667. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js +33 -0
  668. data/stdlib/nodejs/node_modules/glob/node_modules/once/once.js +21 -0
  669. data/stdlib/nodejs/node_modules/glob/node_modules/once/package.json +60 -0
  670. data/stdlib/nodejs/node_modules/glob/node_modules/once/test/once.js +23 -0
  671. data/stdlib/nodejs/node_modules/glob/package.json +72 -0
  672. data/stdlib/nodejs/node_modules/glob/sync.js +409 -0
  673. data/stdlib/nodejs/node_modules/js-yaml/HISTORY.md +277 -0
  674. data/stdlib/nodejs/node_modules/js-yaml/LICENSE +21 -0
  675. data/stdlib/nodejs/node_modules/js-yaml/README.md +288 -0
  676. data/stdlib/nodejs/node_modules/js-yaml/bin/js-yaml.js +140 -0
  677. data/stdlib/nodejs/node_modules/js-yaml/bower.json +23 -0
  678. data/stdlib/nodejs/node_modules/js-yaml/dist/js-yaml.js +3666 -0
  679. data/stdlib/nodejs/node_modules/js-yaml/dist/js-yaml.min.js +3 -0
  680. data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.js +102 -0
  681. data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.yml +18 -0
  682. data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.js +31 -0
  683. data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.json +22 -0
  684. data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.js +18 -0
  685. data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.yml +197 -0
  686. data/stdlib/nodejs/node_modules/js-yaml/index.js +7 -0
  687. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml.js +39 -0
  688. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/common.js +62 -0
  689. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/dumper.js +554 -0
  690. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/exception.js +25 -0
  691. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/loader.js +1581 -0
  692. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/mark.js +78 -0
  693. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema.js +103 -0
  694. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/core.js +18 -0
  695. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +25 -0
  696. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +28 -0
  697. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +17 -0
  698. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/json.js +25 -0
  699. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type.js +61 -0
  700. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/binary.js +133 -0
  701. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/bool.js +37 -0
  702. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/float.js +110 -0
  703. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/int.js +183 -0
  704. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/function.js +85 -0
  705. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +84 -0
  706. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +27 -0
  707. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/map.js +8 -0
  708. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/merge.js +12 -0
  709. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/null.js +36 -0
  710. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/omap.js +56 -0
  711. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/pairs.js +61 -0
  712. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/seq.js +8 -0
  713. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/set.js +33 -0
  714. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/str.js +8 -0
  715. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +98 -0
  716. data/stdlib/nodejs/node_modules/js-yaml/node_modules/.bin/esparse +117 -0
  717. data/stdlib/nodejs/node_modules/js-yaml/node_modules/.bin/esvalidate +177 -0
  718. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/HISTORY.md +115 -0
  719. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/LICENSE +21 -0
  720. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/README.md +239 -0
  721. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/arguments.js +36 -0
  722. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/choice.js +22 -0
  723. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/constants.js +59 -0
  724. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/help.js +13 -0
  725. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/nargs.js +33 -0
  726. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/parents.js +28 -0
  727. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/prefix_chars.js +23 -0
  728. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sub_commands.js +49 -0
  729. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sum.js +35 -0
  730. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/testformatters.js +270 -0
  731. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/index.js +1 -0
  732. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action.js +146 -0
  733. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append.js +55 -0
  734. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append/constant.js +47 -0
  735. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/count.js +40 -0
  736. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/help.js +48 -0
  737. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store.js +50 -0
  738. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/constant.js +43 -0
  739. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/false.js +27 -0
  740. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/true.js +26 -0
  741. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/subparsers.js +148 -0
  742. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/version.js +50 -0
  743. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action_container.js +481 -0
  744. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argparse.js +14 -0
  745. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/error.js +50 -0
  746. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/exclusive.js +54 -0
  747. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/group.js +75 -0
  748. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument_parser.js +1168 -0
  749. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/const.js +18 -0
  750. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/added_formatters.js +88 -0
  751. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/formatter.js +798 -0
  752. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/namespace.js +77 -0
  753. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.npmignore +2 -0
  754. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.travis.yml +8 -0
  755. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/README.markdown +825 -0
  756. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/bower.json +33 -0
  757. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/component.json +11 -0
  758. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/foo.js +10 -0
  759. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/gulpfile.js +26 -0
  760. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/lib/underscore.string.js +673 -0
  761. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/libpeerconnection.log +0 -0
  762. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/package.json +107 -0
  763. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/LICENSE +23 -0
  764. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/README.md +22 -0
  765. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/package.json +69 -0
  766. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore-min.js +6 -0
  767. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore.js +1415 -0
  768. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/package.json +62 -0
  769. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/README.md +73 -0
  770. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esparse.js +117 -0
  771. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js +177 -0
  772. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/esprima.js +3908 -0
  773. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/package.json +69 -0
  774. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/compat.js +239 -0
  775. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/reflect.js +422 -0
  776. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/run.js +66 -0
  777. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/runner.js +387 -0
  778. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/test.js +20238 -0
  779. data/stdlib/nodejs/node_modules/js-yaml/package.json +83 -0
  780. data/stdlib/nodejs/package.json +6 -0
  781. data/stdlib/nodejs/require.rb +30 -0
  782. data/stdlib/nodejs/rubygems.rb +68 -0
  783. data/stdlib/nodejs/yaml.rb +11 -0
  784. data/stdlib/observer.rb +202 -0
  785. data/stdlib/opal-parser.rb +54 -0
  786. data/stdlib/opal-source-maps.rb +2 -0
  787. data/stdlib/ostruct.rb +69 -0
  788. data/stdlib/pathname.rb +55 -0
  789. data/stdlib/phantomjs.rb +3 -0
  790. data/stdlib/pp.rb +35 -0
  791. data/stdlib/promise.rb +427 -0
  792. data/stdlib/racc/parser.rb +215 -0
  793. data/stdlib/rbconfig.rb +18 -0
  794. data/stdlib/securerandom.rb +12 -0
  795. data/stdlib/set.rb +170 -0
  796. data/stdlib/singleton.rb +40 -0
  797. data/stdlib/source_map.rb +5 -0
  798. data/stdlib/source_map/map.rb +220 -0
  799. data/stdlib/source_map/mapping.rb +26 -0
  800. data/stdlib/source_map/offset.rb +88 -0
  801. data/stdlib/source_map/version.rb +3 -0
  802. data/stdlib/source_map/vlq.rb +98 -0
  803. data/stdlib/sourcemap.rb +1 -0
  804. data/stdlib/stringio.rb +181 -0
  805. data/stdlib/strscan.rb +166 -0
  806. data/stdlib/template.rb +46 -0
  807. data/stdlib/thread.rb +164 -0
  808. data/stdlib/time.rb +9 -0
  809. data/stdlib/yaml.rb +1 -0
  810. data/tasks/benchmarking.rake +88 -0
  811. data/tasks/building.rake +58 -0
  812. data/tasks/documenting.rake +37 -0
  813. data/tasks/github.rake +19 -0
  814. data/tasks/linting.rake +18 -0
  815. data/tasks/testing.rake +125 -0
  816. data/vendored-minitest/minitest.rb +780 -0
  817. data/vendored-minitest/minitest/assertions.rb +662 -0
  818. data/vendored-minitest/minitest/autorun.rb +12 -0
  819. data/vendored-minitest/minitest/benchmark.rb +426 -0
  820. data/vendored-minitest/minitest/expectations.rb +281 -0
  821. data/vendored-minitest/minitest/hell.rb +11 -0
  822. data/vendored-minitest/minitest/mock.rb +220 -0
  823. data/vendored-minitest/minitest/parallel.rb +65 -0
  824. data/vendored-minitest/minitest/pride.rb +4 -0
  825. data/vendored-minitest/minitest/pride_plugin.rb +142 -0
  826. data/vendored-minitest/minitest/spec.rb +310 -0
  827. data/vendored-minitest/minitest/test.rb +293 -0
  828. data/vendored-minitest/minitest/unit.rb +45 -0
  829. data/vendored-minitest/test/unit.rb +28 -0
  830. metadata +1058 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 656f6a973e173e0bd5a50df20a8897162d94448c
4
+ data.tar.gz: 3f36e708f162370ad1f6d9ce690069eac5265158
5
+ SHA512:
6
+ metadata.gz: fa31c2681ea73a1528173b7a0792daf3ceaaab09e1099828e1d892fd9414b3e07188cddaccd2938b5bc307ce060eb8a660957105ea15da95ed7e96b0a31e8697
7
+ data.tar.gz: 638f1d51d485b764d3344e2b8150e1f2e6538c73f183bddd2ef2dd79a1587a709ef6359e93a803071c76114570898f70d35179750722bb395214f38549107fa5
@@ -0,0 +1,14 @@
1
+ .DS_Store
2
+ *.gem
3
+ .yardoc
4
+ .bundle
5
+ Gemfile.lock
6
+ build/
7
+ /.github_access_token
8
+ /cdn
9
+ /node_modules
10
+ /gh-pages
11
+ /tmp
12
+ .ruby-gemset
13
+ .ruby-version
14
+ .rvmrc
@@ -0,0 +1,7 @@
1
+ [submodule "spec/rubyspec"]
2
+ path = spec/rubyspec
3
+ url = https://github.com/ruby/rubyspec.git
4
+ [submodule "test/cruby"]
5
+ path = test/cruby
6
+ url = https://github.com/ruby/ruby.git
7
+ branch = ruby_2_2
@@ -0,0 +1,19 @@
1
+ # files:
2
+ # # define files included in the analysis (defaults to ["{app,lib}/**/*.rb"])
3
+ # included:
4
+ # - plugins/**/*.rb
5
+ # # define files excluded from the analysis (defaults to [])
6
+ # excluded:
7
+ # # you can use file paths
8
+ # - plugins/vendor/sparkr/sparkr.rb
9
+ # # or globs
10
+ # - plugins/vendor/**/*.rb
11
+ # # or regular expressions
12
+ # - !ruby/regexp /vendor/
13
+
14
+
15
+ files:
16
+ included:
17
+ - lib/**/*.rb
18
+ excluded:
19
+ - lib/opal/parser/grammar.rb
@@ -0,0 +1,48 @@
1
+ {
2
+ // http://jshint.com/docs/options
3
+
4
+ "curly" : true, // Require curly braces around blocks in loops and conditionals
5
+ "eqeqeq" : true, // Prohibit the use of == and != in favor of === and !==
6
+ "es3" : true, // Adhere to ECMAScript 3 specification
7
+ "forin" : true, // Require all for in loops to filter object's items (hasOwnProperty)
8
+ "latedef" : "nofunc", // Prohibit the use of a variable before it was defined (allow function declarations to be ignored)
9
+ "noarg" : true, // Prohibit the use of arguments.caller and arguments.callee
10
+ "undef" : true, // Prohibit the use of explicitly undeclared variables
11
+ "unused" : true, // Warn when you define and never use your variables
12
+
13
+ "globals": {
14
+ "Opal": true,
15
+ "OpalNode": true,
16
+ "callPhantom": true,
17
+ "JSON": true,
18
+ "Pippo": true
19
+ },
20
+
21
+ "browser": true,
22
+ "node": true,
23
+
24
+ // Currently the following checks are failing:
25
+
26
+ // To investigate:
27
+ "-W053": false, // Do not use String as a constructor
28
+ "-W069": false, // ['prop'] is better written in dot notation
29
+ "-W089": false, // The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype
30
+
31
+ // Compiler:
32
+ "-W021": false, // '$ClassName' is a function
33
+ "-W027": false, // Unreachable ';' after 'return'
34
+ "-W030": false, // Expected an assignment or function call and instead saw an expression
35
+ "-W032": false, // Unnecessary semicolon
36
+ "-W033": false, // Missing semicolon
37
+ "-W067": false, // Bad invocation
38
+ "-W083": false, // Don't make functions within a loop
39
+ "-W093": false, // Did you mean to return a conditional instead of an assignment?
40
+ "-W098": false, // 'variable' is defined but never used
41
+ "-W116": false, // Expected '===' and instead saw '=='
42
+ "-W120": false, // You might be leaking a variable ($ClassName) here
43
+
44
+ // Keeping these:
45
+ "-W061": false, // eval can be harmful
46
+ "-W086": false, // Expected a 'break' statement before 'case'
47
+ "-W100": false // This character may get silently deleted by one or more browsers
48
+ }
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --format progress
3
+ --pattern spec/cli/**/*_spec.rb
@@ -0,0 +1,2 @@
1
+ BASE_DIR_REGEXP: 'lib/opal'
2
+ SPEC_DIR_REGEXP: 'spec/lib'
@@ -0,0 +1,3 @@
1
+ BASE_DIR_REGEXP: '(?:opal/corelib|stdlib)'
2
+ SPEC_DIR_REGEXP: '(?:spec/corelib/(?:core|language)|spec/opal|spec/stdlib/.*?/spec\b)'
3
+ RSPEC_COMMAND: 'bundle exec ./bin/opal-mspec'
@@ -0,0 +1,60 @@
1
+ language: ruby
2
+
3
+ sudo: false
4
+
5
+ cache:
6
+ bundler: true
7
+ directories:
8
+ - /home/travis/.nvm/
9
+
10
+ matrix:
11
+ fast_finish: true
12
+
13
+ include:
14
+ - rvm: 2.2
15
+ env: RUN=default TZ="/usr/share/zoneinfo/Pacific/Fiji"
16
+
17
+ - rvm: 2.2
18
+ env: RUN=rspec TILT_VERSION=2.0.1
19
+
20
+ - rvm: 2.1
21
+ env: RUN=rspec
22
+
23
+ - rvm: 1.9.3
24
+ env: RUN=rspec
25
+
26
+ - rvm: 2.0.0
27
+ env: RUN="rspec mspec_phantom"
28
+
29
+ - rvm: rbx
30
+ env: RUN=rspec
31
+
32
+ - rvm: jruby
33
+ env: RUN=rspec
34
+
35
+ - rvm: jruby-head
36
+ env: RUN=rspec
37
+
38
+ allow_failures:
39
+ - rvm: 1.9.3
40
+ - rvm: rbx
41
+ - rvm: jruby
42
+ - rvm: jruby-head
43
+
44
+
45
+ before_install:
46
+ # Keep track of which version of node and phantomjs we're running the specs against
47
+ - node -v
48
+ - phantomjs -v
49
+ - git submodule update --init
50
+ - npm install -g jshint
51
+
52
+ script:
53
+ - "bundle exec rake $RUN"
54
+
55
+ notifications:
56
+ irc: "irc.freenode.org#opal"
57
+ webhooks:
58
+ urls:
59
+ - https://webhooks.gitter.im/e/2ea12333adebda0c2289
60
+
@@ -0,0 +1,6 @@
1
+ lib/opal.rb
2
+ lib/opal/**/*.rb
3
+ --markup markdown
4
+ -
5
+ CHANGELOG.md
6
+ docs/compiler_directives.md
@@ -0,0 +1,571 @@
1
+ ## 0.9.0 (edge)
2
+
3
+ ## 0.8.0 2015-07-16
4
+
5
+ * Update to Sprockets v3.0.
6
+
7
+ * Delegate dependency management directly to Sprockets (when used) making sourcemaps swift again.
8
+ This means code generated by sprockets will always need to be bootstrapped via `Opal.load` or `Opal.require`.
9
+ Luckily `Opal::Processor.load_asset_code(sprockets, name)` does just that in the right way.
10
+
11
+ * Enable operator inlining by default in the compiler.
12
+
13
+ * Fix `Promise#always`.
14
+
15
+ * Update to Sprockets v3.0.
16
+
17
+ * Delegate dependency management directly to Sprockets (when used) making sourcemaps swift again.
18
+ This means code generated by sprockets will always need to be bootstrapped via `Opal.load` or `Opal.require`.
19
+ Luckily `Opal::Processor.load_asset_code(sprockets, name)` does just that in the right way.
20
+
21
+ * Enable operator inlining by default in the compiler.
22
+
23
+ * Fix `Promise#always`.
24
+
25
+ * Fix `String#split` when no match is found and a limit is provided
26
+
27
+ * Fix `require_tree(".")` when used from file at the root of the assets paths
28
+
29
+ * `Hash[]` implementation fully compliant with rubyspec
30
+
31
+ * Removed `minitest` from stdlib. It's not part of MRI and it never belonged there, checkout the `opal-minitest` gem instead.
32
+
33
+ * Parser: Allow trailing comma in paren arglists, after normal args as
34
+ well as assoc args.
35
+
36
+ * Parser: Fix parsing of parens following divide operator without a
37
+ space.
38
+
39
+ * Parser: Fix bug where keyword arguments could not be parsed if
40
+ method definition did not have parens around arguments.
41
+
42
+ * Newly compliant with RubySpec:
43
+ * `Array#bsearch`
44
+ * `Array#combination`
45
+ * `Array#permutation`
46
+ * `Array#product`
47
+ * `Array#rotate!`
48
+ * `Array#rotate`
49
+ * `Array#sample`
50
+ * `Array#to_h`
51
+ * `Array#values_at`
52
+ * `Array#zip`
53
+ * `Enumerator#with_index`
54
+ * `Kernel#===`
55
+ * `Kernel#Array`
56
+ * `Kernel#Float`
57
+ * `Kernel#Hash`
58
+ * `Kernel#Integer`
59
+ * `Kernel#String`
60
+ * `Kernel#format`
61
+ * `Kernel#sprintf`
62
+ * `MatchData#==`
63
+ * `MatchData#eql?`
64
+ * `MatchData#values_at`
65
+ * `Module#instance_methods`
66
+ * `Regexp#match`
67
+ * `String#%`
68
+ * `String#===`
69
+ * `String#==`
70
+ * `String#[]`
71
+ * `String#each_line`
72
+ * `String#eql?`
73
+ * `String#index`
74
+ * `String#inspect`
75
+ * `String#lines`
76
+ * `String#match`
77
+ * `String#next`
78
+ * `String#oct`
79
+ * `String#scan`
80
+ * `String#slice`
81
+ * `String#split`
82
+ * `String#succ`
83
+ * `String#to_i`
84
+ * `String#try_convert`
85
+
86
+ * Misc corelib fixes:
87
+ * `Module#const_get` accepts a scoped constant name
88
+ * `Regexp#===` sets global match data vars
89
+
90
+ ## 0.7.2 2015-04-23
91
+
92
+ * Remove Sprockets 3.0 support (focus moved to upcoming 0.8)
93
+
94
+ * Fix version number consistency.
95
+
96
+ ## 0.7.1 2015-02-14
97
+
98
+ * CLI options `-d` and `-v` now set respectively `$DEBUG` and `$VERBOSE`
99
+
100
+ * Fixed a bug that would make the `-v` CLI option wait for STDIN input
101
+
102
+ * Add the `-E` / `--no-exit` CLI option to skip implicit `Kernel#exit` call
103
+
104
+ * Now the CLI implicitly calls `Kernel#exit` at the end of the script, thus making `at_exit` blocks be respected.
105
+
106
+ ## 0.7.0 2015-02-01
107
+
108
+ * Stop keyword-arg variable names leaking to global javascript scope
109
+
110
+ * `Class#native_class` now also exposes `MyClass.new` (Ruby) as `Opal.global.MyClass.new()` (JS)
111
+
112
+ * Add CRuby (MRI) tests harness to start checking Opal against them too.
113
+
114
+ * Add Minitest to the stdlib.
115
+
116
+ * Add `Date#<=>` with specs.
117
+
118
+ * Show extended info and context upon parsing, compiling and building errors.
119
+
120
+ * Support keyword arguments in method calls and definitions.
121
+
122
+ * Fix `begin`/`rescue` blocks to evaluate to last expression.
123
+
124
+ * Add support for `RUBY_ENGINE/RUBY_PLATFORM != "opal"` pre-processor directives.
125
+
126
+ if RUBY_ENGINE != "opal"
127
+ # this code never compiles
128
+ end
129
+
130
+ * Fix donating methods defined in modules. This ensures that if a class includes more than one module, then the methods defined on the class respect the order in which the modules are included.
131
+
132
+ * Improved support for recursive `Hash` for both `#inspect` and `#hash`.
133
+
134
+ * Optimized `Hash` implementation for `String` and `Symbol`, they have a separate hash-table in which they're used as both keys and hashes.
135
+
136
+ * Added real `#hash` / `eql?` support, previously was relying on `.toString()`.
137
+
138
+ * `String#to_proc` now uses `__send__` instead of `send` for calling
139
+ methods on receivers.
140
+
141
+ * Deprecated `Opal::Sprockets::Environment`. It can easily be replaced by `Opal::Server` or by appending `Opal.paths` to a `Sprockets::Environment`:
142
+
143
+ Sprockets::Environment.new.tap { |e| Opal.paths.each {|p| e.append_path(p)} }
144
+
145
+ * Add `Set` methods `#classify`, `#collect!`, `#map!`, `#subtract` `#replace`,
146
+ `#difference` and `#eql?`
147
+
148
+ * Support `module_function` without args to toggle module functions.
149
+
150
+ * Fix bug where command calls with no space and sym arg were incorrectly parsed.
151
+
152
+ * Add some `StringScanner` methods.
153
+
154
+ * Add `Date#<<` and `Date#>>` implementations.
155
+
156
+ * Support nested directories using `require_tree` directive.
157
+
158
+ * Fix bug where Exception subclasses could not have methods defined on them.
159
+
160
+ * Fix symbols with interpolations `:"#{foo}"`
161
+
162
+ * Implement $1..N matchers and rewrite support for $~, $', $& and $\`.
163
+
164
+ * Implement `Regexp.last_match`.
165
+
166
+ * Fixed `-@` unary op. precedence with a numeric and followed by a method call (e.g. `-1.foo` was parsed as `-(1.foo)`)
167
+
168
+ * `require_relative` (with strings) is now preprocessed, expanded and added to `Compiler#requires`
169
+
170
+ * Rewritten the require system to respect requires position (previously all the requires were stacked up at the top of the file)
171
+
172
+ * Implement for-loop syntax
173
+
174
+ * Add Array#|
175
+
176
+ * Fix Range.new to raise `ArgumentError` on contructor values that cannot
177
+ be compared
178
+
179
+ * Fix compiler bug where Contiguous strings were not getting concatenated.
180
+
181
+ * Cleanup generated code for constant access. All constant lookups now go through `$scope.get('CONST_NAME')` to produce cleaner code and a unified place for const missing dispatch.
182
+
183
+ * Remove `const_missing` option from compiler. All constant lookups are now strict.
184
+
185
+ * Add initial support for Module#autoload.
186
+
187
+ * Fix `Enumerator#with_index`, `Numeric#round`.
188
+
189
+ ## 0.6.2 2014-04-25
190
+
191
+ * Added Range#size
192
+
193
+ * `opal` executable now reads STDIN when no file or `-e` are passed
194
+
195
+ * `opal` executable doesn't exit after showing version on `-v` if other options are passed
196
+
197
+ * (Internal) improved the mspec runner
198
+
199
+ ## 0.6.1 2014-04-15
200
+
201
+ * Updated RubySpecs to master and added `rubysl-*` specs. Thanks to Mike Owens (@mieko)
202
+
203
+ * Added `Kernel#require_remote(url)` in `opal-parser` that requires files with basic synchronous ajax
204
+ GET requests. It is used to load `<scripts type="text/ruby" src="…url…">`.
205
+
206
+ * Various parsing fixes (Hash parsing, `def` returns method name, cleanup `core/util`, Enumerator fixes)
207
+
208
+ * Added `#native_reader`, `#native_writer` and `#native_accessor`as class methods
209
+ donated by `include Native`
210
+
211
+ * Added specs for Sprockets' processors (both .js.rb and .opalerb), backported from `opal-rails`
212
+
213
+ * Set 2.1.1 as RUBY_VERSION
214
+
215
+ * Add `opal-build` command utility to easily build libraries to js
216
+
217
+ * Add `opal-repl` to gemspec executables,
218
+ previously was only available by using Opal from source
219
+
220
+ * Fix parsing `=>` in hash literals where it would sometimes incorrectly
221
+ parse as a key name.
222
+
223
+ ## 0.6.0 2014-03-05
224
+
225
+ * Fix parsing of escapes in single-strings ('foo\n'). Only ' and \
226
+ characters now get escaped in single quoted strings. Also, more escape
227
+ sequences in double-quoted strings are now supported: `\a`, `\v`, `\f`,
228
+ `\e`, `\s`, octal (`\314`), hex (`\xff`) and unicode (`\u1234`).
229
+
230
+ * Sourcemaps revamp. Lexer now tracks column and line info for every token to
231
+ produce much more accurate sourcemaps. All method calls are now located on
232
+ the correct source line, and multi-line xstrings are now split to generate
233
+ a map line-to-line for long inline javascript parts.
234
+
235
+ * Merged sprockets support from `opal-sprockets` directly into Opal. For the
236
+ next release, the exernal `opal-sprockets` gem is no longer needed. This
237
+ commit adds `Opal::Processor`, `Opal::Server` and `Opal::Environment`.
238
+
239
+ * Introduce pre-processed if directives to hide code from Opal. Two special
240
+ constant checks now take place in the compiler. Either `RUBY_ENGINE` or
241
+ `RUBY_PLATFORM` when `== "opal"`. Both if and unless statements can pick
242
+ up these logic checks:
243
+
244
+ if RUBY_ENGINE == "opal"
245
+ # this code compiles
246
+ else
247
+ # this code never compiles
248
+ end
249
+
250
+ Unless:
251
+
252
+ unless RUBY_ENGINE == "opal"
253
+ # this code never compiles
254
+ end
255
+
256
+ This is particularly useful for avoiding `require()` statements being
257
+ picked up, which are included at compile time.
258
+
259
+ * Add special `debugger` method to compiler. Compiles down to javascript
260
+ `debugger` keyword to start in-browser debug console.
261
+
262
+ * Add missing string escapes to `read_escape` in lexer. Now most ruby escape
263
+ sequences are properly detected and handled in string parsing.
264
+
265
+ * Disable escapes inside x-strings. This means no more double escaping all
266
+ characters in x-strings and backticks. (`\n` => `\n`).
267
+
268
+ * Add `time.rb` to stdlib and moved `Time.parse()` and `Time.iso8601()`
269
+ methods there.
270
+
271
+ * `!` is now treated as an unary method call on the object. Opal now parsed
272
+ `!` as a def method name, and implements the method on `BasicObject`,
273
+ `NilClass` and `Boolean`.
274
+
275
+ * Fixed bug where true/false as object literals from javascript were not
276
+ correctly being detected as truthy/falsy respectively. This is due to the
277
+ javascript "feature" where `new Boolean(false) !== false`.
278
+
279
+ * Moved `native.rb` to stdlib. Native support must now be explicitly required
280
+ into Opal. `Native` is also now a module, instead of a top level class.
281
+ Also added `Native::Object#respond_to?`.
282
+
283
+ * Remove all core `#as_json()` methods from `json.rb`. Added them externally
284
+ to `opal-activesupport`.
285
+
286
+ * `Kernel#respond_to?` now calls `#respond_to_missing?` for compliance.
287
+
288
+ * Fix various `String` methods and add relevant rubyspecs for them. `#chars`,
289
+ `#to_f`, `#clone`, `#split`.
290
+
291
+ * Fix `Array` method compliance: `#first`, `#fetch`, `#insert`, `#delete_at`,
292
+ `#last`, `#splice`, `.try_convert`.
293
+
294
+ * Fix compliance of `Kernel#extend` and ensure it calls `#extended()` hook.
295
+
296
+ * Fix bug where sometimes the wrong regexp flags would be generated in the
297
+ output javascript.
298
+
299
+ * Support parsing `__END__` constructs in ruby code, inside the lexer. The
300
+ content is gathered up by use of the parser. The special constant `DATA`
301
+ is then available inside the ruby code to read the content.
302
+
303
+ * Support single character strings (using ? prefix) with escaped characters.
304
+
305
+ * Fix lexer to detect dereferencing on local variables even when whitespace
306
+ is present (`a = 0; a [0]` parses as a deference on a).
307
+
308
+ * Fix various `Struct` methods. Fixed `#each` and `#each_pair` to return
309
+ self. Add `Struct.[]` as synonym for `Struct.new`.
310
+
311
+ * Implemented some `Enumerable` methods: `#collect_concat`, `#flat_map`,
312
+ `#reject`, `#reverse_each`, `#partition` and `#zip`.
313
+
314
+ * Support any Tilt template for `index_path` in `Opal::Server`. All index
315
+ files are now run through `Tilt` (now supports haml etc).
316
+
317
+ * Fix code generation of `op_asgn_1` calls (`foo[val] += 10`).
318
+
319
+ * Add `base64` to stdlib.
320
+
321
+ * Add promises implementation to stdlib.
322
+
323
+ * Add `Math` module to corelib.
324
+
325
+ * Use `//#` instead of `//@` deprecated syntax for sourceMappingURL.
326
+
327
+ * Implicitly require `erb` from stdlib when including erb templates.
328
+
329
+ * Fix `Regexp.escape` to also escape '(' character.
330
+
331
+ * Support '<' and '>' as matching pairs in string boundrys `%q<hi>`.
332
+
333
+ * `Opal::Server` no longer searches for an index file if not specified.
334
+
335
+ * Move `Math` and `Encoding` to stdlib. Can be required using
336
+ `require 'math'`, etc.
337
+
338
+ * Fix some stdlib `Date` methods.
339
+
340
+ * Fix `Regexp.escape` to properly escape \n, \t, \r, \f characters.
341
+
342
+ * Add `Regexp.quote` as an alias of `escape`.
343
+
344
+ ## 0.5.5 2013-11-25
345
+
346
+ * Fix regression: add `%i[foo bar]` style words back to lexer
347
+
348
+ * Move corelib from `opal/core` to `opal/corelib`. This stops files in
349
+ `core/` clashing with user files.
350
+
351
+ ## 0.5.4 2013-11-20
352
+
353
+ * Reverted `RUBY_VERSION` to `1.9.3`. Opal `0.6.0` will be the first release
354
+ for `2.0.0`.
355
+
356
+ ## 0.5.3 2013-11-12
357
+
358
+ * Opal now targets ruby 2.0.0
359
+
360
+ * Named function inside class body now generates with `$` prefix, e.g.
361
+ `$MyClass`. This makes it easier to wrap/bridge native functions.
362
+
363
+ * Support Array subclasses
364
+
365
+ * Various fixes to `String`, `Kernel` and other core classes
366
+
367
+ * Fix `Method#call` to use correct receiver
368
+
369
+ * Fix `Module#define_method` to call `#to_proc` on explicit argument
370
+
371
+ * Fix `super()` dispatches on class methods
372
+
373
+ * Support `yield()` calls from inside a block (inside a method)
374
+
375
+ * Cleanup string parsing inside lexer
376
+
377
+ * Cleanup parser/lexer to use `t` and `k` prefixes for all tokens
378
+
379
+ ## 0.5.2 2013-11-11
380
+
381
+ * Include native into corelib for 0.5.x
382
+
383
+ ## 0.5.1 2013-11-10
384
+
385
+ * Move all corelib under `core/` directory to prevent filename clashes with
386
+ `require`
387
+
388
+ * Move `native.rb` into stdlib - must now be explicitly required
389
+
390
+ * Implement `BasicObject#__id__`
391
+
392
+ * Cleanup and fix various `Enumerable` methods
393
+
394
+ ## 0.5.0 2013-11-03
395
+
396
+ * WIP: https://gist.github.com/elia/7747460
397
+
398
+ ## 0.4.2 2013-07-03
399
+
400
+ * Added `Kernel#rand`. (fntzr)
401
+
402
+ * Restored the `bin/opal` executable in gemspec.
403
+
404
+ * Now `.valueOf()` is used in `#to_n` of Boolean, Numeric, Regexp and String
405
+ to return the naked JavaScript value instead of a wrapping object.
406
+
407
+ * Parser now wraps or-ops in paranthesis to stop variable order from
408
+ leaking out when minified by uglify. We now have code in this
409
+ format: `(((tmp = lhs) !== false || !==nil) ? tmp : rhs)`.
410
+
411
+ ## 0.4.1 2013-06-16
412
+
413
+ * Move sprockets logic out to external opal-sprockets gem. That now
414
+ handles the compiling and loading of opal files in sprockets.
415
+
416
+ ## 0.4.0 2013-06-15
417
+
418
+ * Added fragments to parser. All parser methods now generate one or
419
+ more Fragments which store the original sexp. This allows us to
420
+ enumerate over them after parsing to map generated lines back to
421
+ original line numbers.
422
+
423
+ * Reverted `null` for `nil`. Too buggy at this time.
424
+
425
+ * Add Opal::SprocketsParser as Parser subclass for handling parsing
426
+ for sprockets environment. This subclass handles require statements
427
+ and stores them for sprockets to use.
428
+
429
+ * Add :irb option to parser to keep top level lvars stored inside
430
+ opal runtime so that an irb session can be persisted and maintain
431
+ access to local variables.
432
+
433
+ * Add Opal::Environment#use_gem() helper to add a gem to opals load
434
+ path.
435
+
436
+ * Stop pre-setting ivars to `nil`. This is no longer needed as `nil`
437
+ is now `null` or `undefined`.
438
+
439
+ * Use `null` as `nil` in opal. This allows us to send methods to
440
+ `null` and `undefined`, and both act as `nil`. This makes opal a
441
+ much better javascript citizen. **REVERTED**
442
+
443
+ * Add Enumerable#none? with specs.
444
+
445
+ * Add Opal.block_send() runtime helper for sending methods to an
446
+ object which uses a block.
447
+
448
+ * Remove \_klass variable for denoting ruby classes, and use
449
+ constructor instead. constructor is a javascript property used for
450
+ the same purpose, and this makes opal fit in as a better js citizen.
451
+
452
+ * Add Class.bridge\_class method to bridge a native constructor into an
453
+ opal class which will set it up with all methods from Object, as
454
+ well as giving it a scope and name.
455
+
456
+ * Added native #[]= and #to_h methods, for setting properties and
457
+ converting to a hash respectivaly.
458
+
459
+ * Fix bug where '::' was parsed as :colon2 instead of :colon3 when in
460
+ an args scope. Fixes #213
461
+
462
+ * Remove lots of properties added to opal classes. This makes normal
463
+ js constructors a lot closer to opal classes, making is easier to
464
+ treat js classes as opal classes.
465
+
466
+ * Merge Hash.from_native into Hash.new
467
+
468
+ ## 0.3.44 2013-05-31
469
+
470
+ * Cleanup runtime, and remove various flags and functions from opal
471
+ objects and classes (moving them to runtime methods).
472
+
473
+ * Remove some activesupport methods into external lib.
474
+
475
+ * Add/fix lots of String methods, with specs.
476
+
477
+ * Add more methods to MatchData class.
478
+
479
+ * Implement $' and $` variables.
480
+
481
+ * Opal can now call methods on all native objects, via method missing
482
+ dispatcher.
483
+
484
+ * Add Opal::Environment as custom sprockets subclass which adds all
485
+ opal load paths automatically.
486
+
487
+ ## 0.3.43 2013-05-02
488
+
489
+ * Stop inlining respond_to? inside the parser. This now fully respects
490
+ an object overriding respond_to?.
491
+
492
+ * Expose `Opal.eval()` function when parser is loaded for parsing
493
+ and running strings of ruby code.
494
+
495
+ * Add erb to corelib (as well as compiler to gem lib). ERB files with
496
+ .opalerb extension will automatically be compiled into Template
497
+ constant.
498
+
499
+ * Added some examples into examples/ dir.
500
+
501
+ * Add Opal.send() javascript function for sending methods to ruby
502
+ objects.
503
+
504
+ * Native class for wrapping and interacting with native objects and
505
+ function calls.
506
+
507
+ * Add local_storage to stdlib as a basic wrapper around localStorage.
508
+
509
+ * Make method_missing more performant by reusing same dispatch function
510
+ instead of reallocating one for each run.
511
+
512
+ * Fix Kernel#format to work in firefox. String.prototype.replace() had
513
+ different semantics for empty matching groups which was breaking
514
+ Kernel#format.
515
+
516
+ ## 0.3.42 2013-03-21
517
+
518
+ * Fix/add lots of language specs.
519
+
520
+ * Seperate sprockets support out to opal-sprockets gem.
521
+
522
+ * Support %r[foo] style regexps.
523
+
524
+ * Use mspec to run specs on corelib and runtime. Rubyspecs are now
525
+ used, where possible to be as compliant as possible.
526
+
527
+ ## 0.3.41 2013-02-26
528
+
529
+ * Remove bin/opal - no longer required for building sources.
530
+
531
+ * Depreceate Opal::Environment. The Opal::Server class provides a better
532
+ method of using the opal load paths. Opal.paths still stores a list of
533
+ load paths for generic sprockets based apps to use.
534
+
535
+ ## 0.3.40 2013-02-23
536
+
537
+ * Add Opal::Server as an easy to configure rack server for testing and
538
+ running Opal based apps.
539
+
540
+ * Added optional arity check mode for parser. When turned on, every method
541
+ will have code which checks the argument arity. Off by default.
542
+
543
+ * Exception subclasses now relfect their name in webkit/firefox debuggers
544
+ to show both their class name and message.
545
+
546
+ * Add Class#const_set. Trying to access undefined constants by a literal
547
+ constant will now also raise a NameError.
548
+
549
+ ## 0.3.39 2013-02-20
550
+
551
+ * Fix bug where methods defined on a parent class after subclass was defined
552
+ would not given subclass access to method. Subclasses are now also tracked
553
+ by superclass, by a private '_inherited' property.
554
+
555
+ * Fix bug where classes defined by `Class.new` did not have a constant scope.
556
+
557
+ * Move Date out of opal.rb loading, as it is part of stdlib not corelib.
558
+
559
+ * Fix for defining methods inside metaclass, or singleton_class scopes.
560
+
561
+ ## 0.3.38 2013-02-13
562
+
563
+ * Add Native module used for wrapping objects to forward calls as native
564
+ calls.
565
+
566
+ * Support method_missing for all objects. Feature can be enabled/disabled on
567
+ Opal::Processor.
568
+
569
+ * Hash can now use any ruby object as a key.
570
+
571
+ * Move to Sprockets based building via `Opal::Processor`.