opal 0.11.4 → 1.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (379) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +42 -10
  3. data/.rubocop.yml +398 -0
  4. data/.rubocop_todo.yml +44 -0
  5. data/.travis.yml +28 -34
  6. data/CHANGELOG.md +363 -142
  7. data/CONTRIBUTING.md +3 -5
  8. data/Gemfile +17 -12
  9. data/Guardfile +0 -1
  10. data/HACKING.md +1 -35
  11. data/LICENSE +2 -2
  12. data/README.md +42 -13
  13. data/Rakefile +1 -4
  14. data/UNRELEASED.md +133 -0
  15. data/benchmark-ips/README.md +6 -0
  16. data/benchmark-ips/bm_block_vs_yield.rb +21 -0
  17. data/benchmark-ips/bm_js_symbols_vs_strings.rb +28 -0
  18. data/benchmark-ips/bm_while_true_vs_loop.rb +19 -0
  19. data/bin/console +14 -0
  20. data/bin/opal +0 -1
  21. data/bin/opal-benchmark-ips +8 -0
  22. data/bin/opal-mspec +9 -1
  23. data/bin/opal-repl +2 -1
  24. data/bin/rake +7 -0
  25. data/bin/setup +8 -0
  26. data/docs/compiled_ruby.md +89 -8
  27. data/docs/compiler.md +3 -20
  28. data/docs/jquery.md +44 -11
  29. data/docs/promises.md +1 -1
  30. data/docs/rails.md +16 -12
  31. data/docs/sinatra.md +15 -8
  32. data/docs/using_sprockets.md +16 -11
  33. data/examples/rack/config.ru +1 -0
  34. data/examples/sinatra/Gemfile +1 -0
  35. data/examples/sinatra/config.ru +2 -11
  36. data/exe/opal-repl +3 -11
  37. data/lib/opal.rb +1 -0
  38. data/lib/opal/ast/builder.rb +4 -1
  39. data/lib/opal/ast/node.rb +1 -0
  40. data/lib/opal/builder.rb +84 -63
  41. data/lib/opal/builder_processors.rb +41 -56
  42. data/lib/opal/cli.rb +33 -49
  43. data/lib/opal/cli_options.rb +27 -17
  44. data/lib/opal/cli_runners.rb +73 -16
  45. data/lib/opal/cli_runners/applescript.rb +4 -4
  46. data/lib/opal/cli_runners/chrome.rb +29 -17
  47. data/lib/opal/cli_runners/nashorn.rb +5 -4
  48. data/lib/opal/cli_runners/nodejs.rb +8 -6
  49. data/lib/opal/cli_runners/server.rb +12 -11
  50. data/lib/opal/compiler.rb +85 -103
  51. data/lib/opal/config.rb +3 -3
  52. data/lib/opal/deprecations.rb +2 -1
  53. data/lib/opal/eof_content.rb +2 -2
  54. data/lib/opal/erb.rb +8 -7
  55. data/lib/opal/errors.rb +72 -1
  56. data/lib/opal/fragment.rb +23 -3
  57. data/lib/opal/hike.rb +305 -0
  58. data/lib/opal/nodes.rb +5 -10
  59. data/lib/opal/nodes/arglist.rb +7 -6
  60. data/lib/opal/nodes/args.rb +36 -0
  61. data/lib/opal/nodes/args/arg.rb +22 -0
  62. data/lib/opal/nodes/args/arity_check.rb +151 -0
  63. data/lib/opal/nodes/args/ensure_kwargs_are_kwargs.rb +28 -0
  64. data/lib/opal/nodes/args/extract_block_arg.rb +34 -0
  65. data/lib/opal/nodes/args/extract_kwarg.rb +32 -0
  66. data/lib/opal/nodes/args/extract_kwargs.rb +28 -0
  67. data/lib/opal/nodes/args/extract_kwoptarg.rb +35 -0
  68. data/lib/opal/nodes/args/extract_kwrestarg.rb +35 -0
  69. data/lib/opal/nodes/args/extract_optarg.rb +35 -0
  70. data/lib/opal/nodes/args/extract_post_arg.rb +28 -0
  71. data/lib/opal/nodes/args/extract_post_optarg.rb +41 -0
  72. data/lib/opal/nodes/args/extract_restarg.rb +40 -0
  73. data/lib/opal/nodes/args/fake_arg.rb +26 -0
  74. data/lib/opal/nodes/args/initialize_iterarg.rb +28 -0
  75. data/lib/opal/nodes/args/initialize_shadowarg.rb +24 -0
  76. data/lib/opal/nodes/args/parameters.rb +63 -0
  77. data/lib/opal/nodes/args/prepare_post_args.rb +22 -0
  78. data/lib/opal/nodes/array.rb +9 -8
  79. data/lib/opal/nodes/base.rb +20 -11
  80. data/lib/opal/nodes/call.rb +24 -25
  81. data/lib/opal/nodes/call_special.rb +4 -3
  82. data/lib/opal/nodes/case.rb +24 -26
  83. data/lib/opal/nodes/class.rb +4 -5
  84. data/lib/opal/nodes/constants.rb +8 -7
  85. data/lib/opal/nodes/csend.rb +2 -3
  86. data/lib/opal/nodes/def.rb +28 -74
  87. data/lib/opal/nodes/defined.rb +36 -36
  88. data/lib/opal/nodes/definitions.rb +10 -7
  89. data/lib/opal/nodes/defs.rb +8 -16
  90. data/lib/opal/nodes/hash.rb +5 -4
  91. data/lib/opal/nodes/helpers.rb +8 -8
  92. data/lib/opal/nodes/if.rb +10 -8
  93. data/lib/opal/nodes/iter.rb +16 -103
  94. data/lib/opal/nodes/lambda.rb +18 -0
  95. data/lib/opal/nodes/literal.rb +29 -63
  96. data/lib/opal/nodes/logic.rb +25 -24
  97. data/lib/opal/nodes/masgn.rb +8 -6
  98. data/lib/opal/nodes/module.rb +4 -4
  99. data/lib/opal/nodes/node_with_args.rb +14 -208
  100. data/lib/opal/nodes/rescue.rb +32 -32
  101. data/lib/opal/nodes/runtime_helpers.rb +5 -4
  102. data/lib/opal/nodes/scope.rb +18 -29
  103. data/lib/opal/nodes/singleton_class.rb +3 -3
  104. data/lib/opal/nodes/super.rb +12 -18
  105. data/lib/opal/nodes/top.rb +10 -8
  106. data/lib/opal/nodes/variables.rb +6 -6
  107. data/lib/opal/nodes/while.rb +7 -6
  108. data/lib/opal/nodes/x_string.rb +139 -0
  109. data/lib/opal/nodes/yield.rb +10 -7
  110. data/lib/opal/parser.rb +9 -46
  111. data/lib/opal/parser/default_config.rb +50 -0
  112. data/lib/opal/parser/patch.rb +26 -0
  113. data/lib/opal/parser/source_buffer.rb +11 -0
  114. data/lib/opal/parser/with_c_lexer.rb +14 -0
  115. data/lib/opal/parser/with_ruby_lexer.rb +6 -0
  116. data/lib/opal/path_reader.rb +6 -5
  117. data/lib/opal/paths.rb +9 -6
  118. data/lib/opal/regexp_anchors.rb +6 -5
  119. data/lib/opal/rewriter.rb +7 -0
  120. data/lib/opal/rewriters/arguments.rb +58 -0
  121. data/lib/opal/rewriters/base.rb +32 -12
  122. data/lib/opal/rewriters/binary_operator_assignment.rb +20 -20
  123. data/lib/opal/rewriters/block_to_iter.rb +2 -1
  124. data/lib/opal/rewriters/break_finder.rb +2 -0
  125. data/lib/opal/rewriters/dot_js_syntax.rb +3 -2
  126. data/lib/opal/rewriters/dump_args.rb +28 -0
  127. data/lib/opal/rewriters/explicit_writer_return.rb +4 -3
  128. data/lib/opal/rewriters/for_rewriter.rb +12 -12
  129. data/lib/opal/rewriters/hashes/key_duplicates_rewriter.rb +2 -1
  130. data/lib/opal/rewriters/inline_args.rb +220 -0
  131. data/lib/opal/rewriters/js_reserved_words.rb +21 -17
  132. data/lib/opal/rewriters/logical_operator_assignment.rb +24 -14
  133. data/lib/opal/rewriters/mlhs_args.rb +128 -0
  134. data/lib/opal/rewriters/opal_engine_check.rb +11 -6
  135. data/lib/opal/rewriters/rubyspec/filters_rewriter.rb +3 -2
  136. data/lib/opal/server.rb +1 -0
  137. data/lib/opal/simple_server.rb +15 -23
  138. data/lib/opal/source_map.rb +7 -70
  139. data/lib/opal/source_map/file.rb +199 -0
  140. data/lib/opal/source_map/index.rb +83 -0
  141. data/lib/opal/source_map/map.rb +26 -0
  142. data/lib/opal/source_map/vlq.rb +98 -0
  143. data/lib/opal/util.rb +7 -5
  144. data/lib/opal/version.rb +2 -1
  145. data/lib/tilt/opal.rb +3 -3
  146. data/opal.gemspec +18 -9
  147. data/opal/corelib/array.rb +135 -117
  148. data/opal/corelib/array/pack.rb +446 -0
  149. data/opal/corelib/basic_object.rb +23 -9
  150. data/opal/corelib/boolean.rb +3 -3
  151. data/opal/corelib/class.rb +4 -10
  152. data/opal/corelib/comparable.rb +36 -23
  153. data/opal/corelib/complex.rb +108 -14
  154. data/opal/corelib/constants.rb +4 -4
  155. data/opal/corelib/enumerable.rb +132 -135
  156. data/opal/corelib/enumerator.rb +47 -50
  157. data/opal/corelib/error.rb +65 -8
  158. data/opal/corelib/file.rb +37 -32
  159. data/opal/corelib/hash.rb +90 -21
  160. data/opal/corelib/helpers.rb +7 -6
  161. data/opal/corelib/kernel.rb +53 -586
  162. data/opal/corelib/kernel/format.rb +544 -0
  163. data/opal/corelib/marshal.rb +1 -13
  164. data/opal/corelib/marshal/read_buffer.rb +20 -23
  165. data/opal/corelib/marshal/write_buffer.rb +23 -15
  166. data/opal/corelib/math.rb +12 -16
  167. data/opal/corelib/method.rb +5 -3
  168. data/opal/corelib/module.rb +80 -109
  169. data/opal/corelib/nil.rb +2 -2
  170. data/opal/corelib/number.rb +177 -43
  171. data/opal/corelib/numeric.rb +22 -16
  172. data/opal/corelib/pack_unpack/format_string_parser.rb +135 -0
  173. data/opal/corelib/proc.rb +3 -4
  174. data/opal/corelib/process.rb +1 -1
  175. data/opal/corelib/random.rb +24 -16
  176. data/opal/corelib/random/MersenneTwister.js +137 -0
  177. data/opal/corelib/random/math_random.js.rb +9 -0
  178. data/opal/corelib/random/mersenne_twister.js.rb +13 -0
  179. data/opal/corelib/random/seedrandom.js.rb +12 -0
  180. data/opal/corelib/range.rb +25 -26
  181. data/opal/corelib/rational.rb +57 -17
  182. data/opal/corelib/regexp.rb +39 -43
  183. data/opal/corelib/runtime.js +806 -683
  184. data/opal/corelib/string.rb +213 -112
  185. data/opal/corelib/string/encoding.rb +14 -17
  186. data/opal/corelib/string/unpack.rb +793 -0
  187. data/opal/corelib/struct.rb +40 -24
  188. data/opal/corelib/time.rb +14 -15
  189. data/opal/corelib/unsupported.rb +26 -4
  190. data/opal/opal.rb +2 -1
  191. data/opal/opal/full.rb +2 -0
  192. data/stdlib/base64.rb +1 -1
  193. data/stdlib/bigdecimal.rb +11 -13
  194. data/stdlib/buffer.rb +9 -8
  195. data/stdlib/buffer/array.rb +46 -48
  196. data/stdlib/buffer/view.rb +85 -47
  197. data/stdlib/console.rb +18 -18
  198. data/stdlib/date.rb +85 -66
  199. data/stdlib/delegate.rb +2 -2
  200. data/stdlib/e2mmap.rb +176 -0
  201. data/stdlib/encoding.rb +1 -1
  202. data/stdlib/erb.rb +1 -1
  203. data/stdlib/forwardable.rb +14 -14
  204. data/stdlib/json.rb +1 -2
  205. data/stdlib/logger.rb +112 -0
  206. data/stdlib/math.rb +1 -1
  207. data/stdlib/matrix.rb +2169 -0
  208. data/stdlib/matrix/eigenvalue_decomposition.rb +883 -0
  209. data/stdlib/matrix/lup_decomposition.rb +219 -0
  210. data/stdlib/nashorn/file.rb +7 -9
  211. data/stdlib/native.rb +69 -63
  212. data/stdlib/nodejs.rb +3 -0
  213. data/stdlib/nodejs/dir.rb +25 -4
  214. data/stdlib/nodejs/env.rb +40 -0
  215. data/stdlib/nodejs/file.rb +184 -34
  216. data/stdlib/nodejs/fileutils.rb +4 -4
  217. data/stdlib/nodejs/io.rb +4 -46
  218. data/stdlib/nodejs/irb.rb +27 -29
  219. data/stdlib/nodejs/kernel.rb +2 -11
  220. data/stdlib/nodejs/node_modules/balanced-match/.npmignore +5 -0
  221. data/stdlib/nodejs/node_modules/balanced-match/LICENSE.md +21 -0
  222. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match → balanced-match}/README.md +13 -2
  223. data/stdlib/nodejs/node_modules/balanced-match/index.js +59 -0
  224. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match → balanced-match}/package.json +46 -42
  225. data/stdlib/nodejs/node_modules/brace-expansion/LICENSE +21 -0
  226. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion → brace-expansion}/README.md +9 -1
  227. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion → brace-expansion}/index.js +12 -2
  228. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion → brace-expansion}/package.json +48 -48
  229. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/.travis.yml +0 -0
  230. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/LICENSE +0 -0
  231. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/README.markdown +0 -0
  232. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/example/map.js +0 -0
  233. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/index.js +0 -0
  234. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/package.json +47 -42
  235. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/test/map.js +0 -0
  236. data/stdlib/nodejs/node_modules/fs.realpath/LICENSE +43 -0
  237. data/stdlib/nodejs/node_modules/fs.realpath/README.md +33 -0
  238. data/stdlib/nodejs/node_modules/fs.realpath/index.js +66 -0
  239. data/stdlib/nodejs/node_modules/fs.realpath/old.js +303 -0
  240. data/stdlib/nodejs/node_modules/fs.realpath/package.json +59 -0
  241. data/stdlib/nodejs/node_modules/glob/README.md +57 -46
  242. data/stdlib/nodejs/node_modules/glob/changelog.md +67 -0
  243. data/stdlib/nodejs/node_modules/glob/common.js +91 -28
  244. data/stdlib/nodejs/node_modules/glob/glob.js +196 -55
  245. data/stdlib/nodejs/node_modules/glob/package.json +55 -51
  246. data/stdlib/nodejs/node_modules/glob/sync.js +116 -39
  247. data/stdlib/nodejs/node_modules/{glob/node_modules/inflight → inflight}/LICENSE +0 -0
  248. data/stdlib/nodejs/node_modules/{glob/node_modules/inflight → inflight}/README.md +0 -0
  249. data/stdlib/nodejs/node_modules/inflight/inflight.js +54 -0
  250. data/stdlib/nodejs/node_modules/inflight/package.json +58 -0
  251. data/stdlib/nodejs/node_modules/{glob/node_modules/inherits → inherits}/LICENSE +0 -0
  252. data/stdlib/nodejs/node_modules/{glob/node_modules/inherits → inherits}/README.md +0 -0
  253. data/stdlib/nodejs/node_modules/inherits/inherits.js +7 -0
  254. data/stdlib/nodejs/node_modules/{glob/node_modules/inherits → inherits}/inherits_browser.js +0 -0
  255. data/stdlib/nodejs/node_modules/inherits/package.json +61 -0
  256. data/stdlib/nodejs/node_modules/{glob/node_modules/inflight/node_modules/wrappy → minimatch}/LICENSE +0 -0
  257. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch → minimatch}/README.md +2 -9
  258. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch → minimatch}/minimatch.js +284 -206
  259. data/stdlib/nodejs/node_modules/minimatch/package.json +63 -0
  260. data/stdlib/nodejs/node_modules/{glob/node_modules/once/node_modules/wrappy → once}/LICENSE +0 -0
  261. data/stdlib/nodejs/node_modules/{glob/node_modules/once → once}/README.md +28 -0
  262. data/stdlib/nodejs/node_modules/once/once.js +42 -0
  263. data/stdlib/nodejs/node_modules/once/package.json +67 -0
  264. data/stdlib/nodejs/node_modules/path-is-absolute/index.js +20 -0
  265. data/stdlib/nodejs/node_modules/path-is-absolute/license +21 -0
  266. data/stdlib/nodejs/node_modules/path-is-absolute/package.json +75 -0
  267. data/stdlib/nodejs/node_modules/path-is-absolute/readme.md +59 -0
  268. data/stdlib/nodejs/node_modules/unxhr/LICENSE +22 -0
  269. data/stdlib/nodejs/node_modules/unxhr/README.md +41 -0
  270. data/stdlib/nodejs/node_modules/unxhr/lib/XMLHttpRequest.js +598 -0
  271. data/stdlib/nodejs/node_modules/unxhr/lib/browser.js +2 -0
  272. data/stdlib/nodejs/node_modules/unxhr/lib/request.js +63 -0
  273. data/stdlib/nodejs/node_modules/unxhr/package.json +75 -0
  274. data/stdlib/nodejs/node_modules/wrappy/LICENSE +15 -0
  275. data/stdlib/nodejs/node_modules/{glob/node_modules/inflight/node_modules/wrappy → wrappy}/README.md +0 -0
  276. data/stdlib/nodejs/node_modules/wrappy/package.json +59 -0
  277. data/stdlib/nodejs/node_modules/{glob/node_modules/inflight/node_modules/wrappy → wrappy}/wrappy.js +0 -0
  278. data/stdlib/nodejs/open-uri.rb +26 -0
  279. data/stdlib/nodejs/package-lock.json +88 -0
  280. data/stdlib/nodejs/package.json +2 -1
  281. data/stdlib/nodejs/pathname.rb +20 -0
  282. data/stdlib/nodejs/require.rb +3 -3
  283. data/stdlib/nodejs/stacktrace.rb +1 -1
  284. data/stdlib/nodejs/yaml.rb +1 -1
  285. data/stdlib/opal-builder.rb +1 -0
  286. data/stdlib/opal-parser.rb +4 -1
  287. data/stdlib/opal-platform.rb +8 -10
  288. data/stdlib/opal-source-maps.rb +0 -1
  289. data/stdlib/open-uri.rb +349 -0
  290. data/stdlib/ostruct.rb +19 -17
  291. data/stdlib/pathname.rb +22 -22
  292. data/stdlib/pp.rb +5 -5
  293. data/stdlib/promise.rb +30 -26
  294. data/stdlib/rbconfig/sizeof.rb +50 -0
  295. data/stdlib/securerandom.rb +1 -1
  296. data/stdlib/set.rb +21 -23
  297. data/stdlib/singleton.rb +3 -4
  298. data/stdlib/stringio.rb +33 -0
  299. data/stdlib/strscan.rb +55 -55
  300. data/stdlib/template.rb +1 -2
  301. data/stdlib/thread.rb +6 -7
  302. data/tasks/benchmarking.rake +1 -1
  303. data/tasks/building.rake +4 -12
  304. data/tasks/linting.rake +17 -2
  305. data/tasks/releasing.rake +84 -0
  306. data/tasks/testing.rake +57 -15
  307. data/tasks/testing/mspec_special_calls.rb +23 -4
  308. data/vendored-minitest/minitest.rb +1 -1
  309. metadata +169 -168
  310. data/bin/opal-build +0 -3
  311. data/exe/opal-mspec +0 -10
  312. data/lib/opal/nodes/args/initialize_kwargs.rb +0 -29
  313. data/lib/opal/nodes/args/kwarg.rb +0 -31
  314. data/lib/opal/nodes/args/kwoptarg.rb +0 -34
  315. data/lib/opal/nodes/args/kwrestarg.rb +0 -39
  316. data/lib/opal/nodes/args/mlhsarg.rb +0 -78
  317. data/lib/opal/nodes/args/normarg.rb +0 -29
  318. data/lib/opal/nodes/args/optarg.rb +0 -25
  319. data/lib/opal/nodes/args/post_args.rb +0 -201
  320. data/lib/opal/nodes/args/post_kwargs.rb +0 -32
  321. data/lib/opal/nodes/args/restarg.rb +0 -38
  322. data/lib/opal/nodes/inline_args.rb +0 -60
  323. data/opal/corelib/string/inheritance.rb +0 -123
  324. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/.eslintrc +0 -17
  325. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/inflight.js +0 -44
  326. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json +0 -52
  327. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/test/basic.js +0 -51
  328. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/package.json +0 -61
  329. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/test.js +0 -97
  330. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/inherits.js +0 -1
  331. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/package.json +0 -51
  332. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/test.js +0 -25
  333. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.npmignore +0 -1
  334. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.travis.yml +0 -4
  335. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/LICENSE +0 -23
  336. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/benchmark.js +0 -15
  337. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/browser.js +0 -1181
  338. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +0 -2
  339. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.travis.yml +0 -3
  340. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +0 -8
  341. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +0 -2
  342. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml +0 -4
  343. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +0 -6
  344. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +0 -5
  345. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +0 -38
  346. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +0 -56
  347. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js +0 -32
  348. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt +0 -1075
  349. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt +0 -182
  350. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js +0 -9
  351. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js +0 -10
  352. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh +0 -24
  353. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js +0 -15
  354. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/nested.js +0 -16
  355. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/order.js +0 -10
  356. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/pad.js +0 -13
  357. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js +0 -7
  358. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js +0 -50
  359. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/package.json +0 -60
  360. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/basic.js +0 -399
  361. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/brace-expand.js +0 -45
  362. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/defaults.js +0 -274
  363. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js +0 -8
  364. data/stdlib/nodejs/node_modules/glob/node_modules/once/LICENSE +0 -27
  365. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/README.md +0 -36
  366. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/package.json +0 -52
  367. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/test/basic.js +0 -51
  368. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js +0 -33
  369. data/stdlib/nodejs/node_modules/glob/node_modules/once/once.js +0 -21
  370. data/stdlib/nodejs/node_modules/glob/node_modules/once/package.json +0 -60
  371. data/stdlib/nodejs/node_modules/glob/node_modules/once/test/once.js +0 -23
  372. data/stdlib/nodejs/rubygems.rb +0 -68
  373. data/stdlib/source_map.rb +0 -5
  374. data/stdlib/source_map/map.rb +0 -220
  375. data/stdlib/source_map/mapping.rb +0 -26
  376. data/stdlib/source_map/offset.rb +0 -88
  377. data/stdlib/source_map/version.rb +0 -3
  378. data/stdlib/source_map/vlq.rb +0 -99
  379. data/stdlib/sourcemap.rb +0 -1
@@ -0,0 +1,44 @@
1
+ # All items in this file require fixing
2
+
3
+ Metrics/LineLength:
4
+ Enabled: false
5
+
6
+ Lint/AssignmentInCondition:
7
+ Exclude:
8
+ - 'lib/opal/ast/node.rb'
9
+ - 'lib/opal/compiler.rb'
10
+ - 'lib/opal/nodes/helpers.rb'
11
+ - 'lib/opal/nodes/logic.rb'
12
+ - 'lib/opal/nodes/masgn.rb'
13
+ - 'lib/opal/nodes/runtime_helpers.rb'
14
+ - 'lib/opal/nodes/scope.rb'
15
+ - 'lib/opal/nodes/top.rb'
16
+ - 'lib/tilt/opal.rb'
17
+ - 'opal/corelib/comparable.rb'
18
+ - 'opal/corelib/complex.rb'
19
+ - 'opal/corelib/marshal/write_buffer.rb'
20
+
21
+ Style/GuardClause:
22
+ Enabled: false
23
+
24
+ Style/ModuleFunction:
25
+ Exclude:
26
+ - 'lib/opal/config.rb'
27
+ - 'lib/opal/util.rb'
28
+ - 'stdlib/nodejs/fileutils.rb'
29
+ - 'stdlib/js.rb'
30
+
31
+ Style/MutableConstant:
32
+ Exclude:
33
+ - 'lib/opal/nodes/call.rb'
34
+ - 'lib/opal/util.rb'
35
+
36
+ Style/MethodMissing:
37
+ Exclude:
38
+ - 'stdlib/native.rb'
39
+ - 'stdlib/delegate.rb'
40
+ - 'stdlib/ostruct.rb'
41
+
42
+ Lint/HandleExceptions:
43
+ Exclude:
44
+ - 'stdlib/ostruct.rb'
@@ -1,7 +1,7 @@
1
1
  language: ruby
2
2
 
3
+ # https://github.com/discourse/mini_racer#travis-ci
3
4
  sudo: required
4
-
5
5
  dist: trusty
6
6
 
7
7
  addons:
@@ -19,62 +19,57 @@ cache:
19
19
  - /home/travis/.nvm/
20
20
  - smoke_test_opal_rspec
21
21
 
22
-
23
22
  matrix:
24
23
  fast_finish: true
25
24
 
26
25
  include:
27
- - rvm: 2.5.1
28
- env: RUN=mspec_opal_chrome REINSTALL_BUNDLER=true
26
+ - rvm: 2.5.3
27
+ env: RUN=mspec_opal_chrome
29
28
 
30
- - rvm: 2.5.1
31
- env: RUN=mspec_ruby_chrome REINSTALL_BUNDLER=true
29
+ - rvm: 2.5.3
30
+ env: RUN=mspec_ruby_chrome
32
31
 
33
- # - rvm: 2.5.1
32
+ # - rvm: 2.5.3
34
33
  # env:
35
34
  # - RUN=browser_test
36
35
  # - SAUCE_USERNAME=elia
37
36
  # # SAUCE_ACCESS_KEY:
38
37
  # - secure: GT13SjzU8vmqKIyY2LAXje+ndqevTsX/w71JkZHRLTrDUl0qcIod7xsfahbzGt2gOZPYZUkKiVaPoUenhc/YeJ2jTJVHeHY9UEl2II+3tOtuvp2jLadA//aBbsB6/09d7lIZMzpa93TL2R/SncPxugYW9v2o8o8Lwd2iIzowT/g=
39
38
 
40
- - rvm: 2.5.1
41
- env: RUN=jshint REINSTALL_BUNDLER=true
39
+ - rvm: 2.5.3
40
+ env: RUN=lint
42
41
 
43
- - rvm: 2.5.1
44
- env: RUN=mspec_opal_nodejs REINSTALL_BUNDLER=true
42
+ - rvm: 2.5.3
43
+ env: RUN=mspec_opal_nodejs
45
44
 
46
- - rvm: 2.5.1
47
- env: RUN=mspec_ruby_nodejs REINSTALL_BUNDLER=true TZ="/usr/share/zoneinfo/Pacific/Fiji"
45
+ - rvm: 2.5.3
46
+ env: RUN=mspec_ruby_nodejs TZ="/usr/share/zoneinfo/Pacific/Fiji"
48
47
 
49
- - rvm: 2.5.1
50
- env: RUN=minitest REINSTALL_BUNDLER=true
48
+ - rvm: 2.5.3
49
+ env: RUN=minitest
51
50
 
52
- - rvm: 2.5.1
53
- env: RUN=rspec RACK_VERSION='~> 2.0.0' CHECK_COVERAGE=true REINSTALL_BUNDLER=true
51
+ - rvm: 2.5.3
52
+ env: RUN=rspec RACK_VERSION='~> 2.0' CHECK_COVERAGE=true
54
53
 
55
- - rvm: 2.5.1
56
- env: RUN=smoke_test REINSTALL_BUNDLER=true
54
+ - rvm: 2.5.3
55
+ env: RUN=smoke_test
57
56
 
58
57
  - rvm: ruby-head
59
- env: RUN=rspec REINSTALL_BUNDLER=true
58
+ env: RUN=rspec
60
59
 
61
- - rvm: 2.4.4
62
- env: RUN=rspec RACK_VERSION='~> 2.0.0' REINSTALL_BUNDLER=true
60
+ - rvm: 2.4.5
61
+ env: RUN=rspec RACK_VERSION='~> 2.0'
63
62
 
64
- - rvm: 2.3.7
63
+ - rvm: 2.3.8
65
64
  env: RUN=rspec
66
65
 
67
- - rvm: 2.2.10
68
- env: RUN=rspec TILT_VERSION=2.0.1 SPROCKETS_VERSION='~> 3.7'
69
-
70
- - rvm: 2.1.10
71
- env: RUN=rspec RACK_VERSION='< 2.0'
66
+ - rvm: 2.6.0
67
+ env: RUN=rspec
72
68
 
73
- - rvm: 2.0.0
74
- nvm: "0.10"
75
- env: RUN="rspec mspec_opal_nodejs" RACK_VERSION='< 2.0'
69
+ - rvm: truffleruby
70
+ env: RUN=rspec
76
71
 
77
- - rvm: jruby-9.2.0.0
72
+ - rvm: jruby-9.2.4.1
78
73
  env: RUN=rspec
79
74
 
80
75
  - rvm: jruby-head
@@ -83,6 +78,7 @@ matrix:
83
78
  allow_failures:
84
79
  - rvm: ruby-head
85
80
  - rvm: jruby-head
81
+ - rvm: truffleruby
86
82
  - env: RUN=smoke_test
87
83
 
88
84
 
@@ -92,8 +88,6 @@ before_install:
92
88
  - git submodule update --init
93
89
  - npm install -g jshint
94
90
  - npm install -g uglify-js
95
- - test $REINSTALL_BUNDLER && gem install bundler -v 0.16.1 || true
96
- - type bundle || gem install bundler
97
91
  - bundle config without doc
98
92
  - which google-chrome-stable
99
93
  - google-chrome-stable --version
@@ -11,17 +11,147 @@ Changes are grouped as follows:
11
11
  - **Fixed** for any bug fixes.
12
12
  - **Security** to invite users to upgrade in case of vulnerabilities.
13
13
 
14
+
15
+
16
+
17
+
18
+ ## [Unreleased](https://github.com/opal/opal/compare/v0.11.4...HEAD) - unreleased
19
+
20
+
14
21
  <!--
15
22
  Whitespace conventions:
16
23
  - 4 spaces before ## titles
17
24
  - 2 spaces before ### titles
18
25
  - 1 spaces before normal text
19
- -->
26
+ -->
27
+
28
+ ### Added
29
+
30
+ - Added `Module#prepend` and completely overhauled the module and class inheritance system ([#1826](https://github.com/opal/opal/pull/1826))
31
+ - Methods and properties are now assigned with `Object.defineProperty()` as non-enumerable ([#1821](https://github.com/opal/opal/pull/1821))
32
+ - Backtrace now includes the location inside the source file for syntax errors ([#1814](https://github.com/opal/opal/pull/1814))
33
+ - Added support for a faster C-implemented lexer, it's enough to add `gem 'c_lexer` to the `Gemfile` ([#1806](https://github.com/opal/opal/pull/1806))
34
+ - Added `Date#to_n` that returns the JavaScript Date object (in native.rb). (#1779, #1792)
35
+ - Added `Array#pack` (supports only `C, S, L, Q, c, s, l, q, A, a` formats). ([#1723](https://github.com/opal/opal/pull/1723))
36
+ - Added `String#unpack` (supports only `C, S, L, Q, S>, L>, Q>, c, s, l, q, n, N, v, V, U, w, A, a, Z, B, b, H, h, u, M, m` formats). ([#1723](https://github.com/opal/opal/pull/1723))
37
+ - Added `File#symlink?` for Node.js. ([#1725](https://github.com/opal/opal/pull/1725))
38
+ - Added `Dir#glob` for Node.js (does not support flags). ([#1727](https://github.com/opal/opal/pull/1727))
39
+ - Added support for a static folder in the "server" CLI runner via the `OPAL_CLI_RUNNERS_SERVER_STATIC_FOLDER` env var
40
+ - Added the CLI option `--runner-options` that allows passing arbitrary options to the selected runner, currently the only runner making use of them is `server` accepting `port` and `static_folder`
41
+ - Added a short helper to navigate constants manually: E.g. `Opal.$$.Regexp.$$.IGNORECASE` (see docs for "Compiled Ruby")
42
+ - Added initial support for OpenURI module (using XMLHttpRequest on browser and [xmlhttprequest](https://www.npmjs.com/package/xmlhttprequest) on Node). ([#1735](https://github.com/opal/opal/pull/1735))
43
+ - Added `String#prepend` to the list of unsupported methods (because String are immutable in JavaScript)
44
+ - Added methods (most introduced in 2.4/2.5):
45
+ * `Array#prepend` ([#1757](https://github.com/opal/opal/pull/1757))
46
+ * `Array#append` ([#1757](https://github.com/opal/opal/pull/1757))
47
+ * `Array#max` ([#1757](https://github.com/opal/opal/pull/1757))
48
+ * `Array#min` ([#1757](https://github.com/opal/opal/pull/1757))
49
+ * `Complex#finite?` ([#1757](https://github.com/opal/opal/pull/1757))
50
+ * `Complex#infinite?` ([#1757](https://github.com/opal/opal/pull/1757))
51
+ * `Complex#infinite?` ([#1757](https://github.com/opal/opal/pull/1757))
52
+ * `Date#to_time` ([#1757](https://github.com/opal/opal/pull/1757))
53
+ * `Date#next_year` ([#1885](https://github.com/opal/opal/pull/1885))
54
+ * `Date#prev_year` ([#1885](https://github.com/opal/opal/pull/1885))
55
+ * `Hash#slice` ([#1757](https://github.com/opal/opal/pull/1757))
56
+ * `Hash#transform_keys` ([#1757](https://github.com/opal/opal/pull/1757))
57
+ * `Hash#transform_keys!` ([#1757](https://github.com/opal/opal/pull/1757))
58
+ * `Numeric#finite?` ([#1757](https://github.com/opal/opal/pull/1757))
59
+ * `Numeric#infinite?` ([#1757](https://github.com/opal/opal/pull/1757))
60
+ * `Numeric#infinite?` ([#1757](https://github.com/opal/opal/pull/1757))
61
+ * `Integer#allbits?` ([#1757](https://github.com/opal/opal/pull/1757))
62
+ * `Integer#anybits?` ([#1757](https://github.com/opal/opal/pull/1757))
63
+ * `Integer#digits` ([#1757](https://github.com/opal/opal/pull/1757))
64
+ * `Integer#nobits?` ([#1757](https://github.com/opal/opal/pull/1757))
65
+ * `Integer#pow` ([#1757](https://github.com/opal/opal/pull/1757))
66
+ * `Integer#remainder` ([#1757](https://github.com/opal/opal/pull/1757))
67
+ * `Integer.sqrt` ([#1757](https://github.com/opal/opal/pull/1757))
68
+ * `Random.urandom` ([#1757](https://github.com/opal/opal/pull/1757))
69
+ * `String#delete_prefix` ([#1757](https://github.com/opal/opal/pull/1757))
70
+ * `String#delete_suffix` ([#1757](https://github.com/opal/opal/pull/1757))
71
+ * `String#casecmp?` ([#1757](https://github.com/opal/opal/pull/1757))
72
+ * `Kernel#yield_self` ([#1757](https://github.com/opal/opal/pull/1757))
73
+ * `String#unpack1` ([#1757](https://github.com/opal/opal/pull/1757))
74
+ * `String#to_r` ([#1842](https://github.com/opal/opal/pull/1842))
75
+ * `String#to_c` ([#1842](https://github.com/opal/opal/pull/1842))
76
+ * `String#match?` ([#1842](https://github.com/opal/opal/pull/1842))
77
+ * `String#unicode_normalize` returns self ([#1842](https://github.com/opal/opal/pull/1842))
78
+ * `String#unicode_normalized?` returns true ([#1842](https://github.com/opal/opal/pull/1842))
79
+ * `String#[]=` throws `NotImplementedError`([#1836](https://github.com/opal/opal/pull/1836))
80
+
81
+ - Added support of the `pattern` argument for `Enumerable#all?`, `Enumerable#any?`, `Enumerable#none?`. ([#1757](https://github.com/opal/opal/pull/1757))
82
+ - Added `ndigits` option support to `Number#floor`, `Number#ceil`, `Number#truncate`. ([#1757](https://github.com/opal/opal/pull/1757))
83
+ - Added `key` and `receiver` attributes to the `KeyError`. ([#1757](https://github.com/opal/opal/pull/1757))
84
+ - Extended `Struct.new` to support `keyword_init` option. ([#1757](https://github.com/opal/opal/pull/1757))
85
+ - Added a new `Opal::Config.missing_require_severity` option and relative `--missing-require` CLI flag. This option will command how the builder will behave when a required file is missing. Previously the behavior was undefined and partly controlled by `dynamic_require_severity`. Not to be confused with the runtime config option `Opal.config.missing_require_severity;` which controls the runtime behavior.
86
+ - Added `Matrix` (along with the internal MRI utility `E2MM`)
87
+ - Use shorter helpers for constant lookups, `$$` for relative (nesting) lookups and `$$$` for absolute (qualified) lookups
88
+ - Add support for the Mersenne Twister random generator, the same used by CRuby/MRI (#657 & #1891)
89
+ - [Nodejs] Added support for binary data in `OpenURI` (#1911, #1920)
90
+ - [Nodejs] Added support for binary data in `File#read` (#1919, #1921)
91
+ - [Nodejs] Added support for `File#readlines` ([#1882](https://github.com/opal/opal/pull/1882))
92
+ - [Nodejs] Added support for `ENV#[]`, `ENV#[]=`, `ENV#key?`, `ENV#has_key?`, `ENV#include?`, `ENV#member?`, `ENV#empty?`, `ENV#keys`, `ENV#delete` and `ENV#to_s` ([#1928](https://github.com/opal/opal/pull/1928))
93
+
94
+
95
+ ### Changed
96
+
97
+ - **BREAKING** The dot (`.`) character is no longer replaced with [\s\S] in a multiline regexp passed to Regexp#match and Regexp#match? (#1796, #1795)
98
+ * You're advised to always use [\s\S] instead of . in a multiline regexp, which is portable between Ruby and JavaScript
99
+ - **BREAKING** `Kernel#format` (and `sprintf` alias) are now in a dedicated module `corelib/kernel/format` and available exclusively in `opal` ([#1930](https://github.com/opal/opal/pull/1930))
100
+ * Previously the methods were part of the `corelib/kernel` module and available in both `opal` and `opal/mini`
101
+ - Filename extensions are no longer stripped from filenames internally, resulting in better error reporting ([#1804](https://github.com/opal/opal/pull/1804))
102
+ - The internal API for CLI runners has changed, now it's just a callable object
103
+ - The `--map` CLI option now works only in conjunction with `--compile` (or `--runner compiler`)
104
+ - The `node` CLI runner now adds its `NODE_PATH` entry instead of replacing the ENV var altogether
105
+ - Added `--disable-web-security` option flag to the Chrome headless runner to be able to do `XMLHttpRequest`
106
+ - Migrated parser to 2.5. Bump RUBY_VERSION to 2.5.0.
107
+ - Exceptions raised during the compilation now add to the backtrace the current location of the opal file if available ([#1814](https://github.com/opal/opal/pull/1814)).
108
+ - Better use of `displayName` on functions and methods and more readable temp variable names ([#1910](https://github.com/opal/opal/pull/1910))
109
+ - Source-maps are now inlined and already contain sources, incredibly more stable and precise ([#1856](https://github.com/opal/opal/pull/1856))
20
110
 
21
111
 
112
+ ### Deprecated
113
+
114
+ - The CLI `--server-port 1234` option is now deprecated in favor of using `--runner-options='{"port": 1234}'`
115
+ - Including `::Native` is now deprecated because it generates conflicts with core classes in constant lookups (both `Native::Object` and `Native::Array` exist). Instead `Native::Werapper` should be used.
116
+ - Using `node_require 'my_module'` to access the native `require()` function in Node.js is deprecated in favor of <code>\`require('my_module')\`</code> because static builders need to parse the call in order to function ([#1886](https://github.com/opal/opal/pull/1886)).
117
+
118
+
119
+ ### Removed
120
+
121
+ - The `node` CLI runner no longer supports passing extra node options via the `NODE_OPT` env var, instead Node.js natively supports the `NODE_OPTIONS` env var.
122
+ - The gem "hike" is no longer an external dependency and is now an internal dependency available as `Opal::Hike` ([#1881](https://github.com/opal/opal/pull/1881))
123
+ - Removed the internal Opal class `Marshal::BinaryString` ([#1914](https://github.com/opal/opal/pull/1914))
124
+ - Removed Racc, as it's now replaced by the parser gem ([#1880](https://github.com/opal/opal/pull/1880))
125
+
126
+
127
+
128
+ ### Fixed
129
+
130
+ - Fix handling of trailing semicolons and JavaScript returns inside x-strings, the behavior is now well defined and covered by proper specs ([#1776](https://github.com/opal/opal/pull/1776))
131
+ - Fixed singleton method definition to return method name. ([#1757](https://github.com/opal/opal/pull/1757))
132
+ - Allow passing number of months to `Date#next_month` and `Date#prev_month`. ([#1757](https://github.com/opal/opal/pull/1757))
133
+ - Fixed `pattern` argument handling for `Enumerable#grep` and `Enumerable#grep_v`. ([#1757](https://github.com/opal/opal/pull/1757))
134
+ - Raise `ArgumentError` instead of `TypeError` from `Numeric#step` when step is not a number. ([#1757](https://github.com/opal/opal/pull/1757))
135
+ - At run-time `LoadError` wasn't being raised even with `Opal.config.missing_require_severity;` set to `'error'`.
136
+ - Fixed `Kernel#public_methods` to return instance methods if the argument is set to false. ([#1848](https://github.com/opal/opal/pull/1848))
137
+ - Fixed an issue in `String#gsub` that made it start an infinite loop when used recursively. ([#1879](https://github.com/opal/opal/pull/1879))
138
+ - `Kernel#exit` was using status 0 when a number or a generic object was provided, now accepts numbers and tries to convert objects with `#to_int` (#1898, #1808).
139
+ - Fixed metaclass inheritance in subclasses of Module ([#1901](https://github.com/opal/opal/pull/1901))
140
+ - `Method#to_proc` now correctly sets parameters and arity on the resulting Proc ([#1903](https://github.com/opal/opal/pull/1903))
141
+ - Fixed bridged classes having their prototype removed from the original chain by separating them from the Ruby class ([#1909](https://github.com/opal/opal/pull/1909))
142
+ - Improve `String#to_proc` performance ([#1888](https://github.com/opal/opal/pull/1888))
143
+ - Fixed/updated the examples ([#1887](https://github.com/opal/opal/pull/1887))
144
+ - `Opal.ancestors()` now returns false for when provided with JS-falsy objects ([#1839](https://github.com/opal/opal/pull/1839))
145
+ - When subclassing now the constant is set before calling `::inherited` ([#1838](https://github.com/opal/opal/pull/1838))
146
+ - `String#to_sym` now returns the string literal ([#1835](https://github.com/opal/opal/pull/1835))
147
+ - `String#center` now correctly checks length ([#1833](https://github.com/opal/opal/pull/1833))
148
+ - `redo` inside `while` now works properly ([#1820](https://github.com/opal/opal/pull/1820))
149
+ - Fixed compilation of empty/whitespace-only x-strings ([#1811](https://github.com/opal/opal/pull/1811))
150
+ - Fix `||=` assignments on constants when the constant is not yet defined ([#1935](https://github.com/opal/opal/pull/1935))
151
+ - Fix `String#chomp` to return an empty String when `arg == self` ([#1936](https://github.com/opal/opal/pull/1936))
152
+
22
153
 
23
154
 
24
- <!-- generated-content-beyond-this-comment -->
25
155
 
26
156
  ## [0.11.4](https://github.com/opal/opal/compare/v0.11.3...v0.11.4) - 2018-11-07
27
157
 
@@ -59,19 +189,19 @@ Whitespace conventions:
59
189
  ### Added
60
190
 
61
191
  - Added support for a static folder in the "server" CLI runner via the `OPAL_CLI_RUNNERS_SERVER_STATIC_FOLDER` env var
62
- - Added ability to pass the port to the "server" CLI runner using the `OPAL_CLI_RUNNERS_SERVER_PORT` (explicit option passed via CLI is still working but depreted)
192
+ - Added ability to pass the port to the "server" CLI runner using the `OPAL_CLI_RUNNERS_SERVER_PORT` (explicit option passed via CLI is still working but deprecated)
63
193
  - Added a new `Opal::Config.missing_require_severity` option and relative `--missing-require` CLI flag. This option will command how the builder will behave when a required file is missing. Previously the behavior was undefined and partly controlled by `dynamic_require_severity`. Not to be confused with the runtime config option `Opal.config.missing_require_severity;` which controls the runtime behavior.
64
194
  - At run-time `LoadError` wasn't being raised even with `Opal.config.missing_require_severity;` set to `'error'`.
65
195
 
66
196
 
67
197
 
68
198
 
69
- ## [0.11.0] - 2017-12-08
199
+ ## [0.11.0](https://github.com/opal/opal/compare/v0.10.6...v0.11.0) - 2017-12-08
70
200
 
71
201
 
72
202
  ### Added
73
203
 
74
- - Added support for complex (`0b1110i`) and rational (`0b1111r`) number literals. (#1487)
204
+ - Added support for complex (`0b1110i`) and rational (`0b1111r`) number literals. ([#1487](https://github.com/opal/opal/pull/1487))
75
205
  - Added 2.3.0 methods:
76
206
  * `Array#bsearch_index`
77
207
  * `Array#dig`
@@ -88,7 +218,7 @@ Whitespace conventions:
88
218
  * `Hash#to_proc`
89
219
  * `Struct#dig`
90
220
  * `Kernel#itself`
91
- - Added safe navigator (`&.`) support. (#1532)
221
+ - Added safe navigator (`&.`) support. ([#1532](https://github.com/opal/opal/pull/1532))
92
222
  - Added Random class with seed support. The following methods were reworked to use it:
93
223
  * `Kernel.rand`
94
224
  * `Kernel.srand`
@@ -100,9 +230,9 @@ Whitespace conventions:
100
230
  - Added `Method#source_location` and `Method#comments`.
101
231
  - Added a deprecation API that can be set to raise on deprecation with: `Opal.raise_on_deprecation = true`
102
232
  - Added `Opal::SimpleServer` as the quickest way to get up and running with Opal: `rackup -ropal -ropal/simple_server -b 'Opal.append_path("app"); run Opal::SimpleServer.new'`
103
- - Added `String#ascii_only?` (#1592)
104
- - Added `StringScanner#matched_size` (#1595)
105
- - Added `Hash#compare_by_identity` (#1657)
233
+ - Added `String#ascii_only?` ([#1592](https://github.com/opal/opal/pull/1592))
234
+ - Added `StringScanner#matched_size` ([#1595](https://github.com/opal/opal/pull/1595))
235
+ - Added `Hash#compare_by_identity` ([#1657](https://github.com/opal/opal/pull/1657))
106
236
 
107
237
 
108
238
  ### Removed
@@ -113,7 +243,7 @@ Whitespace conventions:
113
243
 
114
244
  ### Changed
115
245
 
116
- - Removed self-written lexer/parser. Now uses parser/ast gems to convert source code to AST. (#1465)
246
+ - Removed self-written lexer/parser. Now uses parser/ast gems to convert source code to AST. ([#1465](https://github.com/opal/opal/pull/1465))
117
247
  - Migrated parser to 2.3. Bump RUBY_VERSION to 2.3.0.
118
248
  - Changed to be 2.3 compliant:
119
249
  * `Enumerable#chunk` (to take only a a block)
@@ -147,9 +277,9 @@ Whitespace conventions:
147
277
  * `Module#class_variable_set`
148
278
  * `Module#remove_class_variable`
149
279
  * `Module#include?`
150
- * `Numeric#step` (#1512)
280
+ * `Numeric#step` ([#1512](https://github.com/opal/opal/pull/1512))
151
281
 
152
- - Improvements for Range class (#1486)
282
+ - Improvements for Range class ([#1486](https://github.com/opal/opal/pull/1486))
153
283
  * Moved private/tainted/untrusted specs to not supported
154
284
  * Conforming `Range#to_s` and `Range#inspect`
155
285
  * Starting `Range#bsearch` implementation
@@ -175,6 +305,21 @@ Whitespace conventions:
175
305
 
176
306
 
177
307
 
308
+ ## [0.10.6](https://github.com/opal/opal/compare/v0.10.5...v0.10.6) - 2018-06-21
309
+
310
+
311
+ ### Changed
312
+
313
+ - Strip Regexp flags that are unsupported by browsers (backport), previously they were ignored, lately most of them now raise an error for unknown flags.
314
+
315
+
316
+ ### Fixed
317
+
318
+ - Fixed a constant reference to `Sprockets::FileNotFound` that previously pointed to `Opal::Sprockets` instead of `::Sprockets`.
319
+
320
+
321
+
322
+
178
323
  ## [0.10.5](https://github.com/opal/opal/compare/v0.10.4...v0.10.5) - 2017-06-21
179
324
 
180
325
 
@@ -185,7 +330,7 @@ Whitespace conventions:
185
330
 
186
331
 
187
332
 
188
- ## [0.10.4](https://github.com/opal/opal/compare/v0.10.3...v0.10.4) - 2017-05-07
333
+ ## [0.10.4](https://github.com/opal/opal/compare/v0.10.3...v0.10.4) - 2017-05-06
189
334
 
190
335
 
191
336
  ### Changed
@@ -201,7 +346,7 @@ Whitespace conventions:
201
346
 
202
347
  ### Fixed
203
348
 
204
- - Fixed inheritance from the `Module` class (#1476)
349
+ - Fixed inheritance from the `Module` class ([#1476](https://github.com/opal/opal/pull/1476))
205
350
  - Fixed source map server with url-encoded paths
206
351
  - Silence Sprockets 3.7 deprecations, full support for Sprockets 4 will be available in Opal 0.11
207
352
  - Don't print the full stack trace with deprecation messages
@@ -224,7 +369,7 @@ Whitespace conventions:
224
369
 
225
370
  ### Fixed
226
371
 
227
- - Fixed `-L` option for compiling requires as modules (#1510)
372
+ - Fixed `-L` option for compiling requires as modules ([#1510](https://github.com/opal/opal/pull/1510))
228
373
 
229
374
 
230
375
 
@@ -237,9 +382,9 @@ Whitespace conventions:
237
382
  - Pathname#relative_path_from
238
383
  - Source maps now include method names
239
384
  - `Module#included_modules` works
240
- - Internal runtime cleanup (#1241)
241
- - Make it easier to add custom runners for the CLI (#1261)
242
- - Add Rack v2 compatibility (#1260)
385
+ - Internal runtime cleanup ([#1241](https://github.com/opal/opal/pull/1241))
386
+ - Make it easier to add custom runners for the CLI ([#1261](https://github.com/opal/opal/pull/1261))
387
+ - Add Rack v2 compatibility ([#1260](https://github.com/opal/opal/pull/1260))
243
388
  - Newly compliant with the Ruby Spec Suite:
244
389
  * `Array#slice!`
245
390
  * `Array#repeated_combination`
@@ -247,25 +392,25 @@ Whitespace conventions:
247
392
  * `Array#sort_by!`
248
393
  * `Enumerable#sort`
249
394
  * `Enumerable#max`
250
- * `Enumerable#each_entry` (#1303)
395
+ * `Enumerable#each_entry` ([#1303](https://github.com/opal/opal/pull/1303))
251
396
  * `Module#const_set`
252
397
  * `Module#module_eval` with a string
253
- - Add `-L` / `--library` option to compile only the code of the library (#1281)
254
- - Implement `Kernel.open` method (#1218)
398
+ - Add `-L` / `--library` option to compile only the code of the library ([#1281](https://github.com/opal/opal/pull/1281))
399
+ - Implement `Kernel.open` method ([#1218](https://github.com/opal/opal/pull/1218))
255
400
  - Generate meaningful names for functions representing Ruby methods
256
- - Implement `Pathname#join` and `Pathname#+` methods (#1301)
401
+ - Implement `Pathname#join` and `Pathname#+` methods ([#1301](https://github.com/opal/opal/pull/1301))
257
402
  - Added support for `begin;rescue;else;end`.
258
- - Implement `File.extname` method (#1219)
403
+ - Implement `File.extname` method ([#1219](https://github.com/opal/opal/pull/1219))
259
404
  - Added support for keyword arguments as lambda parameters.
260
405
  - Super works with define_method blocks
261
406
  - Added support for kwsplats.
262
407
  - Added support for squiggly heredoc.
263
408
  - Implement `Method#parameters` and `Proc#parameters`.
264
409
  - Implement `File.new("path").mtime`, `File.mtime("path")`, `File.stat("path").mtime`.
265
- - if-conditions now support `null` and `undefined` as falsy values (#867)
266
- - Implement IO.read method for Node.js (#1332)
267
- - Implement IO.each_line method for Node.js (#1221)
268
- - Generate `opal-builder.js` to ease the compilation of Ruby library from JavaScript (#1290)
410
+ - if-conditions now support `null` and `undefined` as falsy values ([#867](https://github.com/opal/opal/pull/867))
411
+ - Implement IO.read method for Node.js ([#1332](https://github.com/opal/opal/pull/1332))
412
+ - Implement IO.each_line method for Node.js ([#1221](https://github.com/opal/opal/pull/1221))
413
+ - Generate `opal-builder.js` to ease the compilation of Ruby library from JavaScript ([#1290](https://github.com/opal/opal/pull/1290))
269
414
 
270
415
 
271
416
  ### Changed
@@ -292,28 +437,28 @@ Whitespace conventions:
292
437
 
293
438
  ### Fixed
294
439
 
295
- - `Module#ancestors` and shared code like `====` and `is_a?` deal with singleton class modules better (#1449)
440
+ - `Module#ancestors` and shared code like `====` and `is_a?` deal with singleton class modules better ([#1449](https://github.com/opal/opal/pull/1449))
296
441
  - `Class#to_s` now shows correct names for singleton classes
297
442
  - `Pathname#absolute?` and `Pathname#relative?` now work properly
298
443
  - `File::dirname` and `File::basename` are now Rubyspec compliant
299
- - `SourceMap::VLQ` patch (#1075)
444
+ - `SourceMap::VLQ` patch ([#1075](https://github.com/opal/opal/pull/1075))
300
445
  - `Regexp::new` no longer throws error when the expression ends in \\\\
301
- - `super` works properly with overwritten alias methods (#1384)
446
+ - `super` works properly with overwritten alias methods ([#1384](https://github.com/opal/opal/pull/1384))
302
447
  - `NoMethodError` does not need a name to be instantiated
303
448
  - `method_added` fix for singleton class cases
304
- - Super now works properly with blocks (#1237)
305
- - Fix using more than two `rescue` in sequence (#1269)
449
+ - Super now works properly with blocks ([#1237](https://github.com/opal/opal/pull/1237))
450
+ - Fix using more than two `rescue` in sequence ([#1269](https://github.com/opal/opal/pull/1269))
306
451
  - Fixed inheritance for `Array` subclasses.
307
- - Always populate all stub_subscribers with all method stubs, as a side effect of this now `method_missing` on bridged classes now works reliably (#1273)
308
- - Fix `Hash#instance_variables` to not return `#default` and `#default_proc` (#1258)
309
- - Fix `Module#name` when constant was created using `Opal.cdecl` (constant declare) like `ChildClass = Class.new(BaseClass)` (#1259)
310
- - Fix issue with JavaScript `nil` return paths being treated as true (#1274)
452
+ - Always populate all stub_subscribers with all method stubs, as a side effect of this now `method_missing` on bridged classes now works reliably ([#1273](https://github.com/opal/opal/pull/1273))
453
+ - Fix `Hash#instance_variables` to not return `#default` and `#default_proc` ([#1258](https://github.com/opal/opal/pull/1258))
454
+ - Fix `Module#name` when constant was created using `Opal.cdecl` (constant declare) like `ChildClass = Class.new(BaseClass)` ([#1259](https://github.com/opal/opal/pull/1259))
455
+ - Fix issue with JavaScript `nil` return paths being treated as true ([#1274](https://github.com/opal/opal/pull/1274))
311
456
  - Fix `Array#to_n`, `Hash#to_n`, `Struct#to_n` when the object contains native objects (#1249, #1256)
312
- - `break` semantics are now correct, except for the case in which a lambda containing a `break` is passed to a `yield` (#1250)
457
+ - `break` semantics are now correct, except for the case in which a lambda containing a `break` is passed to a `yield` ([#1250](https://github.com/opal/opal/pull/1250))
313
458
  - Avoid double "/" when `Opal::Sprockets.javascript_include_tag` receives a prefix with a trailing slash.
314
459
  - Fixed context of evaluation for `Kernel#eval` and `BasicObject#instance_eval`
315
- - Fix `Module#===` to use all ancestors of the passed object (#1284)
316
- - Fix `Struct.new` to be almost compatible with Rubyspec (#1251)
460
+ - Fix `Module#===` to use all ancestors of the passed object ([#1284](https://github.com/opal/opal/pull/1284))
461
+ - Fix `Struct.new` to be almost compatible with Rubyspec ([#1251](https://github.com/opal/opal/pull/1251))
317
462
  - Fix `Enumerator#with_index` to return the result of the previously called method.
318
463
  - Improved `Date.parse` to cover most date formatting cases.
319
464
  - Fixed `Module#const_get` for dynamically created constants.
@@ -342,7 +487,7 @@ Whitespace conventions:
342
487
 
343
488
 
344
489
 
345
- ## [0.9.4](https://github.com/opal/opal/compare/v0.9.3...v0.9.4) - 2016-06-21
490
+ ## [0.9.4](https://github.com/opal/opal/compare/v0.9.3...v0.9.4) - 2016-06-20
346
491
 
347
492
 
348
493
  ### Fixed
@@ -354,7 +499,7 @@ Whitespace conventions:
354
499
 
355
500
 
356
501
 
357
- ## [0.9.3](https://github.com/opal/opal/compare/v0.9.2...v0.9.3) - 2016-06-06
502
+ ## [0.9.3](https://github.com/opal/opal/compare/v0.9.2...v0.9.3) - 2016-06-16
358
503
 
359
504
 
360
505
  ### Fixed
@@ -364,7 +509,7 @@ Whitespace conventions:
364
509
 
365
510
 
366
511
 
367
- ## [0.9.2](https://github.com/opal/opal/compare/v0.9.1...v0.9.2) - 2016-01-10
512
+ ## [0.9.2](https://github.com/opal/opal/compare/v0.9.1...v0.9.2) - 2016-01-09
368
513
 
369
514
 
370
515
  ### Fixed
@@ -379,9 +524,9 @@ Whitespace conventions:
379
524
 
380
525
  ### Fixed
381
526
 
382
- - Backport rack2 compatibility (#1260)
383
- - Fixed issue with JS nil return paths being treated as true (#1274)
384
- - Fix using more than two `rescue` in sequence (#1269)
527
+ - Backport rack2 compatibility ([#1260](https://github.com/opal/opal/pull/1260))
528
+ - Fixed issue with JS nil return paths being treated as true ([#1274](https://github.com/opal/opal/pull/1274))
529
+ - Fix using more than two `rescue` in sequence ([#1269](https://github.com/opal/opal/pull/1269))
385
530
 
386
531
 
387
532
 
@@ -411,7 +556,7 @@ Whitespace conventions:
411
556
  * `Enumerable#chunk`
412
557
  * `Enumerable#each_cons`
413
558
  * `Enumerable#minmax`
414
- * `Range#to_a` (#1246)
559
+ * `Range#to_a` ([#1246](https://github.com/opal/opal/pull/1246))
415
560
  * `Module` comparison methods: `#<` `#<=` `#<=>` `#>` `#>=`
416
561
  - `OpenStruct#method_missing`
417
562
  - `OpenStruct#inspect`
@@ -452,7 +597,7 @@ Whitespace conventions:
452
597
  - Fix `Kernel#exit` to allow exit inside `#at_exit`
453
598
  - Fixed a number of syntax errors (e.g. #1224 #1225 #1227 #1231 #1233 #1226)
454
599
  - Fixed `Native()` when used with `Array` instances containing native objects (which weren't wrapped properly) – #1212
455
- - Fix `Array#to_n`, `Hash#to_n`, `Struct#to_n` when the object contains native objects (#1249)
600
+ - Fix `Array#to_n`, `Hash#to_n`, `Struct#to_n` when the object contains native objects ([#1249](https://github.com/opal/opal/pull/1249))
456
601
  - Internal cleanup and lots of bugs!
457
602
 
458
603
 
@@ -555,14 +700,17 @@ Whitespace conventions:
555
700
 
556
701
 
557
702
 
558
-
559
703
  ## [0.7.2](https://github.com/opal/opal/compare/v0.7.1...v0.7.2) - 2015-04-23
560
704
 
705
+
561
706
  - Remove Sprockets 3.0 support (focus moved to upcoming 0.8)
562
707
  - Fix version number consistency.
563
708
 
564
709
 
565
- ## [0.7.1](https://github.com/opal/opal/compare/v0.7.0...v0.7.1) - 2015-02-14
710
+
711
+
712
+ ## [0.7.1](https://github.com/opal/opal/compare/v0.7.0...v0.7.1) - 2015-02-13
713
+
566
714
 
567
715
  - CLI options `-d` and `-v` now set respectively `$DEBUG` and `$VERBOSE`
568
716
  - Fixed a bug that would make the `-v` CLI option wait for STDIN input
@@ -570,7 +718,10 @@ Whitespace conventions:
570
718
  - Now the CLI implicitly calls `Kernel#exit` at the end of the script, thus making `at_exit` blocks be respected.
571
719
 
572
720
 
573
- ## [0.7.0](https://github.com/opal/opal/compare/v0.6.2...v0.7.0) - 2015-02-01
721
+
722
+
723
+ ## [0.7.0](https://github.com/opal/opal/compare/v0.6.3...v0.7.0) - 2015-02-01
724
+
574
725
 
575
726
  - Stop keyword-arg variable names leaking to global javascript scope
576
727
 
@@ -654,7 +805,18 @@ Whitespace conventions:
654
805
  - Fix `Enumerator#with_index`, `Numeric#round`.
655
806
 
656
807
 
657
- ## [0.6.2](https://github.com/opal/opal/compare/v0.6.1...v0.6.2) - 2014-04-25
808
+
809
+
810
+ ## [0.6.3](https://github.com/opal/opal/compare/v0.6.2...v0.6.3) - 2014-11-23
811
+
812
+
813
+ - Fix `Regexp.escape` internal regexp
814
+
815
+
816
+
817
+
818
+ ## [0.6.2](https://github.com/opal/opal/compare/v0.6.1...v0.6.2) - 2014-04-24
819
+
658
820
 
659
821
  - Added Range#size
660
822
 
@@ -665,7 +827,10 @@ Whitespace conventions:
665
827
  - (Internal) improved the mspec runner
666
828
 
667
829
 
668
- ## [0.6.1](https://github.com/opal/opal/compare/v0.6.0...v0.6.1) - 2014-04-15
830
+
831
+
832
+ ## [0.6.1](https://github.com/opal/opal/compare/v0.6.0...v0.6.1) - 2014-04-14
833
+
669
834
 
670
835
  - Updated RubySpec to master and added `rubysl-*` specs. Thanks to Mike Owens (@mieko)
671
836
 
@@ -690,8 +855,11 @@ Whitespace conventions:
690
855
  parse as a key name.
691
856
 
692
857
 
858
+
859
+
693
860
  ## [0.6.0](https://github.com/opal/opal/compare/v0.5.5...v0.6.0) - 2014-03-05
694
861
 
862
+
695
863
  - Fix parsing of escapes in single-strings ('foo\n'). Only ' and \
696
864
  characters now get escaped in single quoted strings. Also, more escape
697
865
  sequences in double-quoted strings are now supported: `\a`, `\v`, `\f`,
@@ -812,26 +980,32 @@ Whitespace conventions:
812
980
  - Add `Regexp.quote` as an alias of `escape`.
813
981
 
814
982
 
983
+
984
+
815
985
  ## [0.5.5](https://github.com/opal/opal/compare/v0.5.4...v0.5.5) - 2013-11-25
816
986
 
987
+
817
988
  - Fix regression: add `%i[foo bar]` style words back to lexer
818
989
 
819
- - Move corelib from `opal/core` to `opal/corelib`. This stops files in
820
- `core/` clashing with user files.
990
+ - Move corelib from `opal/core` to `opal/corelib`. This stops files in `core/` clashing with user files.
991
+
992
+
821
993
 
822
994
 
823
995
  ## [0.5.4](https://github.com/opal/opal/compare/v0.5.3...v0.5.4) - 2013-11-20
824
996
 
825
- - Reverted `RUBY_VERSION` to `1.9.3`. Opal `0.6.0` will be the first release
826
- for `2.0.0`.
827
997
 
998
+ - Reverted `RUBY_VERSION` to `1.9.3`. Opal `0.6.0` will be the first release for `2.0.0`.
999
+
1000
+
1001
+
1002
+
1003
+ ## [0.5.3](https://github.com/opal/opal/compare/v0.5.2...v0.5.3) - 2013-11-20
828
1004
 
829
- ## [0.5.3](https://github.com/opal/opal/compare/v0.5.2...v0.5.3) - 2013-11-12
830
1005
 
831
1006
  - Opal now targets ruby 2.0.0
832
1007
 
833
- - Named function inside class body now generates with `$` prefix, e.g.
834
- `$MyClass`. This makes it easier to wrap/bridge native functions.
1008
+ - Named function inside class body now generates with `$` prefix, e.g. `$MyClass`. This makes it easier to wrap/bridge native functions.
835
1009
 
836
1010
  - Support Array subclasses
837
1011
 
@@ -850,15 +1024,20 @@ Whitespace conventions:
850
1024
  - Cleanup parser/lexer to use `t` and `k` prefixes for all tokens
851
1025
 
852
1026
 
1027
+
1028
+
853
1029
  ## [0.5.2](https://github.com/opal/opal/compare/v0.5.1...v0.5.2) - 2013-11-11
854
1030
 
1031
+
855
1032
  - Include native into corelib for 0.5.x
856
1033
 
857
1034
 
1035
+
1036
+
858
1037
  ## [0.5.1](https://github.com/opal/opal/compare/v0.5.0...v0.5.1) - 2013-11-10
859
1038
 
860
- - Move all corelib under `core/` directory to prevent filename clashes with
861
- `require`
1039
+
1040
+ - Move all corelib under `core/` directory to prevent filename clashes with `require`
862
1041
 
863
1042
  - Move `native.rb` into stdlib - must now be explicitly required
864
1043
 
@@ -867,13 +1046,54 @@ Whitespace conventions:
867
1046
  - Cleanup and fix various `Enumerable` methods
868
1047
 
869
1048
 
870
- ## [0.5.0](https://github.com/opal/opal/compare/v0.4.2...v0.5.0) - 2013-11-03
871
1049
 
872
- - WIP: https://gist.github.com/elia/7747460
1050
+
1051
+ ## [0.5.0](https://github.com/opal/opal/compare/v0.4.4...v0.5.0) - 2013-11-03
1052
+
1053
+
1054
+ - Optimized_operators is no longer a compiler option
1055
+ - Replace `Opal.bridge_class()` with <code>class Foo < \`bar\`</code> syntax
1056
+ - Expose `Opal.bridge_class()` for bridging native prototypes
1057
+ - Source maps improvements
1058
+ - Massive Rubyspec cleanup + passing specs
1059
+ - Massive Corelib/Stdlib cleanup + fixes
1060
+ - Massive internal cleanup + fixes
1061
+
1062
+ *See the [full diff](https://github.com/opal/opal/compare/v0.4.4...v0.5.0) for more details (almost 800 commits)*
1063
+
1064
+
1065
+
1066
+
1067
+ ## [0.4.4](https://github.com/opal/opal/compare/v0.4.3...v0.4.4) - 2013-08-13
1068
+
1069
+
1070
+ - Remove native object method calls
1071
+ - Add Struct class
1072
+ - Add method stubs as method_missing option, stubs enabled by default
1073
+ - Native is now used to wrap native objects directly
1074
+ - Fix Hash.new and Hash.allocate for subclasses
1075
+ - Generate sourcemaps from fragments
1076
+ - Allow blocks to be passed to zsuper (no args) calls
1077
+ - Fix yield when given 1 or multiple arguments for block destructuring
1078
+
1079
+
1080
+
1081
+
1082
+ ## [0.4.3](https://github.com/opal/opal/compare/v0.4.2...v0.4.3) - 2013-07-24
1083
+
1084
+
1085
+ - Re-implement class system. Classes are now real objects instead of converted Procs. This allows classes to properly inherit methods from each other.
1086
+ - Fix exception hierarchy. Not all standard exception classes were subclassing the correct parent classes, this is now fixed.
1087
+ - Move ERB into stdlib. The erb compiler/parser has also been moved into lib/
1088
+ - Opal::Builder class. A simple port/clone of sprockets general building. This allows us to build projects similar to the way opal-sprockets does.
1089
+ - Move json.rb to stdlib.
1090
+
1091
+
873
1092
 
874
1093
 
875
1094
  ## [0.4.2](https://github.com/opal/opal/compare/v0.4.1...v0.4.2) - 2013-07-03
876
1095
 
1096
+
877
1097
  - Added `Kernel#rand`. (fntzr)
878
1098
 
879
1099
  - Restored the `bin/opal` executable in gemspec.
@@ -886,14 +1106,20 @@ Whitespace conventions:
886
1106
  format: `(((tmp = lhs) !== false || !==nil) ? tmp : rhs)`.
887
1107
 
888
1108
 
1109
+
1110
+
889
1111
  ## [0.4.1](https://github.com/opal/opal/compare/v0.4.0...v0.4.1) - 2013-06-16
890
1112
 
1113
+
891
1114
  - Move sprockets logic out to external opal-sprockets gem. That now
892
1115
  handles the compiling and loading of opal files in sprockets.
893
1116
 
894
1117
 
1118
+
1119
+
895
1120
  ## [0.4.0](https://github.com/opal/opal/compare/v0.3.44...v0.4.0) - 2013-06-15
896
1121
 
1122
+
897
1123
  - Added fragments to parser. All parser methods now generate one or
898
1124
  more Fragments which store the original sexp. This allows us to
899
1125
  enumerate over them after parsing to map generated lines back to
@@ -945,7 +1171,10 @@ Whitespace conventions:
945
1171
  - Merge Hash.from_native into Hash.new
946
1172
 
947
1173
 
948
- ## [0.3.44] - 2013-05-31
1174
+
1175
+
1176
+ ## [0.3.44](https://github.com/opal/opal/compare/v0.3.43...v0.3.44) - 2013-05-31
1177
+
949
1178
 
950
1179
  - Cleanup runtime, and remove various flags and functions from opal
951
1180
  objects and classes (moving them to runtime methods).
@@ -965,7 +1194,10 @@ Whitespace conventions:
965
1194
  opal load paths automatically.
966
1195
 
967
1196
 
968
- ## [0.3.43] - 2013-05-02
1197
+
1198
+
1199
+ ## [0.3.43](https://github.com/opal/opal/compare/v0.3.42...v0.3.43) - 2013-05-02
1200
+
969
1201
 
970
1202
  - Stop inlining respond_to? inside the parser. This now fully respects
971
1203
  an object overriding respond_to?.
@@ -995,7 +1227,10 @@ Whitespace conventions:
995
1227
  Kernel#format.
996
1228
 
997
1229
 
998
- ## [0.3.42] - 2013-03-21
1230
+
1231
+
1232
+ ## [0.3.42](https://github.com/opal/opal/compare/v0.3.41...v0.3.42) - 2013-03-21
1233
+
999
1234
 
1000
1235
  - Fix/add lots of language specs.
1001
1236
 
@@ -1007,7 +1242,10 @@ Whitespace conventions:
1007
1242
  used, where possible to be as compliant as possible.
1008
1243
 
1009
1244
 
1010
- ## [0.3.41] - 2013-02-26
1245
+
1246
+
1247
+ ## [0.3.41](https://github.com/opal/opal/compare/v0.3.40...v0.3.41) - 2013-02-26
1248
+
1011
1249
 
1012
1250
  - Remove bin/opal - no longer required for building sources.
1013
1251
 
@@ -1016,7 +1254,10 @@ Whitespace conventions:
1016
1254
  load paths for generic sprockets based apps to use.
1017
1255
 
1018
1256
 
1019
- ## [0.3.40] - 2013-02-23
1257
+
1258
+
1259
+ ## [0.3.40](https://github.com/opal/opal/compare/v0.3.39...v0.3.40) - 2013-02-23
1260
+
1020
1261
 
1021
1262
  - Add Opal::Server as an easy to configure rack server for testing and
1022
1263
  running Opal based apps.
@@ -1031,7 +1272,10 @@ Whitespace conventions:
1031
1272
  constant will now also raise a NameError.
1032
1273
 
1033
1274
 
1034
- ## [0.3.39] - 2013-02-20
1275
+
1276
+
1277
+ ## [0.3.39](https://github.com/opal/opal/compare/v0.3.38...v0.3.39) - 2013-02-20
1278
+
1035
1279
 
1036
1280
  - Fix bug where methods defined on a parent class after subclass was defined
1037
1281
  would not given subclass access to method. Subclasses are now also tracked
@@ -1044,7 +1288,10 @@ Whitespace conventions:
1044
1288
  - Fix for defining methods inside metaclass, or singleton_class scopes.
1045
1289
 
1046
1290
 
1047
- ## [0.3.38] - 2013-02-13
1291
+
1292
+
1293
+ ## [0.3.38](https://github.com/opal/opal/compare/v0.3.37...v0.3.38) - 2013-02-19
1294
+
1048
1295
 
1049
1296
  - Add Native module used for wrapping objects to forward calls as native calls.
1050
1297
 
@@ -1057,75 +1304,49 @@ Whitespace conventions:
1057
1304
 
1058
1305
 
1059
1306
 
1060
- [0.11.1]: https://github.com/opal/opal/compare/v0.11.0...HEAD
1061
- [0.11.0]: https://github.com/opal/opal/compare/v0.10.5...0.11.0
1062
- [0.10.5]: https://github.com/opal/opal/compare/v0.10.4...v0.10.5
1063
- [0.10.4]: https://github.com/opal/opal/compare/v0.10.3...v0.10.4
1064
- [0.10.3]: https://github.com/opal/opal/compare/v0.10.2...v0.10.3
1065
- [0.10.2]: https://github.com/opal/opal/compare/v0.10.1...v0.10.2
1066
- [0.10.1]: https://github.com/opal/opal/compare/v0.10.0...v0.10.1
1067
- [0.10.0]: https://github.com/opal/opal/compare/v0.9.4...v0.10.0
1068
- [0.9.4]: https://github.com/opal/opal/compare/v0.9.3...v0.9.4
1069
- [0.9.3]: https://github.com/opal/opal/compare/v0.9.2...v0.9.3
1070
- [0.9.2]: https://github.com/opal/opal/compare/v0.9.1...v0.9.2
1071
- [0.9.1]: https://github.com/opal/opal/compare/v0.9.0...v0.9.1
1072
- [0.9.0]: https://github.com/opal/opal/compare/v0.8.1...v0.9.0
1073
- [0.8.1]: https://github.com/opal/opal/compare/v0.8.0...v0.8.1
1074
- [0.8.0]: https://github.com/opal/opal/compare/v0.7.2...v0.8.0
1075
- [0.7.2]: https://github.com/opal/opal/compare/v0.7.1...v0.7.2
1076
- [0.7.1]: https://github.com/opal/opal/compare/v0.7.0...v0.7.1
1077
- [0.7.0]: https://github.com/opal/opal/compare/v0.6.3...v0.7.0
1078
- [0.6.3]: https://github.com/opal/opal/compare/v0.6.2...v0.6.3
1079
- [0.6.2]: https://github.com/opal/opal/compare/v0.6.1...v0.6.2
1080
- [0.6.1]: https://github.com/opal/opal/compare/v0.6.0...v0.6.1
1081
- [0.6.0]: https://github.com/opal/opal/compare/v0.5.5...v0.6.0
1082
- [0.5.5]: https://github.com/opal/opal/compare/v0.5.4...v0.5.5
1083
- [0.5.4]: https://github.com/opal/opal/compare/v0.5.3...v0.5.4
1084
- [0.5.3]: https://github.com/opal/opal/compare/v0.5.2...v0.5.3
1085
- [0.5.2]: https://github.com/opal/opal/compare/v0.5.1...v0.5.2
1086
- [0.5.1]: https://github.com/opal/opal/compare/v0.5.0...v0.5.1
1087
- [0.5.0]: https://github.com/opal/opal/compare/v0.4.4...v0.5.0
1088
- [0.4.4]: https://github.com/opal/opal/compare/v0.4.3...v0.4.4
1089
- [0.4.3]: https://github.com/opal/opal/compare/v0.4.2...v0.4.3
1090
- [0.4.2]: https://github.com/opal/opal/compare/v0.4.1...v0.4.2
1091
- [0.4.1]: https://github.com/opal/opal/compare/v0.4.0...v0.4.1
1092
- [0.4.0]: https://github.com/opal/opal/compare/v0.3.8...v0.4.0
1093
- [0.3.8]: https://github.com/opal/opal/compare/v0.3.7...v0.3.8
1094
- [0.3.7]: https://github.com/opal/opal/compare/v0.3.6...v0.3.7
1095
- [0.3.6]: https://github.com/opal/opal/compare/v0.3.5...v0.3.6
1096
- [0.3.5]: https://github.com/opal/opal/compare/v0.3.44...v0.3.5
1097
- [0.3.44]: https://github.com/opal/opal/compare/v0.3.43...v0.3.44
1098
- [0.3.43]: https://github.com/opal/opal/compare/v0.3.42...v0.3.43
1099
- [0.3.42]: https://github.com/opal/opal/compare/v0.3.41...v0.3.42
1100
- [0.3.41]: https://github.com/opal/opal/compare/v0.3.40...v0.3.41
1101
- [0.3.40]: https://github.com/opal/opal/compare/v0.3.4...v0.3.40
1102
- [0.3.4]: https://github.com/opal/opal/compare/v0.3.39...v0.3.4
1103
- [0.3.39]: https://github.com/opal/opal/compare/v0.3.38...v0.3.39
1104
- [0.3.38]: https://github.com/opal/opal/compare/v0.3.37...v0.3.38
1105
- [0.3.37]: https://github.com/opal/opal/compare/v0.3.36...v0.3.37
1106
- [0.3.36]: https://github.com/opal/opal/compare/v0.3.35...v0.3.36
1107
- [0.3.35]: https://github.com/opal/opal/compare/v0.3.34...v0.3.35
1108
- [0.3.34]: https://github.com/opal/opal/compare/v0.3.33...v0.3.34
1109
- [0.3.33]: https://github.com/opal/opal/compare/v0.3.32...v0.3.33
1110
- [0.3.32]: https://github.com/opal/opal/compare/v0.3.31...v0.3.32
1111
- [0.3.31]: https://github.com/opal/opal/compare/v0.3.30...v0.3.31
1112
- [0.3.30]: https://github.com/opal/opal/compare/v0.3.3...v0.3.30
1113
- [0.3.3]: https://github.com/opal/opal/compare/v0.3.29...v0.3.3
1114
- [0.3.29]: https://github.com/opal/opal/compare/v0.3.21...v0.3.29
1115
- [0.3.21]: https://github.com/opal/opal/compare/v0.3.20...v0.3.21
1116
- [0.3.20]: https://github.com/opal/opal/compare/v0.3.2...v0.3.20
1117
- [0.3.2]: https://github.com/opal/opal/compare/v0.3.19...v0.3.2
1118
- [0.3.19]: https://github.com/opal/opal/compare/v0.3.18...v0.3.19
1119
- [0.3.18]: https://github.com/opal/opal/compare/v0.3.17...v0.3.18
1120
- [0.3.17]: https://github.com/opal/opal/compare/v0.3.11...v0.3.17
1121
- [0.3.11]: https://github.com/opal/opal/compare/v0.3.10...v0.3.11
1122
- [0.3.10]: https://github.com/opal/opal/compare/v0.3.1...v0.3.10
1123
- [0.3.1]: https://github.com/opal/opal/compare/v0.3.0...v0.3.1
1124
- [0.3.0]: https://github.com/opal/opal/compare/v0.2.1...v0.3.0
1125
- [0.2.1]: https://github.com/opal/opal/compare/v0.2.0...v0.2.1
1126
- [0.2.0]: https://github.com/opal/opal/compare/v0.1.0...v0.2.0
1127
- [0.1.0]: https://github.com/opal/opal/compare/v0.0.6...v0.1.0
1128
- [0.0.6]: https://github.com/opal/opal/compare/v0.0.5...v0.0.6
1129
- [0.0.5]: https://github.com/opal/opal/compare/v0.0.4...v0.0.5
1130
- [0.0.4]: https://github.com/opal/opal/compare/v0.0.3...v0.0.4
1131
- [0.0.3]: https://github.com/opal/opal/compare/v0.0.2...v0.0.3
1307
+ ## [0.3.37](https://github.com/opal/opal/compare/v0.3.36...v0.3.37) - 2013-02-15
1308
+
1309
+
1310
+ - Extract the JavaScript runtime to `opal/runtime.js`
1311
+ - Add core `template.rb` for the basis of template libraries for Opal
1312
+
1313
+
1314
+
1315
+
1316
+ ## [0.3.36](https://github.com/opal/opal/compare/v0.3.35...v0.3.36) - 2013-02-08
1317
+
1318
+
1319
+ - Use Ruby `require` directive inside Sprockets
1320
+ - Depreceate `Opal.process` in favour of `Opal::Environment`
1321
+
1322
+
1323
+
1324
+
1325
+ ## [0.3.35](https://github.com/opal/opal/compare/v0.3.34...v0.3.35) - 2013-02-05
1326
+
1327
+
1328
+ - Internal cleanup
1329
+
1330
+
1331
+
1332
+
1333
+ ## [0.3.34](https://github.com/opal/opal/compare/v0.3.33...v0.3.34) - 2013-02-05
1334
+
1335
+
1336
+ - Fix bug where camelcased lvars could parse as constants
1337
+ - Add `Array#shuffle`
1338
+ - Migrate to Sprockets-based building
1339
+ - Move ERB to separate gem
1340
+
1341
+
1342
+
1343
+
1344
+ ## [0.3.33](https://github.com/opal/opal/compare/000000...v0.3.33) - 2013-01-18
1345
+
1346
+
1347
+ - Implement attr_reader/writer/accessor for dynamic uses
1348
+ - Hash internals update
1349
+
1350
+
1351
+
1352
+