opal 0.10.0 → 0.11.0.rc1

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 (460) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +19 -0
  3. data/.gitmodules +1 -1
  4. data/.jshintrc +1 -2
  5. data/.rspec +1 -2
  6. data/.travis.yml +28 -18
  7. data/.yardopts +3 -1
  8. data/CHANGELOG.md +139 -1
  9. data/Gemfile +16 -9
  10. data/HACKING.md +2 -0
  11. data/README.md +7 -6
  12. data/Rakefile +1 -1
  13. data/appveyor.yml +30 -0
  14. data/benchmark/bm_constant_lookup_big.rb +799 -0
  15. data/benchmark/bm_constant_lookup_small.rb +59 -0
  16. data/benchmark/bm_module_definition_big.rb +400 -0
  17. data/benchmark/bm_module_definition_small.rb +30 -0
  18. data/benchmark-ips/bm_case.rb +33 -0
  19. data/benchmark-ips/bm_constants_lookup.rb +13 -0
  20. data/benchmark-ips/bm_is_number.rb +29 -0
  21. data/benchmark-ips/bm_symbol_to_proc.rb +19 -0
  22. data/bin/opal +4 -2
  23. data/bin/opal-repl +23 -1
  24. data/docs/compiled_ruby.md +16 -14
  25. data/docs/faq.md +3 -3
  26. data/docs/rspec.md +2 -1
  27. data/docs/unsupported_features.md +6 -4
  28. data/examples/rack/Gemfile +1 -0
  29. data/examples/rack/Gemfile.lock +11 -7
  30. data/examples/rack/app/application.rb +14 -3
  31. data/examples/rack/app/user.rb +2 -0
  32. data/examples/rack/config.ru +1 -1
  33. data/examples/rack/index.html.erb +1 -0
  34. data/examples/sinatra/Gemfile +1 -1
  35. data/examples/sinatra/Gemfile.lock +8 -11
  36. data/examples/sinatra/app/application.rb +2 -0
  37. data/lib/opal/ast/builder.rb +17 -0
  38. data/lib/opal/ast/node.rb +30 -0
  39. data/lib/opal/builder.rb +14 -3
  40. data/lib/opal/builder_processors.rb +1 -0
  41. data/lib/opal/cli.rb +45 -59
  42. data/lib/opal/cli_options.rb +18 -11
  43. data/lib/opal/cli_runners/applescript.rb +3 -3
  44. data/lib/opal/cli_runners/nashorn.rb +1 -0
  45. data/lib/opal/cli_runners/nodejs.rb +4 -1
  46. data/lib/opal/cli_runners/phantom.js +1 -2
  47. data/lib/opal/cli_runners/phantomjs.rb +3 -2
  48. data/lib/opal/cli_runners/server.rb +1 -0
  49. data/lib/opal/cli_runners.rb +1 -0
  50. data/lib/opal/compiler.rb +145 -94
  51. data/lib/opal/config.rb +114 -36
  52. data/lib/opal/deprecations.rb +18 -0
  53. data/lib/opal/erb.rb +1 -0
  54. data/lib/opal/errors.rb +1 -0
  55. data/lib/opal/fragment.rb +1 -0
  56. data/lib/opal/hike_path_finder.rb +1 -0
  57. data/lib/opal/nodes/arglist.rb +2 -1
  58. data/lib/opal/nodes/args/initialize_kwargs.rb +1 -0
  59. data/lib/opal/nodes/args/kwarg.rb +7 -7
  60. data/lib/opal/nodes/args/kwoptarg.rb +6 -7
  61. data/lib/opal/nodes/args/kwrestarg.rb +5 -5
  62. data/lib/opal/nodes/args/mlhsarg.rb +3 -2
  63. data/lib/opal/nodes/args/normarg.rb +6 -7
  64. data/lib/opal/nodes/args/optarg.rb +5 -7
  65. data/lib/opal/nodes/args/post_args.rb +6 -5
  66. data/lib/opal/nodes/args/post_kwargs.rb +1 -0
  67. data/lib/opal/nodes/args/restarg.rb +7 -7
  68. data/lib/opal/nodes/array.rb +1 -0
  69. data/lib/opal/nodes/base.rb +24 -3
  70. data/lib/opal/nodes/call.rb +167 -155
  71. data/lib/opal/nodes/call_special.rb +31 -217
  72. data/lib/opal/nodes/case.rb +36 -22
  73. data/lib/opal/nodes/class.rb +4 -3
  74. data/lib/opal/nodes/constants.rb +28 -48
  75. data/lib/opal/nodes/csend.rb +25 -0
  76. data/lib/opal/nodes/def.rb +57 -17
  77. data/lib/opal/nodes/defined.rb +170 -60
  78. data/lib/opal/nodes/definitions.rb +40 -133
  79. data/lib/opal/nodes/defs.rb +29 -0
  80. data/lib/opal/nodes/for.rb +52 -25
  81. data/lib/opal/nodes/hash.rb +12 -35
  82. data/lib/opal/nodes/helpers.rb +27 -54
  83. data/lib/opal/nodes/if.rb +21 -32
  84. data/lib/opal/nodes/inline_args.rb +12 -13
  85. data/lib/opal/nodes/iter.rb +61 -36
  86. data/lib/opal/nodes/literal.rb +194 -114
  87. data/lib/opal/nodes/logic.rb +20 -25
  88. data/lib/opal/nodes/masgn.rb +20 -18
  89. data/lib/opal/nodes/module.rb +10 -11
  90. data/lib/opal/nodes/node_with_args.rb +14 -17
  91. data/lib/opal/nodes/rescue.rb +37 -70
  92. data/lib/opal/nodes/runtime_helpers.rb +8 -3
  93. data/lib/opal/nodes/scope.rb +9 -5
  94. data/lib/opal/nodes/singleton_class.rb +4 -3
  95. data/lib/opal/nodes/super.rb +115 -87
  96. data/lib/opal/nodes/top.rb +7 -2
  97. data/lib/opal/nodes/variables.rb +46 -35
  98. data/lib/opal/nodes/while.rb +11 -1
  99. data/lib/opal/nodes/yield.rb +1 -17
  100. data/lib/opal/nodes.rb +3 -0
  101. data/lib/opal/parser.rb +28 -770
  102. data/lib/opal/path_reader.rb +5 -1
  103. data/lib/opal/paths.rb +10 -4
  104. data/lib/opal/regexp_anchors.rb +1 -0
  105. data/lib/opal/rewriter.rb +60 -0
  106. data/lib/opal/rewriters/base.rb +60 -0
  107. data/lib/opal/rewriters/binary_operator_assignment.rb +144 -0
  108. data/lib/opal/rewriters/block_to_iter.rb +17 -0
  109. data/lib/opal/rewriters/break_finder.rb +34 -0
  110. data/lib/opal/rewriters/dot_js_syntax.rb +60 -0
  111. data/lib/opal/rewriters/explicit_writer_return.rb +58 -0
  112. data/lib/opal/rewriters/js_reserved_words.rb +111 -0
  113. data/lib/opal/rewriters/logical_operator_assignment.rb +155 -0
  114. data/lib/opal/rewriters/opal_engine_check.rb +42 -0
  115. data/lib/opal/rewriters/rubyspec/filters_rewriter.rb +67 -0
  116. data/lib/opal/server.rb +4 -0
  117. data/lib/opal/simple_server.rb +100 -0
  118. data/lib/opal/source_map.rb +1 -1
  119. data/lib/opal/util.rb +5 -5
  120. data/lib/opal/version.rb +2 -1
  121. data/lib/opal.rb +6 -1
  122. data/lib/tilt/opal.rb +1 -0
  123. data/opal/README.md +1 -1
  124. data/opal/corelib/array.rb +137 -83
  125. data/opal/corelib/basic_object.rb +6 -6
  126. data/opal/corelib/class.rb +14 -11
  127. data/opal/corelib/complex.rb +5 -1
  128. data/opal/corelib/constants.rb +3 -3
  129. data/opal/corelib/enumerable.rb +129 -11
  130. data/opal/corelib/error.rb +35 -17
  131. data/opal/corelib/file.rb +65 -170
  132. data/opal/corelib/hash.rb +128 -13
  133. data/opal/corelib/helpers.rb +12 -15
  134. data/opal/corelib/io.rb +1 -0
  135. data/opal/corelib/kernel.rb +40 -21
  136. data/opal/corelib/marshal/read_buffer.rb +1 -1
  137. data/opal/corelib/method.rb +33 -13
  138. data/opal/corelib/module.rb +134 -82
  139. data/opal/corelib/number.rb +141 -25
  140. data/opal/corelib/numeric.rb +0 -8
  141. data/opal/corelib/process.rb +44 -4
  142. data/opal/corelib/random/seedrandom.js.rb +15 -0
  143. data/opal/corelib/random.rb +117 -0
  144. data/opal/corelib/range.rb +133 -10
  145. data/opal/corelib/regexp.rb +37 -9
  146. data/opal/corelib/runtime.js +604 -394
  147. data/opal/corelib/string/encoding.rb +51 -7
  148. data/opal/corelib/string.rb +39 -8
  149. data/opal/corelib/struct.rb +20 -0
  150. data/opal/corelib/time.rb +2 -2
  151. data/opal/corelib/variables.rb +1 -1
  152. data/opal/opal.rb +1 -0
  153. data/opal.gemspec +9 -8
  154. data/spec/filters/bugs/array.rb +5 -1
  155. data/spec/filters/bugs/basicobject.rb +2 -5
  156. data/spec/filters/bugs/bigdecimal.rb +8 -22
  157. data/spec/filters/bugs/class.rb +2 -1
  158. data/spec/filters/bugs/comparable.rb +5 -0
  159. data/spec/filters/bugs/date.rb +3 -3
  160. data/spec/filters/bugs/enumerable.rb +4 -11
  161. data/spec/filters/bugs/enumerator.rb +2 -4
  162. data/spec/filters/bugs/exception.rb +16 -2
  163. data/spec/filters/bugs/file.rb +8 -0
  164. data/spec/filters/bugs/float.rb +7 -1
  165. data/spec/filters/bugs/hash.rb +6 -2
  166. data/spec/filters/bugs/integer.rb +2 -0
  167. data/spec/filters/bugs/io.rb +8 -0
  168. data/spec/filters/bugs/kernel.rb +9 -138
  169. data/spec/filters/bugs/language.rb +89 -174
  170. data/spec/filters/bugs/marshal.rb +33 -35
  171. data/spec/filters/bugs/method.rb +0 -24
  172. data/spec/filters/bugs/module.rb +19 -57
  173. data/spec/filters/bugs/numeric.rb +0 -119
  174. data/spec/filters/bugs/pathname.rb +2 -0
  175. data/spec/filters/bugs/proc.rb +5 -4
  176. data/spec/filters/bugs/random.rb +7 -0
  177. data/spec/filters/bugs/range.rb +12 -120
  178. data/spec/filters/bugs/rational.rb +1 -1
  179. data/spec/filters/bugs/regexp.rb +2 -40
  180. data/spec/filters/bugs/set.rb +0 -1
  181. data/spec/filters/bugs/string.rb +5 -8
  182. data/spec/filters/bugs/stringscanner.rb +11 -19
  183. data/spec/filters/bugs/time.rb +7 -1
  184. data/spec/filters/bugs/unboundmethod.rb +1 -11
  185. data/spec/filters/unsupported/array.rb +5 -1
  186. data/spec/filters/unsupported/basicobject.rb +1 -1
  187. data/spec/filters/unsupported/bignum.rb +4 -1
  188. data/spec/filters/unsupported/class.rb +1 -1
  189. data/spec/filters/unsupported/delegator.rb +1 -1
  190. data/spec/filters/unsupported/enumerable.rb +1 -1
  191. data/spec/filters/unsupported/enumerator.rb +1 -1
  192. data/spec/filters/unsupported/file.rb +4 -0
  193. data/spec/filters/unsupported/fixnum.rb +1 -1
  194. data/spec/filters/unsupported/float.rb +4 -1
  195. data/spec/filters/unsupported/freeze.rb +27 -5
  196. data/spec/filters/unsupported/hash.rb +7 -15
  197. data/spec/filters/unsupported/integer.rb +1 -1
  198. data/spec/filters/unsupported/kernel.rb +2 -1
  199. data/spec/filters/unsupported/language.rb +6 -1
  200. data/spec/filters/unsupported/marshal.rb +1 -1
  201. data/spec/filters/unsupported/matchdata.rb +4 -1
  202. data/spec/filters/unsupported/math.rb +1 -1
  203. data/spec/filters/unsupported/pathname.rb +1 -1
  204. data/spec/filters/unsupported/privacy.rb +141 -9
  205. data/spec/filters/unsupported/proc.rb +1 -1
  206. data/spec/filters/unsupported/random.rb +4 -0
  207. data/spec/filters/unsupported/range.rb +7 -0
  208. data/spec/filters/unsupported/regexp.rb +25 -15
  209. data/spec/filters/unsupported/set.rb +1 -1
  210. data/spec/filters/unsupported/singleton.rb +1 -1
  211. data/spec/filters/unsupported/string.rb +110 -101
  212. data/spec/filters/unsupported/struct.rb +1 -1
  213. data/spec/filters/unsupported/symbol.rb +2 -1
  214. data/spec/filters/unsupported/taint.rb +22 -7
  215. data/spec/filters/unsupported/thread.rb +1 -1
  216. data/spec/filters/unsupported/time.rb +1 -1
  217. data/spec/lib/builder_spec.rb +17 -0
  218. data/spec/lib/cli_runners/phantomjs_spec.rb +2 -2
  219. data/spec/lib/cli_spec.rb +37 -8
  220. data/spec/lib/compiler/call_spec.rb +98 -66
  221. data/spec/lib/compiler_spec.rb +41 -32
  222. data/spec/lib/config_spec.rb +97 -0
  223. data/spec/lib/dependency_resolver_spec.rb +2 -2
  224. data/spec/lib/deprecations_spec.rb +16 -0
  225. data/spec/lib/fixtures/source_location_test.rb +7 -0
  226. data/spec/lib/path_reader_spec.rb +3 -3
  227. data/spec/lib/rewriters/binary_operator_assignment_spec.rb +151 -0
  228. data/spec/lib/rewriters/block_to_iter_spec.rb +28 -0
  229. data/spec/lib/rewriters/dot_js_syntax_spec.rb +108 -0
  230. data/spec/lib/rewriters/explicit_writer_return_spec.rb +186 -0
  231. data/spec/lib/rewriters/js_reserved_words_spec.rb +116 -0
  232. data/spec/lib/rewriters/logical_operator_assignment_spec.rb +202 -0
  233. data/spec/lib/rewriters/opal_engine_check_spec.rb +82 -0
  234. data/spec/lib/rewriters/rubyspec/filters_rewriter_spec.rb +53 -0
  235. data/spec/lib/simple_server_spec.rb +54 -0
  236. data/spec/lib/spec_helper.rb +88 -4
  237. data/spec/mspec-opal/formatters.rb +65 -17
  238. data/spec/mspec-opal/runner.rb +47 -67
  239. data/spec/opal/core/date_spec.rb +14 -0
  240. data/spec/opal/core/exception_spec.rb +10 -0
  241. data/spec/opal/core/hash/internals_spec.rb +10 -10
  242. data/spec/opal/core/kernel/rand_spec.rb +0 -4
  243. data/spec/opal/core/kernel/respond_to_spec.rb +5 -2
  244. data/spec/opal/core/language/constant_lookup_spec.rb +38 -0
  245. data/spec/opal/core/language/safe_navigator_spec.rb +7 -0
  246. data/spec/opal/core/language/send_spec.rb +1 -9
  247. data/spec/opal/core/language/string_spec.rb +8 -8
  248. data/spec/opal/core/language/versions/def_2_0_spec.rb +0 -4
  249. data/spec/opal/core/language_spec.rb +32 -0
  250. data/spec/opal/core/module/const_get_spec.rb +1 -1
  251. data/spec/opal/core/runtime/is_a_spec.rb +36 -0
  252. data/spec/opal/core/runtime/rescue_spec.rb +35 -0
  253. data/spec/opal/core/runtime_spec.rb +4 -4
  254. data/spec/opal/core/string_spec.rb +8 -8
  255. data/spec/opal/core/time_spec.rb +38 -0
  256. data/spec/opal/stdlib/erb/quoted.opalerb +1 -1
  257. data/spec/opal/stdlib/json/parse_spec.rb +4 -0
  258. data/spec/opal/stdlib/native/hash_spec.rb +16 -0
  259. data/spec/ruby_specs +2 -1
  260. data/spec/spec_helper.rb +1 -0
  261. data/spec/support/rewriters_helper.rb +24 -0
  262. data/stdlib/base64.rb +4 -2
  263. data/stdlib/bigdecimal/bignumber.js.rb +1 -1
  264. data/stdlib/date.rb +18 -19
  265. data/stdlib/json.rb +16 -4
  266. data/stdlib/nashorn/file.rb +15 -0
  267. data/stdlib/native.rb +21 -12
  268. data/stdlib/nodejs/dir.rb +1 -1
  269. data/stdlib/nodejs/file.rb +49 -20
  270. data/stdlib/nodejs/io.rb +22 -1
  271. data/stdlib/nodejs/{node_modules/js-yaml/dist/js-yaml.js → js-yaml-3-6-1.js} +815 -626
  272. data/stdlib/nodejs/kernel.rb +3 -1
  273. data/stdlib/nodejs/package.json +0 -1
  274. data/stdlib/nodejs/stacktrace.rb +163 -0
  275. data/stdlib/nodejs/yaml.rb +2 -1
  276. data/stdlib/opal/platform.rb +5 -13
  277. data/stdlib/opal-platform.rb +15 -0
  278. data/stdlib/pathname.rb +1 -1
  279. data/stdlib/strscan.rb +15 -1
  280. data/stdlib/yaml.rb +1 -1
  281. data/tasks/benchmarking.rake +9 -0
  282. data/tasks/building.rake +24 -20
  283. data/tasks/linting.rake +24 -13
  284. data/tasks/testing/mspec_special_calls.rb +44 -15
  285. data/tasks/testing/opal_rspec_smoketest.Gemfile +13 -0
  286. data/tasks/testing.rake +322 -205
  287. data/test/nodejs/fixtures/hello.rb +1 -0
  288. data/test/nodejs/test_file.rb +57 -0
  289. data/test/nodejs/test_io.rb +18 -0
  290. data/test/nodejs/test_opal_builder.rb +12 -0
  291. data/test/opal/unsupported_and_bugs.rb +9 -0
  292. metadata +131 -242
  293. data/lib/opal/parser/grammar.rb +0 -6157
  294. data/lib/opal/parser/grammar.y +0 -2011
  295. data/lib/opal/parser/keywords.rb +0 -66
  296. data/lib/opal/parser/lexer.rb +0 -1352
  297. data/lib/opal/parser/parser_scope.rb +0 -28
  298. data/lib/opal/parser/sexp.rb +0 -90
  299. data/lib/opal/sprockets/environment.rb +0 -23
  300. data/lib/opal/sprockets/erb.rb +0 -23
  301. data/lib/opal/sprockets/path_reader.rb +0 -36
  302. data/lib/opal/sprockets/processor.rb +0 -145
  303. data/lib/opal/sprockets/server.rb +0 -133
  304. data/lib/opal/sprockets/source_map_header_patch.rb +0 -41
  305. data/lib/opal/sprockets/source_map_server.rb +0 -115
  306. data/lib/opal/sprockets.rb +0 -91
  307. data/spec/filters/bugs/compiler_opal.rb +0 -5
  308. data/spec/filters/bugs/language_opal.rb +0 -88
  309. data/spec/filters/unsupported/module.rb +0 -8
  310. data/spec/lib/compiler/pre_processed_conditionals_spec.rb +0 -87
  311. data/spec/lib/lexer_spec.rb +0 -110
  312. data/spec/lib/parser/alias_spec.rb +0 -26
  313. data/spec/lib/parser/and_spec.rb +0 -13
  314. data/spec/lib/parser/aref_spec.rb +0 -10
  315. data/spec/lib/parser/attrasgn_spec.rb +0 -28
  316. data/spec/lib/parser/begin_spec.rb +0 -42
  317. data/spec/lib/parser/block_spec.rb +0 -12
  318. data/spec/lib/parser/break_spec.rb +0 -17
  319. data/spec/lib/parser/call_spec.rb +0 -201
  320. data/spec/lib/parser/class_spec.rb +0 -35
  321. data/spec/lib/parser/comments_spec.rb +0 -11
  322. data/spec/lib/parser/def_spec.rb +0 -109
  323. data/spec/lib/parser/if_spec.rb +0 -26
  324. data/spec/lib/parser/iter_spec.rb +0 -59
  325. data/spec/lib/parser/lambda_spec.rb +0 -219
  326. data/spec/lib/parser/literal_spec.rb +0 -118
  327. data/spec/lib/parser/masgn_spec.rb +0 -37
  328. data/spec/lib/parser/module_spec.rb +0 -27
  329. data/spec/lib/parser/not_spec.rb +0 -21
  330. data/spec/lib/parser/op_asgn1_spec.rb +0 -23
  331. data/spec/lib/parser/op_asgn2_spec.rb +0 -23
  332. data/spec/lib/parser/op_asgn_spec.rb +0 -17
  333. data/spec/lib/parser/or_spec.rb +0 -13
  334. data/spec/lib/parser/return_spec.rb +0 -22
  335. data/spec/lib/parser/sclass_spec.rb +0 -21
  336. data/spec/lib/parser/string_spec.rb +0 -286
  337. data/spec/lib/parser/super_spec.rb +0 -20
  338. data/spec/lib/parser/unary_spec.rb +0 -52
  339. data/spec/lib/parser/undef_spec.rb +0 -19
  340. data/spec/lib/parser/unless_spec.rb +0 -13
  341. data/spec/lib/parser/variables_spec.rb +0 -116
  342. data/spec/lib/parser/while_spec.rb +0 -15
  343. data/spec/lib/parser/yield_spec.rb +0 -20
  344. data/spec/lib/sprockets/erb_spec.rb +0 -38
  345. data/spec/lib/sprockets/path_reader_spec.rb +0 -41
  346. data/spec/lib/sprockets/processor_spec.rb +0 -79
  347. data/spec/lib/sprockets/server_spec.rb +0 -102
  348. data/spec/lib/sprockets_spec.rb +0 -32
  349. data/spec/lib/tilt/opal_spec.rb +0 -37
  350. data/spec/opal/core/language/block_spec.rb +0 -538
  351. data/spec/opal/core/language/proc_spec.rb +0 -263
  352. data/spec/opal/core/language/variables_spec.rb +0 -1366
  353. data/spec/opal/core/runtime/block_send_spec.rb +0 -28
  354. data/spec/opal/core/runtime/send_spec.rb +0 -34
  355. data/spec/support/parser_helpers.rb +0 -37
  356. data/stdlib/nodejs/node_modules/js-yaml/HISTORY.md +0 -277
  357. data/stdlib/nodejs/node_modules/js-yaml/LICENSE +0 -21
  358. data/stdlib/nodejs/node_modules/js-yaml/README.md +0 -288
  359. data/stdlib/nodejs/node_modules/js-yaml/bin/js-yaml.js +0 -140
  360. data/stdlib/nodejs/node_modules/js-yaml/bower.json +0 -23
  361. data/stdlib/nodejs/node_modules/js-yaml/dist/js-yaml.min.js +0 -3
  362. data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.js +0 -102
  363. data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.yml +0 -18
  364. data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.js +0 -31
  365. data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.json +0 -22
  366. data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.js +0 -18
  367. data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.yml +0 -197
  368. data/stdlib/nodejs/node_modules/js-yaml/index.js +0 -7
  369. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/common.js +0 -62
  370. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/dumper.js +0 -554
  371. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/exception.js +0 -25
  372. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/loader.js +0 -1581
  373. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/mark.js +0 -78
  374. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/core.js +0 -18
  375. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +0 -25
  376. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +0 -28
  377. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +0 -17
  378. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/json.js +0 -25
  379. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema.js +0 -103
  380. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/binary.js +0 -133
  381. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/bool.js +0 -37
  382. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/float.js +0 -110
  383. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/int.js +0 -183
  384. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/function.js +0 -85
  385. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +0 -84
  386. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +0 -27
  387. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/map.js +0 -8
  388. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/merge.js +0 -12
  389. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/null.js +0 -36
  390. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/omap.js +0 -56
  391. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/pairs.js +0 -61
  392. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/seq.js +0 -8
  393. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/set.js +0 -33
  394. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/str.js +0 -8
  395. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +0 -98
  396. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type.js +0 -61
  397. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml.js +0 -39
  398. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/HISTORY.md +0 -115
  399. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/LICENSE +0 -21
  400. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/README.md +0 -239
  401. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/arguments.js +0 -36
  402. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/choice.js +0 -22
  403. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/constants.js +0 -59
  404. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/help.js +0 -13
  405. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/nargs.js +0 -33
  406. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/parents.js +0 -28
  407. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/prefix_chars.js +0 -23
  408. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sub_commands.js +0 -49
  409. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sum.js +0 -35
  410. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/testformatters.js +0 -270
  411. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/index.js +0 -1
  412. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append/constant.js +0 -47
  413. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append.js +0 -55
  414. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/count.js +0 -40
  415. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/help.js +0 -48
  416. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/constant.js +0 -43
  417. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/false.js +0 -27
  418. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/true.js +0 -26
  419. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store.js +0 -50
  420. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/subparsers.js +0 -148
  421. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/version.js +0 -50
  422. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action.js +0 -146
  423. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action_container.js +0 -481
  424. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argparse.js +0 -14
  425. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/error.js +0 -50
  426. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/exclusive.js +0 -54
  427. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/group.js +0 -75
  428. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument_parser.js +0 -1168
  429. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/const.js +0 -18
  430. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/added_formatters.js +0 -88
  431. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/formatter.js +0 -798
  432. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/namespace.js +0 -77
  433. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/LICENSE +0 -23
  434. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/README.md +0 -22
  435. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/package.json +0 -69
  436. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore-min.js +0 -6
  437. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore.js +0 -1415
  438. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.npmignore +0 -2
  439. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.travis.yml +0 -8
  440. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/README.markdown +0 -825
  441. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/bower.json +0 -33
  442. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/component.json +0 -11
  443. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/foo.js +0 -10
  444. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/gulpfile.js +0 -26
  445. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/lib/underscore.string.js +0 -673
  446. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/libpeerconnection.log +0 -0
  447. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/package.json +0 -107
  448. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/package.json +0 -62
  449. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/README.md +0 -73
  450. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esparse.js +0 -117
  451. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js +0 -177
  452. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/esprima.js +0 -3908
  453. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/package.json +0 -69
  454. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/compat.js +0 -239
  455. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/reflect.js +0 -422
  456. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/run.js +0 -66
  457. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/runner.js +0 -387
  458. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/test.js +0 -20238
  459. data/stdlib/nodejs/node_modules/js-yaml/package.json +0 -83
  460. /data/{CODE_OF_CONDUCT.md → CONDUCT.md} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 992ac16e12c48dbaef85eb0de3bd6077fa0859cf
4
- data.tar.gz: 8245d6ef34cc2555d0d23a505f35c5a6215162ae
3
+ metadata.gz: d3c1ac220f86c552e522eaad298f9e4dcce4e8f6
4
+ data.tar.gz: 5294190e2a015e036d8824126837fb8ead1e219a
5
5
  SHA512:
6
- metadata.gz: a2e595513e93d7a7ddec468dcb3ae4ebadee844d042419f80403669b0e2047f8a54a00b736e9fa3408fac685df0f3aaf6894a4f816d814c914708fda00f546e8
7
- data.tar.gz: 168be2c9aa3823a6ad810892e3408314bfe538bc776004bc33c8239f6dcfce25ef72e63563fa869347c56ff70809c924e151aca3102a58e9ea3e4bc08aaa1213
6
+ metadata.gz: 9c84a1b7d4c5c1e493dcdff3f8823141fac4048b96ac409ded2ce223b4e591d7fccbb00d7edd00f4cc8eafe76385c3caa8d540bf285cada64fc9d24ec5048072
7
+ data.tar.gz: 8e8a3ec7a272f221856d36787fe8edf774f418694fb28b18f30b3e38d8c10ee059154c2d3218b29300bd8e5818667ba3481bb2b499dfeae19641526477d60ee0
data/.codeclimate.yml ADDED
@@ -0,0 +1,19 @@
1
+ engines:
2
+ duplication:
3
+ enabled: true
4
+ config:
5
+ languages:
6
+ - ruby
7
+ ratings:
8
+ paths:
9
+ - "**.rb"
10
+ exclude_paths:
11
+ - "benchmark/*"
12
+ - "build/*"
13
+ - "coverage/*"
14
+ - "docs/*"
15
+ - "examples/*"
16
+ - "tasks/*"
17
+ - "spec/*"
18
+ - "test/*"
19
+ - "vendored-minitest/*"
data/.gitmodules CHANGED
@@ -1,4 +1,4 @@
1
- [submodule "spec/rubyspec"]
1
+ [submodule "spec/ruby"]
2
2
  path = spec/ruby
3
3
  url = https://github.com/ruby/spec.git
4
4
  [submodule "test/cruby"]
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", "callPhantom", "OpalNode"],
13
+ "predef" : ["Opal", "JSON", "Java", "callPhantom", "OpalNode", "jsyaml"],
14
14
 
15
15
  "browser": true,
16
16
  "node": true,
@@ -28,7 +28,6 @@
28
28
  "-W030": false, // Expected an assignment or function call and instead saw an expression
29
29
  "-W032": false, // Unnecessary semicolon
30
30
  "-W033": false, // Missing semicolon
31
- "-W067": false, // Bad invocation
32
31
  "-W083": false, // Don't make functions within a loop
33
32
  "-W093": false, // Did you mean to return a conditional instead of an assignment?
34
33
  "-W098": false, // 'variable' is defined but never used
data/.rspec CHANGED
@@ -1,3 +1,2 @@
1
1
  --color
2
- --format progress
3
- --pattern spec/lib/**/*_spec.rb
2
+ --require lib/spec_helper
data/.travis.yml CHANGED
@@ -6,37 +6,45 @@ cache:
6
6
  bundler: true
7
7
  directories:
8
8
  - /home/travis/.nvm/
9
+ - smoke_test_opal_rspec
9
10
 
10
11
  matrix:
11
12
  fast_finish: true
12
13
 
13
14
  include:
14
- - rvm: 2.3.1
15
- env: RUN=jshint SUITE=core
15
+ # - rvm: 2.4.0
16
+ # env:
17
+ # - RUN=browser_test
18
+ # - SAUCE_USERNAME=elia
19
+ # # SAUCE_ACCESS_KEY:
20
+ # - secure: GT13SjzU8vmqKIyY2LAXje+ndqevTsX/w71JkZHRLTrDUl0qcIod7xsfahbzGt2gOZPYZUkKiVaPoUenhc/YeJ2jTJVHeHY9UEl2II+3tOtuvp2jLadA//aBbsB6/09d7lIZMzpa93TL2R/SncPxugYW9v2o8o8Lwd2iIzowT/g=
16
21
 
17
- - rvm: 2.3.1
18
- env: RUN=jshint SUITE=stdlib
22
+ - rvm: 2.4.0
23
+ env: RUN=jshint
19
24
 
20
- - rvm: 2.3.1
25
+ - rvm: 2.4.0
21
26
  env: RUN=mspec_opal_nodejs
22
27
 
23
- - rvm: 2.3.1
28
+ - rvm: 2.4.0
24
29
  env: RUN=mspec_ruby_nodejs TZ="/usr/share/zoneinfo/Pacific/Fiji"
25
30
 
26
- - rvm: 2.3.1
27
- env: RUN=mspec_ruby_sprockets_phantomjs
28
-
29
- - rvm: 2.3.1
31
+ - rvm: 2.4.0
30
32
  env: RUN=minitest
31
33
 
32
- - rvm: 2.3.1
34
+ - rvm: 2.4.0
33
35
  env: RUN=rspec RACK_VERSION='~> 2.0.0' CHECK_COVERAGE=true
34
36
 
37
+ - rvm: 2.4.0
38
+ env: RUN=smoke_test
39
+
35
40
  - rvm: ruby-head
36
41
  env: RUN=rspec
37
42
 
38
- - rvm: 2.2.4
39
- env: RUN=rspec TILT_VERSION=2.0.1
43
+ - rvm: 2.3.3
44
+ env: RUN=rspec
45
+
46
+ - rvm: 2.2.5
47
+ env: RUN=rspec TILT_VERSION=2.0.1 SPROCKETS_VERSION='~> 3.7'
40
48
 
41
49
  - rvm: 2.1.10
42
50
  env: RUN=rspec RACK_VERSION='< 2.0'
@@ -44,10 +52,7 @@ matrix:
44
52
  - rvm: 2.0.0
45
53
  env: RUN="rspec mspec_opal_nodejs" RACK_VERSION='< 2.0'
46
54
 
47
- - rvm: rbx
48
- env: RUN=rspec
49
-
50
- - rvm: jruby-9.0.5.0
55
+ - rvm: jruby-9.1.7.0
51
56
  env: RUN=rspec
52
57
 
53
58
  - rvm: jruby-head
@@ -55,8 +60,8 @@ matrix:
55
60
 
56
61
  allow_failures:
57
62
  - rvm: ruby-head
58
- - rvm: rbx
59
63
  - rvm: jruby-head
64
+ - env: RUN=smoke_test
60
65
 
61
66
 
62
67
  before_install:
@@ -66,6 +71,8 @@ before_install:
66
71
  - git submodule update --init
67
72
  - npm install -g jshint
68
73
  - npm install -g uglify-js
74
+ - type bundle || gem install bundler
75
+ - bundle config without doc
69
76
 
70
77
  script:
71
78
  - "bundle exec rake $RUN"
@@ -75,3 +82,6 @@ notifications:
75
82
  webhooks:
76
83
  urls:
77
84
  - https://webhooks.gitter.im/e/2ea12333adebda0c2289
85
+
86
+ # addons:
87
+ # sauce_connect: true
data/.yardopts CHANGED
@@ -1,6 +1,8 @@
1
1
  lib/opal.rb
2
2
  lib/opal/**/*.rb
3
- --markup markdown
3
+ --markup=markdown
4
+ --markup-provider=redcarpet
5
+ --hide-void-return
4
6
  -
5
7
  CHANGELOG.md
6
8
  docs/compiler_directives.md
data/CHANGELOG.md CHANGED
@@ -21,6 +21,140 @@ Whitespace conventions:
21
21
 
22
22
 
23
23
 
24
+ ## [0.11.0] - Unreleased
25
+
26
+
27
+ ### Added
28
+
29
+ - Added support for complex (`0b1110i`) and rational (`0b1111r`) number literals. (#1487)
30
+ - Added 2.3.0 methods:
31
+ * `Array#bsearch_index`
32
+ * `Array#dig`
33
+ * `Enumerable#chunk_while`
34
+ * `Enumerable#grep_v`
35
+ * `Enumerable#slice_after`
36
+ * `Enumerable#slice_when`
37
+ * `Hash#>`
38
+ * `Hash#<`
39
+ * `Hash#>=`
40
+ * `Hash#>=`
41
+ * `Hash#dig`
42
+ * `Hash#fetch_values`
43
+ * `Hash#to_proc`
44
+ * `Struct#dig`
45
+ * `Kernel#itself`
46
+ - Added safe navigator (`&.`) support. (#1532)
47
+ - Added Random class with seed support. The following methods were reworked to use it:
48
+ * `Kernel.rand`
49
+ * `Kernel.srand`
50
+ * `Array#shuffle`
51
+ * `Array#shuffle!`
52
+ * `Array#sample`
53
+ - Added rudimental history support to `opal-repl`, just create the history file (`~/.opal-repl-history`) and it record the last 1000 lines
54
+ - Added `JS::Error` error class that can be used to catch any JS error.
55
+ - Added `Method#source_location` and `Method#comments`.
56
+ - Added a deprecation API that can be set to raise on deprecation with: `Opal.raise_on_deprecation = true`
57
+ - 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'`
58
+ - Added `String#ascii_only?` (#1592)
59
+ - Added `StringScanner#matched_size` (#1595)
60
+ - Added `Hash#compare_by_identity` (#1657)
61
+
62
+
63
+ ### Removed
64
+
65
+ - Dropped support for IE8 and below, and restricted Safari and Opera support to the last two versions
66
+
67
+
68
+ ### Changed
69
+
70
+ - Removed self-written lexer/parser. Now uses parser/ast gems to convert source code to AST. (#1465)
71
+ - Migrated parser to 2.3. Bump RUBY_VERSION to 2.3.0.
72
+ - Changed to be 2.3 compliant:
73
+ * `Enumerable#chunk` (to take only a a block)
74
+ * `Enumerable#slice_before` (to raise proper argument errors)
75
+ * `Number#positive?` (to return false for 0)
76
+ - Use meaningful names for temporary variables in compiled JavaScript (e.g. for `def foo` was `TMP_123`, now `TMP_foo_123`)
77
+ - Dynamic require severity now defaults to `:ignore` meaning that by default a `LoadError` will be raised at runtime instead of compile time.
78
+
79
+
80
+ ### Deprecated
81
+
82
+ - `require 'opal/server` and `Opal::Server` are deprecated in favor of `require 'opal/sprockets/server'` and `Opal::Sprockets::Server` (now part of the opal-sprockets gem).
83
+
84
+
85
+ ### Removed
86
+
87
+ - Removed `yaml` from stdlib, the older implementation was only available for NodeJS and not tested. Replace with `require 'nodejs/yaml'`
88
+ - Extracted sprockets support to `opal-sprockets` which should allow for wider support and less coupling (e.g. the `opal` gem will now be able to improve the compiler without worrying about `sprockets` updates). All the old behavior is preserved except for `Opal::Server` that has become `Opal::Sprockets::Server` (see Deprecated section above).
89
+
90
+
91
+ ### Fixed
92
+
93
+ - Newly compliant with the Ruby Spec Suite:
94
+ * `Module#class_variables`
95
+ * `Module#class_variable_get`
96
+ * `Module#class_variable_set`
97
+ * `Module#remove_class_variable`
98
+ * `Module#include?`
99
+ * `Numeric#step` (#1512)
100
+
101
+ - Improvements for Range class (#1486)
102
+ * Moved private/tainted/untrusted specs to not supported
103
+ * Conforming `Range#to_s` and `Range#inspect`
104
+ * Starting `Range#bsearch` implementation
105
+ * Simple `Range#step` implementation
106
+ * Fixing `Range#min` for empty Ranges
107
+ * Fixing `Range#last(n)` `Range#first(n)` and one edge case of `Range#each`
108
+ * Fixing some `Range#step` issues on String ranges
109
+ * Simple `Range#bsearch` implementation, passes about half the specs
110
+ * Minor styling improvements. Fixed size of `Range#step`.
111
+ * Compile complex ranges to "Range.new" so there will be a check for begin and end to be comparable.
112
+
113
+ - Fixed `defined?` for methods raising exceptions
114
+ - Fixed `Kernel#loop` (to catch `StopIteration` error)
115
+ - Fixed inheritance from the `Module` class.
116
+ - Fixed using `--preload` along with `--no-opal` for CLI
117
+ - Fixed `Integer("0")` raising `ArgumentError` instead of parsing as 0
118
+ - Fixed `JSON#parse` to raise `JSON::ParserError` for invalid input
119
+ - `Module#append_features` now detects cyclic includes
120
+ - `Process.clock_gettime(Process::CLOCK_MONOTONIC)` will now return true monotonic values or raise `Errno::EINVAL` if no monotonic clock is available
121
+ - Opal::Builder no longer always raises an error when a dependency isn't found and instead respects `dynamic_require_severity` value
122
+
123
+
124
+
125
+ ## [0.10.3] - 2016-10-31
126
+
127
+
128
+ ### Changed
129
+
130
+ - Avoid special utf-8 chars in method names, now they start with `$$`
131
+
132
+
133
+
134
+
135
+ ## [0.10.2] - 2016-09-09
136
+
137
+
138
+ ## Fixed
139
+
140
+ - Fixed inheritance from the `Module` class (#1476)
141
+ - Fixed source map server with url-encoded paths
142
+ - Silence Sprockets 3.7 deprecations, full support for Sprockets 4 will be available in Opal 0.11
143
+ - Don't print the full stack trace with deprecation messages
144
+
145
+
146
+
147
+
148
+ ## [0.10.1] - 2016-07-06
149
+
150
+
151
+ ### Fixed
152
+
153
+ - Fixed `-L` option for compiling requires as modules (#1510)
154
+
155
+
156
+
157
+
24
158
  ## [0.10.0] - 2016-07-04
25
159
 
26
160
 
@@ -849,7 +983,11 @@ Whitespace conventions:
849
983
 
850
984
 
851
985
 
852
- [0.10.0]: https://github.com/opal/opal/compare/v0.9.4...HEAD
986
+ [0.11.0]: https://github.com/opal/opal/compare/v0.10.3...HEAD
987
+ [0.10.3]: https://github.com/opal/opal/compare/v0.10.2...v0.10.3
988
+ [0.10.2]: https://github.com/opal/opal/compare/v0.10.1...v0.10.2
989
+ [0.10.1]: https://github.com/opal/opal/compare/v0.10.0...v0.10.1
990
+ [0.10.0]: https://github.com/opal/opal/compare/v0.9.4...v0.10.0
853
991
  [0.9.4]: https://github.com/opal/opal/compare/v0.9.3...v0.9.4
854
992
  [0.9.3]: https://github.com/opal/opal/compare/v0.9.2...v0.9.3
855
993
  [0.9.2]: https://github.com/opal/opal/compare/v0.9.1...v0.9.2
data/Gemfile CHANGED
@@ -3,6 +3,7 @@ gemspec
3
3
 
4
4
  tilt_version = ENV['TILT_VERSION']
5
5
  rack_version = ENV['RACK_VERSION']
6
+ sprockets_version = ENV['SPROCKETS_VERSION']
6
7
 
7
8
  # Stick with older racc until
8
9
  # https://github.com/tenderlove/racc/issues/22
@@ -10,19 +11,23 @@ rack_version = ENV['RACK_VERSION']
10
11
  gem 'racc', '< 1.4.10', platform: :jruby
11
12
  gem 'json', '< 1.8.1', platform: :ruby if RUBY_VERSION.to_f == 2.1
12
13
  gem 'rubysl', platform: :rbx
13
-
14
- # thin requires rack < 2
15
- gem 'thin', platform: :mri if !rack_version || (rack_version < '2')
16
-
14
+ gem 'coveralls', platform: :mri
15
+ gem 'puma' # Some browsers have problems with WEBrick
17
16
  gem 'rack', rack_version if rack_version
18
17
  gem 'tilt', tilt_version if tilt_version
18
+ gem 'sprockets', sprockets_version if sprockets_version
19
+ gem 'mspec', path: 'spec/mspec'
19
20
 
20
21
  group :repl do
21
- gem 'therubyracer', platform: :mri, require: 'v8'
22
- gem 'therubyrhino', platform: :jruby
22
+ gem 'therubyracer', platform: :mri, require: false
23
+ gem 'therubyrhino', platform: :jruby, require: false
24
+ end
25
+
26
+ group :browser do
27
+ gem 'selenium-webdriver', '>= 3.0.0.beta3.1', platform: :mri
23
28
  end
24
29
 
25
- unless ENV['CI']
30
+ group :development do
26
31
  gem 'rb-fsevent'
27
32
  gem 'guard', require: false
28
33
 
@@ -30,6 +35,8 @@ unless ENV['CI']
30
35
  gem 'terminal-notifier-guard'
31
36
  gem 'terminal-notifier'
32
37
  end
33
- end
38
+ end unless ENV['CI']
34
39
 
35
- gem 'mspec', path: 'spec/mspec'
40
+ group :doc do
41
+ gem 'redcarpet'
42
+ end
data/HACKING.md CHANGED
@@ -89,6 +89,8 @@ This command will execute tests marked as "bugs" from every file in the `spec/ru
89
89
 
90
90
  Note: Opal has some bugs that may cause a shared state between tests. Sometimes green specs are green only in the inverted test suite, so after removing them from `/bugs`, run a regular test suite one more time to verify that everything is fine.
91
91
 
92
+ Also there are some specs in `spec/ruby/language/while_spec.rb` that cause an infinite loop. Make sure to comment them before running a whole inverted test suite.
93
+
92
94
  ## Benchmarking
93
95
 
94
96
  There are two ways to benchmark Opal's performance: one way is to write a program (or a set of programs) that takes sufficently long time to execute, then measure the execution time, and the other is to execute a specific Ruby Spec Suite example (or a set of examples) multiple times, then measure the execution time. Let's call the former "Traditional Benchmarking", and the latter "The Ruby Spec Suite Benchmarking".
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Opal
2
2
 
3
- [![Build Status](http://img.shields.io/travis/opal/opal/master.svg?style=flat)](http://travis-ci.org/opal/opal)
3
+ [![Build Status (Linux)](http://img.shields.io/travis/opal/opal/master.svg?style=flat)](http://travis-ci.org/opal/opal)
4
+ [![Build Status (Windows)](https://ci.appveyor.com/api/projects/status/jtsvwl8tfgn3u67n/branch/master?svg=true)](https://ci.appveyor.com/project/elia/opal/branch/master)
4
5
  [![Gem Version](http://img.shields.io/gem/v/opal.svg?style=flat)](http://badge.fury.io/rb/opal)
5
6
  [![Code Climate](http://img.shields.io/codeclimate/github/opal/opal.svg?style=flat)](https://codeclimate.com/github/opal/opal)
6
7
  [![Coverage Status](https://coveralls.io/repos/opal/opal/badge.svg?branch=master&service=github)](https://coveralls.io/github/opal/opal?branch=elia%2Fcoveralls)
@@ -154,7 +155,7 @@ Alternatively, you can just load up a rack instance using `rackup`, and
154
155
  visit `http://localhost:9292/` in any web browser.
155
156
 
156
157
 
157
- ### Rspec
158
+ ### RSpec
158
159
 
159
160
  [RSpec][] tests can be run with:
160
161
 
@@ -187,11 +188,11 @@ Holds the **stdlib currently supported by Opal**. This includes `Observable`,
187
188
 
188
189
  ## Browser support
189
190
 
190
- * Internet Explorer 6+
191
+ * Internet Explorer 9+
191
192
  * Firefox (Current - 1) or Current
192
193
  * Chrome (Current - 1) or Current
193
- * Safari 5.1+
194
- * Opera 12.1x or (Current - 1) or Current
194
+ * Safari (Current - 1) or Current
195
+ * Opera (Current - 1) or Current
195
196
 
196
197
  Any problems encountered using the browsers listed above should be reported as bugs.
197
198
 
@@ -203,7 +204,7 @@ version of a browser is 24.x, we support the 24.x and 23.x versions.
203
204
  as the last 2 versions of Opera. For example, if the current Opera version is 20.x,
204
205
  then we support Opera 12.1x, 19.x and 20.x but not Opera 15.x through 18.x.
205
206
 
206
- Cross-browser testing is sponsored by [BrowserStack](http://browserstack.com).
207
+ Cross-browser testing is sponsored by [SauceLabs](http://saucelabs.com).
207
208
 
208
209
  ## License
209
210
 
data/Rakefile CHANGED
@@ -11,4 +11,4 @@ import 'tasks/building.rake'
11
11
  import 'tasks/linting.rake'
12
12
  import 'tasks/benchmarking.rake'
13
13
 
14
- task :default => [:rspec, :mspec_nodejs, :cruby_tests]
14
+ task :default => [:rspec, :mspec, :minitest]
data/appveyor.yml ADDED
@@ -0,0 +1,30 @@
1
+ version: '{build}'
2
+
3
+ skip_tags: true
4
+ # AppVeyor automatically skips the build if the commit contains [ci skip] or [skip ci]
5
+ #skip_commits:
6
+ # message: /\[ci skip\]/
7
+
8
+ clone_depth: 10
9
+
10
+ environment:
11
+ ruby_version: '23'
12
+
13
+ install:
14
+ - git submodule update --init --recursive
15
+ # Take default Ruby out of path
16
+ - SET PATH=%PATH:C:\Ruby193\bin;=%
17
+ # Add Ruby to path from build matrix
18
+ - SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
19
+ - ruby --version
20
+ - gem --version
21
+ - node --version
22
+ - gem install bundler --quiet --no-ri --no-rdoc
23
+ - bundler --version
24
+ - bundle
25
+ - choco install phantomjs --version 2.0.0 -y
26
+
27
+ build: off
28
+
29
+ test_script:
30
+ - bundle exec rake