opal 1.0.2 → 1.1.0

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 (408) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +14 -12
  3. data/.gitattributes +1 -1
  4. data/.github/FUNDING.yml +1 -0
  5. data/.github/workflows/build.yml +90 -0
  6. data/.jshintrc +1 -1
  7. data/.overcommit.yml +35 -0
  8. data/.rubocop.yml +44 -7
  9. data/{.rubocop_todo.yml → .rubocop/todo.yml} +4 -5
  10. data/CHANGELOG.md +119 -7
  11. data/Gemfile +2 -3
  12. data/HACKING.md +2 -9
  13. data/LICENSE +1 -1
  14. data/README.md +21 -18
  15. data/UNRELEASED.md +109 -2
  16. data/benchmark-ips/bm_array_pop_1.rb +8 -0
  17. data/benchmark-ips/bm_array_shift.rb +7 -0
  18. data/benchmark-ips/bm_js_symbols_vs_strings.rb +7 -2
  19. data/benchmark-ips/class_shovel_vs_singleton_class.rb +16 -0
  20. data/bin/build-browser-source-map-support +5 -0
  21. data/bin/format-filters +54 -0
  22. data/bin/git-submodule-fast-install +49 -0
  23. data/bin/remove-filters +39 -0
  24. data/bin/setup +4 -0
  25. data/bin/yarn +11 -0
  26. data/docs/releasing.md +18 -0
  27. data/docs/roda-sprockets.md +86 -0
  28. data/docs/sinatra.md +5 -12
  29. data/examples/rack/Gemfile +1 -0
  30. data/examples/rack/app/application.rb +3 -0
  31. data/examples/rack/config.ru +5 -4
  32. data/exe/opal-repl +2 -83
  33. data/lib/opal/ast/builder.rb +1 -1
  34. data/lib/opal/builder.rb +2 -10
  35. data/lib/opal/builder_processors.rb +1 -1
  36. data/lib/opal/cli.rb +4 -1
  37. data/lib/opal/cli_options.rb +11 -3
  38. data/lib/opal/cli_runners.rb +27 -37
  39. data/lib/opal/cli_runners/applescript.rb +5 -44
  40. data/lib/opal/cli_runners/chrome.js +7 -35
  41. data/lib/opal/cli_runners/chrome.rb +75 -17
  42. data/lib/opal/cli_runners/compiler.rb +17 -0
  43. data/lib/opal/cli_runners/nashorn.rb +9 -43
  44. data/lib/opal/cli_runners/nodejs.rb +18 -47
  45. data/lib/opal/cli_runners/server.rb +18 -6
  46. data/lib/opal/cli_runners/source-map-support-browser.js +6445 -0
  47. data/lib/opal/cli_runners/source-map-support.js +639 -0
  48. data/lib/opal/cli_runners/system_runner.rb +45 -0
  49. data/lib/opal/compiler.rb +57 -29
  50. data/lib/opal/config.rb +0 -5
  51. data/lib/opal/erb.rb +1 -1
  52. data/lib/opal/magic_comments.rb +34 -0
  53. data/lib/opal/nodes/args/arity_check.rb +2 -1
  54. data/lib/opal/nodes/base.rb +1 -1
  55. data/lib/opal/nodes/call.rb +1 -4
  56. data/lib/opal/nodes/def.rb +2 -0
  57. data/lib/opal/nodes/iter.rb +1 -1
  58. data/lib/opal/nodes/literal.rb +19 -14
  59. data/lib/opal/nodes/logic.rb +5 -80
  60. data/lib/opal/nodes/masgn.rb +2 -0
  61. data/lib/opal/nodes/rescue.rb +1 -1
  62. data/lib/opal/nodes/super.rb +24 -10
  63. data/lib/opal/nodes/top.rb +5 -4
  64. data/lib/opal/parser/patch.rb +15 -0
  65. data/lib/opal/parser/with_c_lexer.rb +2 -1
  66. data/lib/opal/parser/with_ruby_lexer.rb +1 -1
  67. data/lib/opal/path_reader.rb +2 -2
  68. data/lib/opal/paths.rb +8 -5
  69. data/lib/opal/repl.rb +103 -0
  70. data/lib/opal/rewriter.rb +4 -0
  71. data/lib/opal/rewriters/for_rewriter.rb +1 -1
  72. data/lib/opal/rewriters/js_reserved_words.rb +7 -7
  73. data/lib/opal/rewriters/numblocks.rb +31 -0
  74. data/lib/opal/rewriters/returnable_logic.rb +33 -0
  75. data/lib/opal/util.rb +11 -48
  76. data/lib/opal/version.rb +1 -1
  77. data/opal.gemspec +26 -26
  78. data/opal/corelib/array.rb +160 -118
  79. data/opal/corelib/array/pack.rb +5 -3
  80. data/opal/corelib/basic_object.rb +4 -4
  81. data/opal/corelib/class.rb +2 -1
  82. data/opal/corelib/comparable.rb +49 -31
  83. data/opal/corelib/constants.rb +5 -5
  84. data/opal/corelib/enumerable.rb +108 -46
  85. data/opal/corelib/enumerator.rb +27 -12
  86. data/opal/corelib/file.rb +3 -1
  87. data/opal/corelib/hash.rb +6 -1
  88. data/opal/corelib/helpers.rb +8 -28
  89. data/opal/corelib/io.rb +12 -7
  90. data/opal/corelib/kernel.rb +45 -14
  91. data/opal/corelib/kernel/format.rb +3 -1
  92. data/opal/corelib/math.rb +8 -6
  93. data/opal/corelib/method.rb +8 -0
  94. data/opal/corelib/module.rb +17 -2
  95. data/opal/corelib/number.rb +3 -12
  96. data/opal/corelib/proc.rb +16 -0
  97. data/opal/corelib/random/mersenne_twister.rb +147 -0
  98. data/opal/corelib/range.rb +3 -13
  99. data/opal/corelib/regexp.rb +10 -6
  100. data/opal/corelib/runtime.js +208 -81
  101. data/opal/corelib/string.rb +55 -49
  102. data/opal/corelib/string/encoding.rb +109 -32
  103. data/opal/corelib/string/unpack.rb +2 -17
  104. data/opal/corelib/struct.rb +14 -1
  105. data/opal/corelib/time.rb +4 -0
  106. data/opal/opal.rb +1 -1
  107. data/opal/opal/mini.rb +1 -1
  108. data/package.json +16 -0
  109. data/spec/README.md +10 -0
  110. data/spec/filters/bugs/array.rb +76 -0
  111. data/spec/filters/bugs/base64.rb +10 -0
  112. data/spec/filters/bugs/basicobject.rb +12 -0
  113. data/spec/filters/bugs/bigdecimal.rb +248 -0
  114. data/spec/filters/bugs/class.rb +12 -0
  115. data/spec/filters/bugs/complex.rb +7 -0
  116. data/spec/filters/bugs/date.rb +104 -0
  117. data/spec/filters/bugs/encoding.rb +259 -0
  118. data/spec/filters/bugs/enumerable.rb +26 -0
  119. data/spec/filters/bugs/enumerator.rb +48 -0
  120. data/spec/filters/bugs/exception.rb +120 -0
  121. data/spec/filters/bugs/file.rb +48 -0
  122. data/spec/filters/bugs/float.rb +74 -0
  123. data/spec/filters/bugs/hash.rb +60 -0
  124. data/spec/filters/bugs/integer.rb +78 -0
  125. data/spec/filters/bugs/io.rb +9 -0
  126. data/spec/filters/bugs/kernel.rb +401 -0
  127. data/spec/filters/bugs/language.rb +451 -0
  128. data/spec/filters/bugs/marshal.rb +50 -0
  129. data/spec/filters/bugs/math.rb +4 -0
  130. data/spec/filters/bugs/method.rb +79 -0
  131. data/spec/filters/bugs/module.rb +281 -0
  132. data/spec/filters/bugs/nilclass.rb +4 -0
  133. data/spec/filters/bugs/numeric.rb +27 -0
  134. data/spec/filters/bugs/openstruct.rb +8 -0
  135. data/spec/filters/bugs/pack_unpack.rb +138 -0
  136. data/spec/filters/bugs/pathname.rb +9 -0
  137. data/spec/filters/bugs/proc.rb +80 -0
  138. data/spec/filters/bugs/random.rb +20 -0
  139. data/spec/filters/bugs/range.rb +139 -0
  140. data/spec/filters/bugs/rational.rb +12 -0
  141. data/spec/filters/bugs/regexp.rb +91 -0
  142. data/spec/filters/bugs/set.rb +51 -0
  143. data/spec/filters/bugs/singleton.rb +7 -0
  144. data/spec/filters/bugs/string.rb +341 -0
  145. data/spec/filters/bugs/stringscanner.rb +78 -0
  146. data/spec/filters/bugs/struct.rb +26 -0
  147. data/spec/filters/bugs/symbol.rb +7 -0
  148. data/spec/filters/bugs/time.rb +109 -0
  149. data/spec/filters/bugs/unboundmethod.rb +33 -0
  150. data/spec/filters/bugs/warnings.rb +30 -0
  151. data/spec/filters/unsupported/array.rb +168 -0
  152. data/spec/filters/unsupported/basicobject.rb +15 -0
  153. data/spec/filters/unsupported/bignum.rb +55 -0
  154. data/spec/filters/unsupported/class.rb +5 -0
  155. data/spec/filters/unsupported/delegator.rb +6 -0
  156. data/spec/filters/unsupported/enumerable.rb +12 -0
  157. data/spec/filters/unsupported/enumerator.rb +14 -0
  158. data/spec/filters/unsupported/file.rb +4 -0
  159. data/spec/filters/unsupported/fixnum.rb +15 -0
  160. data/spec/filters/unsupported/float.rb +47 -0
  161. data/spec/filters/unsupported/freeze.rb +259 -0
  162. data/spec/filters/unsupported/hash.rb +44 -0
  163. data/spec/filters/unsupported/integer.rb +101 -0
  164. data/spec/filters/unsupported/kernel.rb +35 -0
  165. data/spec/filters/unsupported/language.rb +25 -0
  166. data/spec/filters/unsupported/marshal.rb +44 -0
  167. data/spec/filters/unsupported/matchdata.rb +63 -0
  168. data/spec/filters/unsupported/math.rb +4 -0
  169. data/spec/filters/unsupported/pathname.rb +4 -0
  170. data/spec/filters/unsupported/privacy.rb +287 -0
  171. data/spec/filters/unsupported/proc.rb +4 -0
  172. data/spec/filters/unsupported/random.rb +5 -0
  173. data/spec/filters/unsupported/range.rb +8 -0
  174. data/spec/filters/unsupported/regexp.rb +70 -0
  175. data/spec/filters/unsupported/set.rb +5 -0
  176. data/spec/filters/unsupported/singleton.rb +7 -0
  177. data/spec/filters/unsupported/string.rb +687 -0
  178. data/spec/filters/unsupported/struct.rb +7 -0
  179. data/spec/filters/unsupported/symbol.rb +21 -0
  180. data/spec/filters/unsupported/taint.rb +162 -0
  181. data/spec/filters/unsupported/thread.rb +10 -0
  182. data/spec/filters/unsupported/time.rb +204 -0
  183. data/spec/filters/unsupported/usage_of_files.rb +262 -0
  184. data/spec/lib/builder_processors_spec.rb +44 -0
  185. data/spec/lib/builder_spec.rb +133 -0
  186. data/spec/lib/cli_runners/server_spec.rb +25 -0
  187. data/spec/lib/cli_runners_spec.rb +16 -0
  188. data/spec/lib/cli_spec.rb +256 -0
  189. data/spec/lib/compiler_spec.rb +693 -0
  190. data/spec/lib/config_spec.rb +112 -0
  191. data/spec/lib/dependency_resolver_spec.rb +43 -0
  192. data/spec/lib/deprecations_spec.rb +17 -0
  193. data/spec/lib/fixtures/complex_sprockets.js.rb.erb +4 -0
  194. data/spec/lib/fixtures/file_with_directives.js +2 -0
  195. data/spec/lib/fixtures/jst_file.js.jst +1 -0
  196. data/spec/lib/fixtures/no_requires.rb +1 -0
  197. data/spec/lib/fixtures/opal_file.rb +2 -0
  198. data/spec/lib/fixtures/require_tree_test.rb +3 -0
  199. data/spec/lib/fixtures/required_file.js +1 -0
  200. data/spec/lib/fixtures/required_tree_test/required_file1.rb +1 -0
  201. data/spec/lib/fixtures/required_tree_test/required_file2.rb +1 -0
  202. data/spec/lib/fixtures/requires.rb +7 -0
  203. data/spec/lib/fixtures/source_location_test.rb +7 -0
  204. data/spec/lib/fixtures/source_map.rb +1 -0
  205. data/spec/lib/fixtures/source_map/subfolder/other_file.rb +1 -0
  206. data/spec/lib/fixtures/sprockets_file.js.rb +3 -0
  207. data/spec/lib/fixtures/sprockets_require_tree_test.rb +3 -0
  208. data/spec/lib/path_reader_spec.rb +47 -0
  209. data/spec/lib/paths_spec.rb +18 -0
  210. data/spec/lib/repl_spec.rb +28 -0
  211. data/spec/lib/rewriters/base_spec.rb +68 -0
  212. data/spec/lib/rewriters/binary_operator_assignment_spec.rb +153 -0
  213. data/spec/lib/rewriters/block_to_iter_spec.rb +28 -0
  214. data/spec/lib/rewriters/dot_js_syntax_spec.rb +108 -0
  215. data/spec/lib/rewriters/explicit_writer_return_spec.rb +186 -0
  216. data/spec/lib/rewriters/for_rewriter_spec.rb +92 -0
  217. data/spec/lib/rewriters/hashes/key_duplicates_rewriter_spec.rb +47 -0
  218. data/spec/lib/rewriters/js_reserved_words_spec.rb +119 -0
  219. data/spec/lib/rewriters/logical_operator_assignment_spec.rb +202 -0
  220. data/spec/lib/rewriters/opal_engine_check_spec.rb +84 -0
  221. data/spec/lib/rewriters/returnable_logic_spec.rb +52 -0
  222. data/spec/lib/rewriters/rubyspec/filters_rewriter_spec.rb +59 -0
  223. data/spec/lib/simple_server_spec.rb +56 -0
  224. data/spec/lib/source_map/file_spec.rb +67 -0
  225. data/spec/lib/source_map/index_spec.rb +80 -0
  226. data/spec/lib/spec_helper.rb +105 -0
  227. data/spec/mspec-opal/formatters.rb +197 -0
  228. data/spec/mspec-opal/runner.rb +172 -0
  229. data/spec/opal/compiler/irb_spec.rb +44 -0
  230. data/spec/opal/compiler/unicode_spec.rb +10 -0
  231. data/spec/opal/core/array/dup_spec.rb +23 -0
  232. data/spec/opal/core/array/intersection_spec.rb +38 -0
  233. data/spec/opal/core/array/minus_spec.rb +38 -0
  234. data/spec/opal/core/array/union_spec.rb +38 -0
  235. data/spec/opal/core/array/uniq_spec.rb +49 -0
  236. data/spec/opal/core/class/inherited_spec.rb +18 -0
  237. data/spec/opal/core/enumerable/all_break_spec.rb +5 -0
  238. data/spec/opal/core/enumerable/any_break_spec.rb +5 -0
  239. data/spec/opal/core/enumerable/collect_break_spec.rb +13 -0
  240. data/spec/opal/core/enumerable/count_break_spec.rb +5 -0
  241. data/spec/opal/core/enumerable/detect_break_spec.rb +5 -0
  242. data/spec/opal/core/enumerable/drop_while_break_spec.rb +5 -0
  243. data/spec/opal/core/enumerable/each_slice_break_spec.rb +6 -0
  244. data/spec/opal/core/enumerable/each_with_index_break_spec.rb +5 -0
  245. data/spec/opal/core/enumerable/each_with_object_break_spec.rb +5 -0
  246. data/spec/opal/core/enumerable/find_all_break_spec.rb +5 -0
  247. data/spec/opal/core/enumerable/find_index_break_spec.rb +5 -0
  248. data/spec/opal/core/enumerable/grep_break_spec.rb +5 -0
  249. data/spec/opal/core/enumerable/max_break_spec.rb +5 -0
  250. data/spec/opal/core/enumerable/max_by_break_spec.rb +5 -0
  251. data/spec/opal/core/enumerable/min_break_spec.rb +5 -0
  252. data/spec/opal/core/enumerable/min_by_break_spec.rb +5 -0
  253. data/spec/opal/core/enumerable/none_break_spec.rb +5 -0
  254. data/spec/opal/core/enumerable/one_break_spec.rb +5 -0
  255. data/spec/opal/core/enumerable/reduce_break_spec.rb +5 -0
  256. data/spec/opal/core/enumerable/take_while_break_spec.rb +5 -0
  257. data/spec/opal/core/enumerator/with_index_spec.rb +6 -0
  258. data/spec/opal/core/exception_spec.rb +8 -0
  259. data/spec/opal/core/fixtures/require_tree_files/file 1.rb +1 -0
  260. data/spec/opal/core/fixtures/require_tree_files/file 2.rb +1 -0
  261. data/spec/opal/core/fixtures/require_tree_files/file 3.rb +1 -0
  262. data/spec/opal/core/fixtures/require_tree_files/file 4.rb +1 -0
  263. data/spec/opal/core/fixtures/require_tree_files/file 5.rb +1 -0
  264. data/spec/opal/core/fixtures/require_tree_files/nested/nested 1.rb +1 -0
  265. data/spec/opal/core/fixtures/require_tree_files/nested/nested 2.rb +1 -0
  266. data/spec/opal/core/fixtures/require_tree_files/other/other 1.rb +1 -0
  267. data/spec/opal/core/fixtures/require_tree_with_dot/file 1.rb +1 -0
  268. data/spec/opal/core/fixtures/require_tree_with_dot/file 2.rb +1 -0
  269. data/spec/opal/core/fixtures/require_tree_with_dot/file 3.rb +1 -0
  270. data/spec/opal/core/fixtures/require_tree_with_dot/index.rb +3 -0
  271. data/spec/opal/core/hash/internals_spec.rb +339 -0
  272. data/spec/opal/core/helpers_spec.rb +14 -0
  273. data/spec/opal/core/iterable_props_spec.rb +53 -0
  274. data/spec/opal/core/kernel/at_exit_spec.rb +70 -0
  275. data/spec/opal/core/kernel/freeze_spec.rb +15 -0
  276. data/spec/opal/core/kernel/instance_variables_spec.rb +110 -0
  277. data/spec/opal/core/kernel/methods_spec.rb +25 -0
  278. data/spec/opal/core/kernel/public_methods_spec.rb +25 -0
  279. data/spec/opal/core/kernel/require_tree_spec.rb +18 -0
  280. data/spec/opal/core/kernel/respond_to_spec.rb +15 -0
  281. data/spec/opal/core/language/DATA/characters_support_spec.rb +9 -0
  282. data/spec/opal/core/language/DATA/empty___END___spec.rb +7 -0
  283. data/spec/opal/core/language/DATA/multiple___END___spec.rb +10 -0
  284. data/spec/opal/core/language/arguments/mlhs_arg_spec.rb +18 -0
  285. data/spec/opal/core/language/keyword_arguments_spec.rb +9 -0
  286. data/spec/opal/core/language/numblocks_spec.rb +16 -0
  287. data/spec/opal/core/language/safe_navigator_spec.rb +7 -0
  288. data/spec/opal/core/language/while_spec.rb +31 -0
  289. data/spec/opal/core/language_spec.rb +29 -0
  290. data/spec/opal/core/marshal/dump_spec.rb +81 -0
  291. data/spec/opal/core/marshal/load_spec.rb +13 -0
  292. data/spec/opal/core/module_spec.rb +27 -0
  293. data/spec/opal/core/object_id_spec.rb +56 -0
  294. data/spec/opal/core/regexp/interpolation_spec.rb +40 -0
  295. data/spec/opal/core/regexp/match_spec.rb +78 -0
  296. data/spec/opal/core/runtime/bridged_classes_spec.rb +123 -0
  297. data/spec/opal/core/runtime/constants_spec.rb +16 -0
  298. data/spec/opal/core/runtime/eval_spec.rb +5 -0
  299. data/spec/opal/core/runtime/exit_spec.rb +29 -0
  300. data/spec/opal/core/runtime/is_a_spec.rb +48 -0
  301. data/spec/opal/core/runtime/loaded_spec.rb +20 -0
  302. data/spec/opal/core/runtime/main_methods_spec.rb +39 -0
  303. data/spec/opal/core/runtime/method_missing_spec.rb +68 -0
  304. data/spec/opal/core/runtime/rescue_spec.rb +37 -0
  305. data/spec/opal/core/runtime/string_spec.rb +25 -0
  306. data/spec/opal/core/runtime/truthy_spec.rb +61 -0
  307. data/spec/opal/core/runtime_spec.rb +58 -0
  308. data/spec/opal/core/string/each_byte_spec.rb +19 -0
  309. data/spec/opal/core/string/gsub_spec.rb +35 -0
  310. data/spec/opal/core/string/to_sym_spec.rb +9 -0
  311. data/spec/opal/core/string_spec.rb +28 -0
  312. data/spec/opal/core/struct/dup_spec.rb +11 -0
  313. data/spec/opal/core/time_spec.rb +68 -0
  314. data/spec/opal/stdlib/erb/erb_spec.rb +30 -0
  315. data/spec/opal/stdlib/erb/inline_block.opalerb +3 -0
  316. data/spec/opal/stdlib/erb/quoted.opalerb +1 -0
  317. data/spec/opal/stdlib/erb/simple.opalerb +1 -0
  318. data/spec/opal/stdlib/js_spec.rb +72 -0
  319. data/spec/opal/stdlib/json/ext_spec.rb +55 -0
  320. data/spec/opal/stdlib/json/parse_spec.rb +37 -0
  321. data/spec/opal/stdlib/logger/logger_spec.rb +308 -0
  322. data/spec/opal/stdlib/native/alias_native_spec.rb +27 -0
  323. data/spec/opal/stdlib/native/array_spec.rb +11 -0
  324. data/spec/opal/stdlib/native/date_spec.rb +12 -0
  325. data/spec/opal/stdlib/native/deprecated_include_spec.rb +8 -0
  326. data/spec/opal/stdlib/native/each_spec.rb +13 -0
  327. data/spec/opal/stdlib/native/element_reference_spec.rb +16 -0
  328. data/spec/opal/stdlib/native/exposure_spec.rb +33 -0
  329. data/spec/opal/stdlib/native/ext_spec.rb +19 -0
  330. data/spec/opal/stdlib/native/hash_spec.rb +67 -0
  331. data/spec/opal/stdlib/native/initialize_spec.rb +17 -0
  332. data/spec/opal/stdlib/native/method_missing_spec.rb +51 -0
  333. data/spec/opal/stdlib/native/native_alias_spec.rb +26 -0
  334. data/spec/opal/stdlib/native/native_class_spec.rb +18 -0
  335. data/spec/opal/stdlib/native/native_module_spec.rb +13 -0
  336. data/spec/opal/stdlib/native/native_reader_spec.rb +22 -0
  337. data/spec/opal/stdlib/native/native_writer_spec.rb +30 -0
  338. data/spec/opal/stdlib/native/new_spec.rb +92 -0
  339. data/spec/opal/stdlib/native/struct_spec.rb +12 -0
  340. data/spec/opal/stdlib/pp_spec.rb +5 -0
  341. data/spec/opal/stdlib/promise/always_spec.rb +49 -0
  342. data/spec/opal/stdlib/promise/error_spec.rb +15 -0
  343. data/spec/opal/stdlib/promise/rescue_spec.rb +53 -0
  344. data/spec/opal/stdlib/promise/then_spec.rb +79 -0
  345. data/spec/opal/stdlib/promise/trace_spec.rb +51 -0
  346. data/spec/opal/stdlib/promise/value_spec.rb +15 -0
  347. data/spec/opal/stdlib/promise/when_spec.rb +34 -0
  348. data/spec/opal/stdlib/source_map_spec.rb +8 -0
  349. data/spec/opal/stdlib/strscan/scan_spec.rb +11 -0
  350. data/spec/opal/stdlib/template/paths_spec.rb +10 -0
  351. data/spec/opal/stdlib/thread/mutex_spec.rb +40 -0
  352. data/spec/opal/stdlib/thread/thread_queue_spec.rb +32 -0
  353. data/spec/opal/stdlib/thread/thread_spec.rb +60 -0
  354. data/spec/ruby_specs +183 -0
  355. data/spec/spec_helper.rb +31 -0
  356. data/spec/support/guard_platform.rb +4 -0
  357. data/spec/support/match_helpers.rb +57 -0
  358. data/spec/support/mspec_rspec_adapter.rb +33 -0
  359. data/spec/support/rewriters_helper.rb +54 -0
  360. data/spec/support/source_map_helper.rb +190 -0
  361. data/stdlib/base64.rb +2 -2
  362. data/stdlib/bigdecimal.rb +15 -3
  363. data/stdlib/bigdecimal/bignumber.js.rb +1 -1
  364. data/stdlib/bigdecimal/util.rb +148 -0
  365. data/stdlib/delegate.rb +8 -0
  366. data/stdlib/nodejs/fileutils.rb +1 -1
  367. data/stdlib/nodejs/kernel.rb +0 -13
  368. data/stdlib/nodejs/stacktrace.rb +4 -179
  369. data/stdlib/ostruct.rb +5 -0
  370. data/stdlib/pp.rb +586 -19
  371. data/stdlib/prettyprint.rb +556 -0
  372. data/stdlib/rbconfig/sizeof.rb +2 -0
  373. data/stdlib/securerandom.rb +32 -0
  374. data/stdlib/set.rb +36 -0
  375. data/stdlib/strscan.rb +15 -0
  376. data/tasks/benchmarking.rake +1 -1
  377. data/tasks/linting.rake +3 -5
  378. data/tasks/releasing.rake +2 -5
  379. data/tasks/testing.rake +16 -11
  380. data/tasks/testing/mspec_special_calls.rb +1 -19
  381. data/test/nodejs/fixtures/cat.png +0 -0
  382. data/test/nodejs/fixtures/hello.rb +1 -0
  383. data/test/nodejs/fixtures/iso88591.txt +1 -0
  384. data/test/nodejs/fixtures/utf8.txt +1 -0
  385. data/test/nodejs/fixtures/win1258.txt +1 -0
  386. data/test/nodejs/test_dir.rb +39 -0
  387. data/test/nodejs/test_env.rb +62 -0
  388. data/test/nodejs/test_error.rb +29 -0
  389. data/test/nodejs/test_file.rb +206 -0
  390. data/test/nodejs/test_file_encoding.rb +20 -0
  391. data/test/nodejs/test_io.rb +18 -0
  392. data/test/nodejs/test_opal_builder.rb +12 -0
  393. data/test/nodejs/test_pathname.rb +16 -0
  394. data/test/opal/cat.png +0 -0
  395. data/test/opal/http_server.rb +52 -0
  396. data/test/opal/test_base64.rb +115 -0
  397. data/test/opal/test_keyword.rb +590 -0
  398. data/test/opal/test_matrix.rb +661 -0
  399. data/test/opal/test_openuri.rb +53 -0
  400. data/test/opal/unsupported_and_bugs.rb +39 -0
  401. data/yarn.lock +1355 -0
  402. metadata +901 -38
  403. data/.travis.yml +0 -109
  404. data/appveyor.yml +0 -35
  405. data/lib/opal/nodes/runtime_helpers.rb +0 -51
  406. data/opal/corelib/random/MersenneTwister.js +0 -137
  407. data/opal/corelib/random/mersenne_twister.js.rb +0 -13
  408. data/stdlib/bigdecimal/kernel.rb +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d3bfc53a5f324482e1829d0b4acbd8a7acbd9741c094748855ccd28504c02da9
4
- data.tar.gz: 303d15ecd3519aea8301e7193b983904edce9ff7dd2553a9c72d25653bc3dc26
3
+ metadata.gz: ebf169fc98d390d965c39386668f569467dc11db3eff5f2571db172f9f632b02
4
+ data.tar.gz: 7d4d4e0de908d931ca39ac6d05d5fcbc1f1f1c1585e0cad22549ad31129f4064
5
5
  SHA512:
6
- metadata.gz: a5c494071f37d2d1aa2a020389241cf87cb7162341c2e1dc6e9d295f6114568a639382f4f19cfbc4192689cf05ee456dca241d276b10736ef3c9bbc95b073348
7
- data.tar.gz: 3e45be2e316123c6d796326f4ad30b6da9d13926bf4862c9e9114efd30626e27d0879045b71b579795bb59449054cdfb19f5c710c7d84f26863b4175cb1ff015
6
+ metadata.gz: 6c80d8bcb148c8c8563b88c0e482f77937e4f4e8cc2144a5f9f83ea1e4b914a3e3bf7888b591d9721a20e050a64e08ddb099af7c5b4cb939d8c2f8472a662c9d
7
+ data.tar.gz: e04acce5335dd3ffe2bafdd40425ad788ff50316240d7863c7b8256b97f69a48a7f18cdcb9d9c1ddf0b738e366d5290b510ed6978735661a8f59f3e9003d3148
data/.codeclimate.yml CHANGED
@@ -38,15 +38,17 @@ plugins:
38
38
  channel: rubocop-0-53
39
39
 
40
40
  exclude_patterns:
41
- - "benchmark/*"
42
- - "build/*"
43
- - "coverage/*"
44
- - "docs/*"
45
- - "examples/*"
46
- - "tasks/*"
47
- - "spec/*"
48
- - "test/*"
49
- - "vendored-minitest/*"
50
- - "**/node_modules/*"
51
- - stdlib/nodejs/js-yaml-3-6-1.js
52
- - lib/opal/source_map/vlq.rb
41
+ - "benchmark/*"
42
+ - "build/*"
43
+ - "coverage/*"
44
+ - "docs/*"
45
+ - "examples/*"
46
+ - "tasks/*"
47
+ - "spec/*"
48
+ - "test/*"
49
+ - "vendored-minitest/*"
50
+ - "**/node_modules/*"
51
+ - stdlib/nodejs/js-yaml-3-6-1.js
52
+ - lib/opal/source_map/vlq.rb
53
+ - lib/opal/cli_runners/source-map-support.js
54
+ - lib/opal/cli_runners/source-map-support-browser.js
data/.gitattributes CHANGED
@@ -1 +1 @@
1
- CHANGELOG.md merge=union
1
+ UNRELEASED.md merge=union
@@ -0,0 +1 @@
1
+ open_collective: opal
@@ -0,0 +1,90 @@
1
+ name: build
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ - "*-stable"
8
+ - "*/ci-check"
9
+ pull_request:
10
+ branches:
11
+ - master
12
+
13
+ jobs:
14
+ rake:
15
+ name: ${{ matrix.combo.name || matrix.combo.ruby }}
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ combo:
20
+ - name: mspec-nodejs
21
+ ruby: 3.0
22
+ command: bin/rake mspec_nodejs
23
+ - name: mspec-chrome
24
+ ruby: 3.0
25
+ command: bin/rake mspec_chrome
26
+ - name: minitest
27
+ ruby: 3.0
28
+ command: bin/rake minitest
29
+ - name: current-ruby
30
+ ruby: 3.0
31
+ - name: previous-ruby
32
+ ruby: 2.7
33
+ - name: older-ruby
34
+ ruby: 2.6
35
+ - name: near-eol-ruby
36
+ ruby: 2.5
37
+ - name: smoke-test
38
+ ruby: 3.0
39
+ command: bin/rake smoke_test
40
+ - name: windows
41
+ # These two fail because of broken stacktraces on windows: minitest_node_nodejs mspec_nodejs
42
+ command: bundle exec rake rspec minitest_nodejs
43
+ ruby: 3.0
44
+ os: windows-latest
45
+ - name: lint
46
+ command: bin/rake lint
47
+ ruby: 3.0
48
+ - name: timezone
49
+ ruby: 3.0
50
+
51
+ # Currently failing:
52
+ # - ruby: truffleruby
53
+ # - ruby: jruby
54
+ # - ruby: ruby-head
55
+
56
+ runs-on: ${{ matrix.combo.os || 'ubuntu-latest' }}
57
+ steps:
58
+ - uses: actions/checkout@v2
59
+ - uses: ruby/setup-ruby@v1
60
+ with:
61
+ ruby-version: ${{ matrix.combo.ruby }}
62
+ # NOTE: Bundler 2.2.0 fails to install libv8
63
+ # https://github.com/rubyjs/libv8/issues/310
64
+ bundler: "2.1.4"
65
+ bundler-cache: false
66
+ - run: ruby bin/git-submodule-fast-install
67
+ - run: bundle lock
68
+ - uses: actions/cache@v2
69
+ with:
70
+ path: ./vendor/bundle
71
+ key: ${{ runner.os }}-${{ matrix.combo.ruby }}-gems-${{ github.ref }}-${{ hashFiles('**/Gemfile.lock') }}
72
+ restore-keys: |
73
+ ${{ runner.os }}-${{ matrix.combo.ruby }}-gems-${{ github.ref }}
74
+ ${{ runner.os }}-${{ matrix.combo.ruby }}-gems-master
75
+ ${{ runner.os }}-${{ matrix.combo.ruby }}-gems-
76
+ - uses: actions/cache@v2
77
+ with:
78
+ path: ./node_modules
79
+ key: ${{ runner.os }}-npm-${{ github.ref }}-${{ hashFiles('**/yarn.lock') }}
80
+ restore-keys: |
81
+ ${{ runner.os }}-npm-${{ github.ref }}
82
+ ${{ runner.os }}-npm-master
83
+ ${{ runner.os }}-npm-
84
+ - run: yarn install
85
+ - name: bundle install
86
+ run: |
87
+ bundle config path $PWD/vendor/bundle
88
+ bundle install --jobs 4 --retry 3
89
+ bundle clean
90
+ - run: ${{ matrix.combo.command || 'bin/rake rspec' }}
data/.jshintrc CHANGED
@@ -10,7 +10,7 @@
10
10
  "undef" : true, // Prohibit the use of explicitly undeclared variables
11
11
  "unused" : true, // Warn when you define and never use your variables
12
12
 
13
- "predef" : ["Opal", "JSON", "Java", "OpalNode", "jsyaml"],
13
+ "predef" : ["Opal", "JSON", "Java", "OpalNode", "jsyaml", "globalThis"],
14
14
 
15
15
  "browser": true,
16
16
  "node": true,
data/.overcommit.yml ADDED
@@ -0,0 +1,35 @@
1
+ # Use this file to configure the Overcommit hooks you wish to use. This will
2
+ # extend the default configuration defined in:
3
+ # https://github.com/sds/overcommit/blob/master/config/default.yml
4
+ #
5
+ # At the topmost level of this YAML file is a key representing type of hook
6
+ # being run (e.g. pre-commit, commit-msg, etc.). Within each type you can
7
+ # customize each hook, such as whether to only run it on certain files (via
8
+ # `include`), whether to only display output if it fails (via `quiet`), etc.
9
+ #
10
+ # For a complete list of hooks, see:
11
+ # https://github.com/sds/overcommit/tree/master/lib/overcommit/hook
12
+ #
13
+ # For a complete list of options that you can use to customize hooks, see:
14
+ # https://github.com/sds/overcommit#configuration
15
+ #
16
+ # Uncomment the following lines to make the configuration take effect.
17
+
18
+ gemfile: Gemfile
19
+
20
+ PreCommit:
21
+ RuboCop:
22
+ enabled: true
23
+ on_warn: fail # Treat all warnings as failures
24
+
25
+ TrailingWhitespace:
26
+ enabled: true
27
+ # exclude:
28
+ # - '**/db/structure.sql' # Ignore trailing whitespace in generated files
29
+
30
+ #PostCheckout:
31
+ # ALL: # Special hook name that customizes all hooks of this type
32
+ # quiet: true # Change all post-checkout hooks to only display output on failure
33
+ #
34
+ # IndexTags:
35
+ # enabled: true # Generate a tags file with `ctags` each time HEAD changes
data/.rubocop.yml CHANGED
@@ -1,4 +1,5 @@
1
- inherit_from: .rubocop_todo.yml
1
+ require: rubocop-performance
2
+ inherit_from: .rubocop/todo.yml
2
3
 
3
4
  AllCops:
4
5
  TargetRubyVersion: 2.5
@@ -49,6 +50,8 @@ AllCops:
49
50
  - 'stdlib/e2mmap.rb'
50
51
  - 'stdlib/matrix.rb'
51
52
  - 'stdlib/matrix/*.rb'
53
+ - 'stdlib/pp.rb'
54
+ - 'stdlib/prettyprint.rb'
52
55
 
53
56
  inherit_mode:
54
57
  merge:
@@ -69,6 +72,10 @@ Layout/CommentIndentation:
69
72
  - 'lib/opal/rewriters/binary_operator_assignment.rb'
70
73
  - 'lib/opal/rewriters/logical_operator_assignment.rb'
71
74
 
75
+ # We need to support older rubies
76
+ Layout/IndentHeredoc:
77
+ Enabled: false
78
+
72
79
  Style/FrozenStringLiteralComment:
73
80
  Exclude:
74
81
  - 'opal/**/*.rb'
@@ -116,6 +123,10 @@ Lint/LiteralAsCondition:
116
123
  - 'opal/**/*.rb'
117
124
  - 'stdlib/**/*.rb'
118
125
 
126
+ # Allow the use of if/unless inside blocks
127
+ Style/Next:
128
+ Enabled: false
129
+
119
130
  Lint/RescueException:
120
131
  Exclude:
121
132
  # That's what MRI does
@@ -243,12 +254,18 @@ Style/InverseMethods:
243
254
  - 'opal/corelib/basic_object.rb'
244
255
  - 'opal/corelib/kernel.rb'
245
256
 
246
- Style/MethodMissing:
247
- # Base Opal classes simply can't call super for #method_missing
257
+ Style/MethodMissingSuper:
258
+ # Base Opal classes simply can't or shouldn't call super for #method_missing
248
259
  Exclude:
249
260
  - 'opal/corelib/basic_object.rb'
250
261
  - 'opal/corelib/kernel.rb'
251
262
  - 'opal/corelib/string/inheritance.rb'
263
+ - 'stdlib/native.rb'
264
+ - 'stdlib/delegate.rb'
265
+ - 'stdlib/ostruct.rb'
266
+
267
+ Style/MissingRespondToMissing:
268
+ Enabled: true
252
269
 
253
270
  Style/NumericPredicate:
254
271
  Enabled: false
@@ -257,6 +274,8 @@ Style/ParallelAssignment:
257
274
  Enabled: false
258
275
 
259
276
  Style/PercentLiteralDelimiters:
277
+ PreferredDelimiters:
278
+ default: '{}'
260
279
  Exclude:
261
280
  # Opal has a convention of %x{}
262
281
  - 'opal/**/*.rb'
@@ -326,10 +345,6 @@ Style/RegexpLiteral:
326
345
  # Rubocop doesn't check for backslashes, so this rule is disabled.
327
346
  Enabled: false
328
347
 
329
- Style/PercentLiteralDelimiters:
330
- PreferredDelimiters:
331
- default: '{}'
332
-
333
348
  Naming/FileName:
334
349
  Exclude:
335
350
  - 'stdlib/opal-builder.rb'
@@ -396,3 +411,25 @@ Style/ConditionalAssignment:
396
411
  Naming/MemoizedInstanceVariableName:
397
412
  Exclude:
398
413
  - lib/opal/parser/patch.rb # it's a monkey-patch on the parser gem
414
+
415
+ Style/AccessModifierDeclarations:
416
+ Enabled: false
417
+
418
+ Style/MultipleComparison:
419
+ Enabled: false
420
+
421
+ Layout/EmptyLineAfterGuardClause:
422
+ Enabled: false
423
+
424
+ Layout/AlignHash:
425
+ Enabled: false
426
+
427
+ # No way to set multiple preferred names
428
+ Naming/RescuedExceptionsVariableName:
429
+ Enabled: false
430
+
431
+ Style/Semicolon:
432
+ AllowAsExpressionSeparator: true
433
+
434
+ Layout/EmptyLinesAroundExceptionHandlingKeywords:
435
+ Enabled: false
@@ -33,12 +33,11 @@ Style/MutableConstant:
33
33
  - 'lib/opal/nodes/call.rb'
34
34
  - 'lib/opal/util.rb'
35
35
 
36
- Style/MethodMissing:
36
+ Lint/HandleExceptions:
37
37
  Exclude:
38
- - 'stdlib/native.rb'
39
- - 'stdlib/delegate.rb'
40
38
  - 'stdlib/ostruct.rb'
41
39
 
42
- Lint/HandleExceptions:
40
+ Lint/ToJSON:
43
41
  Exclude:
44
- - 'stdlib/ostruct.rb'
42
+ - 'lib/opal/source_map/map.rb'
43
+ - 'stdlib/json.rb'
data/CHANGELOG.md CHANGED
@@ -15,15 +15,127 @@ Changes are grouped as follows:
15
15
 
16
16
 
17
17
 
18
- ## [Unreleased](https://github.com/opal/opal/compare/v1.0.1...HEAD) - unreleased
18
+ ## [Unreleased](https://github.com/opal/opal/compare/v1.0.5...HEAD) - unreleased
19
19
 
20
20
 
21
- <!--
22
- Whitespace conventions:
23
- - 4 spaces before ## titles
24
- - 2 spaces before ### titles
25
- - 1 spaces before normal text
26
- -->
21
+ ### Added
22
+
23
+ - Basic support for `uplevel:` keyword argument in `Kernel#warn` ([#2006](https://github.com/opal/opal/pull/2006))
24
+ - Added a `#respond_to_missing?` implementation for `BasicObject`, `Delegator`, `OpenStruct`, that's meant for future support in the Opal runtime, which currently ignores it ([#2007](https://github.com/opal/opal/pull/2007))
25
+ - `Opal::Compiler#magic_comments` that allows to access magic-comments format and converts it to a hash ([#2038](https://github.com/opal/opal/pull/2038))
26
+ - Use magic-comments to declare helpers required by the file ([#2038](https://github.com/opal/opal/pull/2038))
27
+ - `Opal.$$` is now a shortcut for `Opal.const_get_relative` ([#2038](https://github.com/opal/opal/pull/2038))
28
+ - `Opal.$$$` is now a shortcut for `Opal.const_get_qualified` ([#2038](https://github.com/opal/opal/pull/2038))
29
+ - Added support for `globalThis` as the generic global object accessor ([#2047](https://github.com/opal/opal/pull/2047))
30
+ - `Opal::Compiler#magic_comments` that allows to access magic-comments format and converts it to a hash
31
+ - Use magic-comments to declare helpers required by the file
32
+ - `Opal.$$` is now a shortcut for `Opal.const_get_relative`
33
+ - `Opal.$$$` is now a shortcut for `Opal.const_get_qualified`
34
+ - Source-map support for Node.js in the default runner ([#2045](https://github.com/opal/opal/pull/2045))
35
+ - SecureRandom#hex(n) ([#2050](https://github.com/opal/opal/pull/2050))
36
+ - Added a generic implementation of Kernel#caller and #warn(uplevel:) that works with sourcemaps in Node.js and Chrome ([#2065](https://github.com/opal/opal/pull/2065))
37
+ - Added support for numblocks `-> { _1 + _2 }.call(3, 4) # => 7` ([#2149](https://github.com/opal/opal/pull/2149))
38
+ - Support `<internal:…>` and `<js:…>` in stacktraces, like MRI we now distinguish internal lines from lib/app lines ([#2154](https://github.com/opal/opal/pull/2154))
39
+
40
+ ### Fixed
41
+
42
+ - Array#delete_if ([#2069](https://github.com/opal/opal/pull/2069))
43
+ - Array#keep_if ([#2069](https://github.com/opal/opal/pull/2069))
44
+ - Array#reject! ([#2069](https://github.com/opal/opal/pull/2069))
45
+ - Array#select! ([#2069](https://github.com/opal/opal/pull/2069))
46
+ - Struct#dup ([#1995](https://github.com/opal/opal/pull/1995))
47
+ - Integer#gcdlcm ([#1972](https://github.com/opal/opal/pull/1972))
48
+ - Enumerable#to_h ([#1979](https://github.com/opal/opal/pull/1979))
49
+ - Enumerator#size ([#1980](https://github.com/opal/opal/pull/1980))
50
+ - Enumerable#min ([#1982](https://github.com/opal/opal/pull/1982))
51
+ - Enumerable#min_by ([#1985](https://github.com/opal/opal/pull/1985))
52
+ - Enumerable#max_by ([#1985](https://github.com/opal/opal/pull/1985))
53
+ - Set#intersect? ([#1988](https://github.com/opal/opal/pull/1988))
54
+ - Set#disjoint? ([#1988](https://github.com/opal/opal/pull/1988))
55
+ - Set#keep_if ([#1987](https://github.com/opal/opal/pull/1987))
56
+ - Set#select! ([#1987](https://github.com/opal/opal/pull/1987))
57
+ - Set#reject! ([#1987](https://github.com/opal/opal/pull/1987))
58
+ - Module#alias_method ([#1983](https://github.com/opal/opal/pull/1983))
59
+ - Enumerable#minmax_by ([#1981](https://github.com/opal/opal/pull/1981))
60
+ - Enumerator#each_with_index ([#1990](https://github.com/opal/opal/pull/1990))
61
+ - Range#== ([#1992](https://github.com/opal/opal/pull/1992))
62
+ - Range#each ([#1991](https://github.com/opal/opal/pull/1991))
63
+ - Enumerable#zip ([#1986](https://github.com/opal/opal/pull/1986))
64
+ - String#getbyte ([#2141](https://github.com/opal/opal/pull/2141))
65
+ - Struct#dup not copying `$$data` ([#1995](https://github.com/opal/opal/pull/1995))
66
+ - Fixed usage of semicolon in single-line backticks ([#2004](https://github.com/opal/opal/pull/2004))
67
+ - Module#attr with multiple arguments ([#2003](https://github.com/opal/opal/pull/2003))
68
+ - `PathReader` used to try to read missing files instead of respecting the `missing_require_severity` configuration value ([#2044](https://github.com/opal/opal/pull/2044))
69
+ - Removed some unused variables from the runtime ([#2052](https://github.com/opal/opal/pull/2052))
70
+ - Fixed a typo in the runtime ([#2054](https://github.com/opal/opal/pull/2054))
71
+ - Fix Regexp interpolation, previously interpolating with other regexps was broken ([#2062](https://github.com/opal/opal/pull/2062))
72
+ - Set match on StringScanner#skip and StringScanner#scan_until ([#2061](https://github.com/opal/opal/pull/2061))
73
+ - Fix ruby 2.7 warnings ([#2071](https://github.com/opal/opal/pull/2071))
74
+ - Improve the --help descriptions ([#2146](https://github.com/opal/opal/pull/2146))
75
+
76
+ ### Changed
77
+
78
+ - Updated outdated parser version ([#2013](https://github.com/opal/opal/pull/2013))
79
+ - Nashorn has been deprecated but GraalVM still supports it ([#1997](https://github.com/opal/opal/pull/1997))
80
+ - "opal/mini" now includes "opal/io" ([#2002](https://github.com/opal/opal/pull/2002))
81
+ - Regexps assigned to constants are now frozen ([#2007](https://github.com/opal/opal/pull/2007))
82
+ - `Opal.$$` changed from being the constant cache of Object to being a shortcut for `Opal.const_get_relative` ([#2038](https://github.com/opal/opal/pull/2038))
83
+ - Moved REPL implementation from bin/ to its own lib/ file as `opal/repl.rb` ([#2048](https://github.com/opal/opal/pull/2048))
84
+ - `Encoding.default_external` is now initialized with `__ENCODING__` ([#2072](https://github.com/opal/opal/pull/2072))
85
+ - Keep the MersenneTwister implementation private ([#2108](https://github.com/opal/opal/pull/2108))
86
+ - Change parser to 3.0 ([#2148](https://github.com/opal/opal/pull/2148))
87
+ - Fix forwarding a rescued error to a global var: `rescue => $gvar` ([#2154](https://github.com/opal/opal/pull/2154))
88
+ - Now using Parser v3.0 and targeting Ruby 3.0 ([#2156](https://github.com/opal/opal/pull/2156))
89
+
90
+ ### Deprecated
91
+
92
+ - Requiring nodejs/stacktrace has been deprecated, source-maps are already
93
+ supported by the default Node.js runner or by requiring https://github.com/evanw/node-source-map-support
94
+ before loading code compiled by Opal ([#2045](https://github.com/opal/opal/pull/2045))
95
+
96
+ ### Removed
97
+
98
+ - Removed special compilation for the `Opal.truthy?` and `Opal.falsy?` helpers ([#2076](https://github.com/opal/opal/pull/2076))
99
+
100
+
101
+
102
+
103
+ ## [1.0.5](https://github.com/opal/opal/compare/v1.0.4...v1.0.5) - 2020-12-23
104
+
105
+
106
+ ### Fixed
107
+
108
+ - [Backported] Add --rbrequire (-q) option to opal cmdline tool ([#2120](https://github.com/opal/opal/pull/2120))
109
+ - Improve the --help descriptions ([#2146](https://github.com/opal/opal/pull/2146))
110
+
111
+
112
+
113
+
114
+ ## [1.0.4](https://github.com/opal/opal/compare/v1.0.3...v1.0.4) - 2020-12-13
115
+
116
+
117
+ ### Fixed
118
+
119
+ - [Backported] Using the `--map` / `-P` CLI option was only working in conjunction with other options ([#1974](https://github.com/opal/opal/pull/1974))
120
+
121
+
122
+
123
+
124
+ ## [1.0.3](https://github.com/opal/opal/compare/v1.0.2...v1.0.3) - 2020-02-01
125
+
126
+
127
+ ### Fixed
128
+
129
+ - Fixed compiling code with Unicode chars from Opal with opal-parser ([#2074](https://github.com/opal/opal/pull/2074))
130
+
131
+
132
+
133
+
134
+ ## [1.0.2](https://github.com/opal/opal/compare/v1.0.1...v1.0.2) - 2019-12-15
135
+
136
+
137
+ - Increase the timeout for starting Chrome within the Chrome runner ([#2037](https://github.com/opal/opal/pull/2037))
138
+ - Run the Opal code within the body inside Chrome runner, it fixes an issue in opal-rspec ([#2037](https://github.com/opal/opal/pull/2037))
27
139
 
28
140
 
29
141
 
data/Gemfile CHANGED
@@ -11,7 +11,6 @@ sprockets_version = ENV['SPROCKETS_VERSION']
11
11
 
12
12
  gem 'json', '< 1.8.1', platform: :ruby if ruby_version < v['2.2']
13
13
  gem 'rack-test', '< 0.8' if ruby_version <= v['2.0']
14
- gem 'rubysl', platform: :rbx
15
14
  gem 'coveralls', platform: :mri
16
15
 
17
16
  # Some browsers have problems with WEBrick
@@ -48,8 +47,8 @@ end unless ENV['CI']
48
47
 
49
48
  group :doc do
50
49
  gem 'redcarpet' unless RUBY_ENGINE == 'truffleruby'
51
- end
50
+ end unless ENV['CI']
52
51
 
53
52
  platforms :ruby, :mswin, :mswin64, :mingw, :x64_mingw do
54
- gem 'c_lexer', '~> 2.6' unless RUBY_ENGINE == 'truffleruby'
53
+ #gem 'c_lexer', '~> 2.6' unless RUBY_ENGINE == 'truffleruby'
55
54
  end