opal 0.10.6 → 0.11.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (450) hide show
  1. checksums.yaml +5 -5
  2. data/.codeclimate.yml +19 -0
  3. data/.gitmodules +1 -1
  4. data/.jshintrc +1 -2
  5. data/.travis.yml +26 -18
  6. data/CHANGELOG.md +89 -23
  7. data/{CODE_OF_CONDUCT.md → CONDUCT.md} +0 -0
  8. data/Gemfile +19 -21
  9. data/HACKING.md +2 -0
  10. data/README.md +7 -6
  11. data/Rakefile +1 -1
  12. data/appveyor.yml +21 -4
  13. data/benchmark-ips/bm_case.rb +33 -0
  14. data/benchmark-ips/bm_constants_lookup.rb +13 -0
  15. data/benchmark-ips/bm_is_number.rb +29 -0
  16. data/benchmark-ips/bm_symbol_to_proc.rb +19 -0
  17. data/benchmark/bm_constant_lookup_big.rb +799 -0
  18. data/benchmark/bm_constant_lookup_small.rb +59 -0
  19. data/benchmark/bm_module_definition_big.rb +400 -0
  20. data/benchmark/bm_module_definition_small.rb +30 -0
  21. data/bin/opal-repl +23 -1
  22. data/docs/compiled_ruby.md +16 -14
  23. data/docs/faq.md +3 -3
  24. data/docs/rspec.md +2 -1
  25. data/docs/unsupported_features.md +6 -4
  26. data/examples/rack/Gemfile +1 -0
  27. data/examples/rack/app/application.rb +14 -3
  28. data/examples/rack/app/user.rb +2 -0
  29. data/examples/rack/config.ru +1 -1
  30. data/examples/rack/index.html.erb +1 -0
  31. data/lib/opal.rb +6 -1
  32. data/lib/opal/ast/builder.rb +17 -0
  33. data/lib/opal/ast/node.rb +30 -0
  34. data/lib/opal/builder.rb +14 -3
  35. data/lib/opal/builder_processors.rb +1 -0
  36. data/lib/opal/cli.rb +45 -59
  37. data/lib/opal/cli_options.rb +11 -7
  38. data/lib/opal/cli_runners.rb +1 -0
  39. data/lib/opal/cli_runners/applescript.rb +3 -3
  40. data/lib/opal/cli_runners/nashorn.rb +1 -0
  41. data/lib/opal/cli_runners/nodejs.rb +4 -1
  42. data/lib/opal/cli_runners/phantom.js +1 -2
  43. data/lib/opal/cli_runners/phantomjs.rb +3 -2
  44. data/lib/opal/cli_runners/server.rb +1 -0
  45. data/lib/opal/compiler.rb +145 -94
  46. data/lib/opal/config.rb +1 -0
  47. data/lib/opal/deprecations.rb +18 -0
  48. data/lib/opal/erb.rb +1 -0
  49. data/lib/opal/errors.rb +1 -0
  50. data/lib/opal/fragment.rb +1 -0
  51. data/lib/opal/hike_path_finder.rb +1 -0
  52. data/lib/opal/nodes.rb +3 -0
  53. data/lib/opal/nodes/arglist.rb +2 -1
  54. data/lib/opal/nodes/args/initialize_kwargs.rb +1 -0
  55. data/lib/opal/nodes/args/kwarg.rb +7 -7
  56. data/lib/opal/nodes/args/kwoptarg.rb +6 -7
  57. data/lib/opal/nodes/args/kwrestarg.rb +5 -5
  58. data/lib/opal/nodes/args/mlhsarg.rb +3 -2
  59. data/lib/opal/nodes/args/normarg.rb +6 -7
  60. data/lib/opal/nodes/args/optarg.rb +5 -7
  61. data/lib/opal/nodes/args/post_args.rb +6 -5
  62. data/lib/opal/nodes/args/post_kwargs.rb +1 -0
  63. data/lib/opal/nodes/args/restarg.rb +7 -7
  64. data/lib/opal/nodes/array.rb +1 -0
  65. data/lib/opal/nodes/base.rb +24 -3
  66. data/lib/opal/nodes/call.rb +167 -155
  67. data/lib/opal/nodes/call_special.rb +31 -217
  68. data/lib/opal/nodes/case.rb +36 -22
  69. data/lib/opal/nodes/class.rb +4 -3
  70. data/lib/opal/nodes/constants.rb +28 -48
  71. data/lib/opal/nodes/csend.rb +25 -0
  72. data/lib/opal/nodes/def.rb +49 -16
  73. data/lib/opal/nodes/defined.rb +170 -60
  74. data/lib/opal/nodes/definitions.rb +40 -133
  75. data/lib/opal/nodes/defs.rb +29 -0
  76. data/lib/opal/nodes/for.rb +52 -25
  77. data/lib/opal/nodes/hash.rb +12 -35
  78. data/lib/opal/nodes/helpers.rb +27 -54
  79. data/lib/opal/nodes/if.rb +21 -32
  80. data/lib/opal/nodes/inline_args.rb +12 -13
  81. data/lib/opal/nodes/iter.rb +61 -36
  82. data/lib/opal/nodes/literal.rb +189 -116
  83. data/lib/opal/nodes/logic.rb +20 -25
  84. data/lib/opal/nodes/masgn.rb +20 -18
  85. data/lib/opal/nodes/module.rb +10 -11
  86. data/lib/opal/nodes/node_with_args.rb +14 -17
  87. data/lib/opal/nodes/rescue.rb +37 -70
  88. data/lib/opal/nodes/runtime_helpers.rb +8 -3
  89. data/lib/opal/nodes/scope.rb +9 -5
  90. data/lib/opal/nodes/singleton_class.rb +4 -3
  91. data/lib/opal/nodes/super.rb +115 -87
  92. data/lib/opal/nodes/top.rb +7 -2
  93. data/lib/opal/nodes/variables.rb +46 -35
  94. data/lib/opal/nodes/while.rb +11 -1
  95. data/lib/opal/nodes/yield.rb +1 -17
  96. data/lib/opal/parser.rb +28 -770
  97. data/lib/opal/path_reader.rb +5 -1
  98. data/lib/opal/paths.rb +10 -4
  99. data/lib/opal/regexp_anchors.rb +1 -0
  100. data/lib/opal/rewriter.rb +60 -0
  101. data/lib/opal/rewriters/base.rb +60 -0
  102. data/lib/opal/rewriters/binary_operator_assignment.rb +144 -0
  103. data/lib/opal/rewriters/block_to_iter.rb +17 -0
  104. data/lib/opal/rewriters/break_finder.rb +34 -0
  105. data/lib/opal/rewriters/dot_js_syntax.rb +60 -0
  106. data/lib/opal/rewriters/explicit_writer_return.rb +58 -0
  107. data/lib/opal/rewriters/js_reserved_words.rb +111 -0
  108. data/lib/opal/rewriters/logical_operator_assignment.rb +155 -0
  109. data/lib/opal/rewriters/opal_engine_check.rb +42 -0
  110. data/lib/opal/rewriters/rubyspec/filters_rewriter.rb +67 -0
  111. data/lib/opal/server.rb +4 -0
  112. data/lib/opal/simple_server.rb +100 -0
  113. data/lib/opal/source_map.rb +1 -1
  114. data/lib/opal/util.rb +5 -5
  115. data/lib/opal/version.rb +2 -1
  116. data/lib/tilt/opal.rb +1 -0
  117. data/opal.gemspec +8 -7
  118. data/opal/README.md +1 -1
  119. data/opal/corelib/array.rb +137 -83
  120. data/opal/corelib/basic_object.rb +6 -6
  121. data/opal/corelib/class.rb +14 -11
  122. data/opal/corelib/complex.rb +5 -1
  123. data/opal/corelib/constants.rb +3 -3
  124. data/opal/corelib/enumerable.rb +129 -11
  125. data/opal/corelib/error.rb +35 -17
  126. data/opal/corelib/file.rb +65 -170
  127. data/opal/corelib/hash.rb +128 -13
  128. data/opal/corelib/helpers.rb +12 -15
  129. data/opal/corelib/io.rb +1 -0
  130. data/opal/corelib/kernel.rb +40 -21
  131. data/opal/corelib/marshal/read_buffer.rb +1 -1
  132. data/opal/corelib/method.rb +33 -13
  133. data/opal/corelib/module.rb +133 -81
  134. data/opal/corelib/number.rb +141 -25
  135. data/opal/corelib/numeric.rb +0 -8
  136. data/opal/corelib/process.rb +44 -4
  137. data/opal/corelib/random.rb +117 -0
  138. data/opal/corelib/random/seedrandom.js.rb +15 -0
  139. data/opal/corelib/range.rb +133 -10
  140. data/opal/corelib/regexp.rb +37 -9
  141. data/opal/corelib/runtime.js +601 -390
  142. data/opal/corelib/string.rb +39 -8
  143. data/opal/corelib/string/encoding.rb +51 -7
  144. data/opal/corelib/struct.rb +20 -0
  145. data/opal/corelib/time.rb +3 -3
  146. data/opal/corelib/variables.rb +1 -1
  147. data/opal/opal.rb +1 -0
  148. data/spec/filters/bugs/array.rb +5 -1
  149. data/spec/filters/bugs/basicobject.rb +2 -5
  150. data/spec/filters/bugs/bigdecimal.rb +8 -22
  151. data/spec/filters/bugs/class.rb +2 -1
  152. data/spec/filters/bugs/comparable.rb +5 -0
  153. data/spec/filters/bugs/date.rb +3 -3
  154. data/spec/filters/bugs/enumerable.rb +4 -11
  155. data/spec/filters/bugs/enumerator.rb +2 -4
  156. data/spec/filters/bugs/exception.rb +16 -2
  157. data/spec/filters/bugs/file.rb +8 -0
  158. data/spec/filters/bugs/float.rb +7 -1
  159. data/spec/filters/bugs/hash.rb +6 -2
  160. data/spec/filters/bugs/integer.rb +2 -0
  161. data/spec/filters/bugs/io.rb +8 -0
  162. data/spec/filters/bugs/kernel.rb +9 -138
  163. data/spec/filters/bugs/language.rb +89 -174
  164. data/spec/filters/bugs/marshal.rb +33 -35
  165. data/spec/filters/bugs/method.rb +0 -24
  166. data/spec/filters/bugs/module.rb +19 -55
  167. data/spec/filters/bugs/numeric.rb +0 -119
  168. data/spec/filters/bugs/pathname.rb +2 -0
  169. data/spec/filters/bugs/proc.rb +5 -4
  170. data/spec/filters/bugs/random.rb +7 -0
  171. data/spec/filters/bugs/range.rb +12 -120
  172. data/spec/filters/bugs/rational.rb +1 -1
  173. data/spec/filters/bugs/regexp.rb +2 -40
  174. data/spec/filters/bugs/set.rb +0 -1
  175. data/spec/filters/bugs/string.rb +5 -8
  176. data/spec/filters/bugs/stringscanner.rb +11 -19
  177. data/spec/filters/bugs/time.rb +7 -1
  178. data/spec/filters/bugs/unboundmethod.rb +1 -11
  179. data/spec/filters/unsupported/array.rb +5 -1
  180. data/spec/filters/unsupported/basicobject.rb +1 -1
  181. data/spec/filters/unsupported/bignum.rb +4 -1
  182. data/spec/filters/unsupported/class.rb +1 -1
  183. data/spec/filters/unsupported/delegator.rb +1 -1
  184. data/spec/filters/unsupported/enumerable.rb +1 -1
  185. data/spec/filters/unsupported/enumerator.rb +1 -1
  186. data/spec/filters/unsupported/file.rb +4 -0
  187. data/spec/filters/unsupported/fixnum.rb +1 -1
  188. data/spec/filters/unsupported/float.rb +4 -1
  189. data/spec/filters/unsupported/freeze.rb +27 -5
  190. data/spec/filters/unsupported/hash.rb +7 -15
  191. data/spec/filters/unsupported/integer.rb +1 -1
  192. data/spec/filters/unsupported/kernel.rb +2 -1
  193. data/spec/filters/unsupported/language.rb +6 -1
  194. data/spec/filters/unsupported/marshal.rb +1 -1
  195. data/spec/filters/unsupported/matchdata.rb +4 -1
  196. data/spec/filters/unsupported/math.rb +1 -1
  197. data/spec/filters/unsupported/pathname.rb +1 -1
  198. data/spec/filters/unsupported/privacy.rb +141 -9
  199. data/spec/filters/unsupported/proc.rb +1 -1
  200. data/spec/filters/unsupported/random.rb +4 -0
  201. data/spec/filters/unsupported/range.rb +7 -0
  202. data/spec/filters/unsupported/regexp.rb +25 -15
  203. data/spec/filters/unsupported/set.rb +1 -1
  204. data/spec/filters/unsupported/singleton.rb +1 -1
  205. data/spec/filters/unsupported/string.rb +110 -101
  206. data/spec/filters/unsupported/struct.rb +1 -1
  207. data/spec/filters/unsupported/symbol.rb +2 -1
  208. data/spec/filters/unsupported/taint.rb +22 -7
  209. data/spec/filters/unsupported/thread.rb +1 -1
  210. data/spec/filters/unsupported/time.rb +1 -1
  211. data/spec/lib/builder_spec.rb +17 -0
  212. data/spec/lib/cli_spec.rb +37 -8
  213. data/spec/lib/compiler/call_spec.rb +98 -66
  214. data/spec/lib/compiler_spec.rb +39 -30
  215. data/spec/lib/dependency_resolver_spec.rb +2 -2
  216. data/spec/lib/deprecations_spec.rb +16 -0
  217. data/spec/lib/fixtures/source_location_test.rb +7 -0
  218. data/spec/lib/rewriters/binary_operator_assignment_spec.rb +151 -0
  219. data/spec/lib/rewriters/block_to_iter_spec.rb +28 -0
  220. data/spec/lib/rewriters/dot_js_syntax_spec.rb +108 -0
  221. data/spec/lib/rewriters/explicit_writer_return_spec.rb +186 -0
  222. data/spec/lib/rewriters/js_reserved_words_spec.rb +116 -0
  223. data/spec/lib/rewriters/logical_operator_assignment_spec.rb +202 -0
  224. data/spec/lib/rewriters/opal_engine_check_spec.rb +82 -0
  225. data/spec/lib/rewriters/rubyspec/filters_rewriter_spec.rb +53 -0
  226. data/spec/lib/simple_server_spec.rb +54 -0
  227. data/spec/mspec-opal/formatters.rb +65 -17
  228. data/spec/mspec-opal/runner.rb +47 -67
  229. data/spec/opal/core/date_spec.rb +14 -0
  230. data/spec/opal/core/exception_spec.rb +10 -0
  231. data/spec/opal/core/hash/internals_spec.rb +10 -10
  232. data/spec/opal/core/kernel/rand_spec.rb +0 -4
  233. data/spec/opal/core/kernel/respond_to_spec.rb +5 -2
  234. data/spec/opal/core/language/constant_lookup_spec.rb +38 -0
  235. data/spec/opal/core/language/predefined_spec.rb +1 -1
  236. data/spec/opal/core/language/safe_navigator_spec.rb +7 -0
  237. data/spec/opal/core/language/send_spec.rb +1 -9
  238. data/spec/opal/core/language/string_spec.rb +8 -8
  239. data/spec/opal/core/language/versions/def_2_0_spec.rb +0 -4
  240. data/spec/opal/core/language_spec.rb +32 -0
  241. data/spec/opal/core/module/const_get_spec.rb +1 -1
  242. data/spec/opal/core/runtime/is_a_spec.rb +36 -0
  243. data/spec/opal/core/runtime/rescue_spec.rb +35 -0
  244. data/spec/opal/core/runtime_spec.rb +4 -4
  245. data/spec/opal/core/string_spec.rb +8 -8
  246. data/spec/opal/core/time_spec.rb +26 -17
  247. data/spec/opal/stdlib/erb/quoted.opalerb +1 -1
  248. data/spec/opal/stdlib/json/parse_spec.rb +4 -0
  249. data/spec/opal/stdlib/native/hash_spec.rb +16 -0
  250. data/spec/ruby_specs +2 -1
  251. data/spec/spec_helper.rb +1 -0
  252. data/spec/support/rewriters_helper.rb +24 -0
  253. data/stdlib/base64.rb +4 -2
  254. data/stdlib/bigdecimal/bignumber.js.rb +1 -1
  255. data/stdlib/date.rb +18 -19
  256. data/stdlib/json.rb +16 -4
  257. data/stdlib/nashorn/file.rb +15 -0
  258. data/stdlib/native.rb +21 -12
  259. data/stdlib/nodejs/dir.rb +1 -1
  260. data/stdlib/nodejs/file.rb +49 -20
  261. data/stdlib/nodejs/io.rb +22 -1
  262. data/stdlib/nodejs/{node_modules/js-yaml/dist/js-yaml.js → js-yaml-3-6-1.js} +815 -626
  263. data/stdlib/nodejs/kernel.rb +3 -1
  264. data/stdlib/nodejs/package.json +0 -1
  265. data/stdlib/nodejs/stacktrace.rb +163 -0
  266. data/stdlib/nodejs/yaml.rb +2 -1
  267. data/stdlib/opal-platform.rb +15 -0
  268. data/stdlib/opal/platform.rb +5 -13
  269. data/stdlib/pathname.rb +1 -1
  270. data/stdlib/strscan.rb +15 -1
  271. data/stdlib/yaml.rb +1 -1
  272. data/tasks/benchmarking.rake +9 -0
  273. data/tasks/building.rake +24 -20
  274. data/tasks/linting.rake +24 -13
  275. data/tasks/testing.rake +322 -205
  276. data/tasks/testing/mspec_special_calls.rb +44 -15
  277. data/tasks/testing/opal_rspec_smoketest.Gemfile +13 -0
  278. data/test/nodejs/fixtures/hello.rb +1 -0
  279. data/test/nodejs/test_file.rb +57 -0
  280. data/test/nodejs/test_io.rb +18 -0
  281. data/test/nodejs/test_opal_builder.rb +12 -0
  282. data/test/opal/unsupported_and_bugs.rb +9 -0
  283. metadata +127 -240
  284. data/lib/opal/parser/grammar.rb +0 -6157
  285. data/lib/opal/parser/grammar.y +0 -2011
  286. data/lib/opal/parser/keywords.rb +0 -66
  287. data/lib/opal/parser/lexer.rb +0 -1352
  288. data/lib/opal/parser/parser_scope.rb +0 -28
  289. data/lib/opal/parser/sexp.rb +0 -90
  290. data/lib/opal/sprockets.rb +0 -77
  291. data/lib/opal/sprockets/environment.rb +0 -23
  292. data/lib/opal/sprockets/erb.rb +0 -28
  293. data/lib/opal/sprockets/path_reader.rb +0 -36
  294. data/lib/opal/sprockets/processor.rb +0 -173
  295. data/lib/opal/sprockets/server.rb +0 -133
  296. data/lib/opal/sprockets/source_map_header_patch.rb +0 -41
  297. data/lib/opal/sprockets/source_map_server.rb +0 -117
  298. data/spec/filters/bugs/compiler_opal.rb +0 -5
  299. data/spec/filters/bugs/language_opal.rb +0 -88
  300. data/spec/filters/unsupported/module.rb +0 -8
  301. data/spec/lib/compiler/pre_processed_conditionals_spec.rb +0 -87
  302. data/spec/lib/lexer_spec.rb +0 -110
  303. data/spec/lib/parser/alias_spec.rb +0 -26
  304. data/spec/lib/parser/and_spec.rb +0 -13
  305. data/spec/lib/parser/aref_spec.rb +0 -10
  306. data/spec/lib/parser/attrasgn_spec.rb +0 -28
  307. data/spec/lib/parser/begin_spec.rb +0 -42
  308. data/spec/lib/parser/block_spec.rb +0 -12
  309. data/spec/lib/parser/break_spec.rb +0 -17
  310. data/spec/lib/parser/call_spec.rb +0 -201
  311. data/spec/lib/parser/class_spec.rb +0 -35
  312. data/spec/lib/parser/comments_spec.rb +0 -11
  313. data/spec/lib/parser/def_spec.rb +0 -109
  314. data/spec/lib/parser/if_spec.rb +0 -26
  315. data/spec/lib/parser/iter_spec.rb +0 -59
  316. data/spec/lib/parser/lambda_spec.rb +0 -219
  317. data/spec/lib/parser/literal_spec.rb +0 -118
  318. data/spec/lib/parser/masgn_spec.rb +0 -37
  319. data/spec/lib/parser/module_spec.rb +0 -27
  320. data/spec/lib/parser/not_spec.rb +0 -21
  321. data/spec/lib/parser/op_asgn1_spec.rb +0 -23
  322. data/spec/lib/parser/op_asgn2_spec.rb +0 -23
  323. data/spec/lib/parser/op_asgn_spec.rb +0 -17
  324. data/spec/lib/parser/or_spec.rb +0 -13
  325. data/spec/lib/parser/return_spec.rb +0 -22
  326. data/spec/lib/parser/sclass_spec.rb +0 -21
  327. data/spec/lib/parser/string_spec.rb +0 -286
  328. data/spec/lib/parser/super_spec.rb +0 -20
  329. data/spec/lib/parser/unary_spec.rb +0 -52
  330. data/spec/lib/parser/undef_spec.rb +0 -19
  331. data/spec/lib/parser/unless_spec.rb +0 -13
  332. data/spec/lib/parser/variables_spec.rb +0 -112
  333. data/spec/lib/parser/while_spec.rb +0 -15
  334. data/spec/lib/parser/yield_spec.rb +0 -20
  335. data/spec/lib/sprockets/erb_spec.rb +0 -38
  336. data/spec/lib/sprockets/path_reader_spec.rb +0 -41
  337. data/spec/lib/sprockets/processor_spec.rb +0 -79
  338. data/spec/lib/sprockets/server_spec.rb +0 -102
  339. data/spec/lib/sprockets_spec.rb +0 -39
  340. data/spec/lib/tilt/opal_spec.rb +0 -37
  341. data/spec/opal/core/language/block_spec.rb +0 -538
  342. data/spec/opal/core/language/proc_spec.rb +0 -263
  343. data/spec/opal/core/language/variables_spec.rb +0 -1366
  344. data/spec/opal/core/runtime/block_send_spec.rb +0 -28
  345. data/spec/opal/core/runtime/send_spec.rb +0 -34
  346. data/spec/support/parser_helpers.rb +0 -37
  347. data/stdlib/nodejs/node_modules/js-yaml/HISTORY.md +0 -277
  348. data/stdlib/nodejs/node_modules/js-yaml/LICENSE +0 -21
  349. data/stdlib/nodejs/node_modules/js-yaml/README.md +0 -288
  350. data/stdlib/nodejs/node_modules/js-yaml/bin/js-yaml.js +0 -140
  351. data/stdlib/nodejs/node_modules/js-yaml/bower.json +0 -23
  352. data/stdlib/nodejs/node_modules/js-yaml/dist/js-yaml.min.js +0 -3
  353. data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.js +0 -102
  354. data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.yml +0 -18
  355. data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.js +0 -31
  356. data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.json +0 -22
  357. data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.js +0 -18
  358. data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.yml +0 -197
  359. data/stdlib/nodejs/node_modules/js-yaml/index.js +0 -7
  360. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml.js +0 -39
  361. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/common.js +0 -62
  362. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/dumper.js +0 -554
  363. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/exception.js +0 -25
  364. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/loader.js +0 -1581
  365. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/mark.js +0 -78
  366. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema.js +0 -103
  367. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/core.js +0 -18
  368. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +0 -25
  369. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +0 -28
  370. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +0 -17
  371. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/json.js +0 -25
  372. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type.js +0 -61
  373. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/binary.js +0 -133
  374. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/bool.js +0 -37
  375. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/float.js +0 -110
  376. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/int.js +0 -183
  377. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/function.js +0 -85
  378. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +0 -84
  379. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +0 -27
  380. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/map.js +0 -8
  381. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/merge.js +0 -12
  382. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/null.js +0 -36
  383. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/omap.js +0 -56
  384. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/pairs.js +0 -61
  385. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/seq.js +0 -8
  386. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/set.js +0 -33
  387. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/str.js +0 -8
  388. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +0 -98
  389. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/HISTORY.md +0 -115
  390. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/LICENSE +0 -21
  391. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/README.md +0 -239
  392. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/arguments.js +0 -36
  393. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/choice.js +0 -22
  394. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/constants.js +0 -59
  395. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/help.js +0 -13
  396. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/nargs.js +0 -33
  397. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/parents.js +0 -28
  398. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/prefix_chars.js +0 -23
  399. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sub_commands.js +0 -49
  400. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sum.js +0 -35
  401. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/testformatters.js +0 -270
  402. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/index.js +0 -1
  403. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action.js +0 -146
  404. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append.js +0 -55
  405. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append/constant.js +0 -47
  406. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/count.js +0 -40
  407. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/help.js +0 -48
  408. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store.js +0 -50
  409. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/constant.js +0 -43
  410. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/false.js +0 -27
  411. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/true.js +0 -26
  412. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/subparsers.js +0 -148
  413. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/version.js +0 -50
  414. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action_container.js +0 -481
  415. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argparse.js +0 -14
  416. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/error.js +0 -50
  417. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/exclusive.js +0 -54
  418. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/group.js +0 -75
  419. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument_parser.js +0 -1168
  420. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/const.js +0 -18
  421. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/added_formatters.js +0 -88
  422. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/formatter.js +0 -798
  423. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/namespace.js +0 -77
  424. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.npmignore +0 -2
  425. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.travis.yml +0 -8
  426. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/README.markdown +0 -825
  427. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/bower.json +0 -33
  428. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/component.json +0 -11
  429. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/foo.js +0 -10
  430. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/gulpfile.js +0 -26
  431. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/lib/underscore.string.js +0 -673
  432. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/libpeerconnection.log +0 -0
  433. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/package.json +0 -107
  434. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/LICENSE +0 -23
  435. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/README.md +0 -22
  436. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/package.json +0 -69
  437. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore-min.js +0 -6
  438. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore.js +0 -1415
  439. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/package.json +0 -62
  440. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/README.md +0 -73
  441. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esparse.js +0 -117
  442. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js +0 -177
  443. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/esprima.js +0 -3908
  444. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/package.json +0 -69
  445. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/compat.js +0 -239
  446. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/reflect.js +0 -422
  447. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/run.js +0 -66
  448. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/runner.js +0 -387
  449. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/test.js +0 -20238
  450. data/stdlib/nodejs/node_modules/js-yaml/package.json +0 -83
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 2232c6adf4aadc2bb0f52effbbd2d1072924e65ba3a19dc75ae0bb7692035043
4
- data.tar.gz: a2537db58f0b9295965cbd530de021538929398344a902ee14b959773ea98a68
2
+ SHA1:
3
+ metadata.gz: d3c1ac220f86c552e522eaad298f9e4dcce4e8f6
4
+ data.tar.gz: 5294190e2a015e036d8824126837fb8ead1e219a
5
5
  SHA512:
6
- metadata.gz: fbdfc018a1bce40f3ea6f3f7fc7a35c25c8184a80ac558e661b38cd8a8695884c94fc20601deec82a89d5b26d4df63a36640c87d2612ff471a89a9743e5172a8
7
- data.tar.gz: 409c9f155157626efe3b86799fdf09d2a8db128ae73a124aee4b14a5b0530c604a629664ba8b42bb7f2c2c99368324349d4a33ae568fdfa8407b17b01eed089d
6
+ metadata.gz: 9c84a1b7d4c5c1e493dcdff3f8823141fac4048b96ac409ded2ce223b4e591d7fccbb00d7edd00f4cc8eafe76385c3caa8d540bf285cada64fc9d24ec5048072
7
+ data.tar.gz: 8e8a3ec7a272f221856d36787fe8edf774f418694fb28b18f30b3e38d8c10ee059154c2d3218b29300bd8e5818667ba3481bb2b499dfeae19641526477d60ee0
@@ -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/*"
@@ -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
@@ -6,49 +6,53 @@ cache:
6
6
  bundler: true
7
7
  directories:
8
8
  - /home/travis/.nvm/
9
-
9
+ - smoke_test_opal_rspec
10
10
 
11
11
  matrix:
12
12
  fast_finish: true
13
13
 
14
14
  include:
15
- - rvm: 2.3.7
16
- 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=
17
21
 
18
- - rvm: 2.3.7
19
- env: RUN=jshint SUITE=stdlib
22
+ - rvm: 2.4.0
23
+ env: RUN=jshint
20
24
 
21
- - rvm: 2.3.7
22
- nvm: "0.10"
25
+ - rvm: 2.4.0
23
26
  env: RUN=mspec_opal_nodejs
24
27
 
25
- - rvm: 2.3.7
26
- nvm: "0.10"
28
+ - rvm: 2.4.0
27
29
  env: RUN=mspec_ruby_nodejs TZ="/usr/share/zoneinfo/Pacific/Fiji"
28
30
 
29
- - rvm: 2.3.7
30
- env: RUN=mspec_ruby_sprockets_phantomjs
31
-
32
- - rvm: 2.3.7
31
+ - rvm: 2.4.0
33
32
  env: RUN=minitest
34
33
 
35
- - rvm: 2.3.7
34
+ - rvm: 2.4.0
36
35
  env: RUN=rspec RACK_VERSION='~> 2.0.0' CHECK_COVERAGE=true
37
36
 
37
+ - rvm: 2.4.0
38
+ env: RUN=smoke_test
39
+
38
40
  - rvm: ruby-head
39
41
  env: RUN=rspec
40
42
 
41
- - rvm: 2.2.10
43
+ - rvm: 2.3.3
44
+ env: RUN=rspec
45
+
46
+ - rvm: 2.2.5
42
47
  env: RUN=rspec TILT_VERSION=2.0.1 SPROCKETS_VERSION='~> 3.7'
43
48
 
44
49
  - rvm: 2.1.10
45
50
  env: RUN=rspec RACK_VERSION='< 2.0'
46
51
 
47
52
  - rvm: 2.0.0
48
- nvm: "0.10"
49
53
  env: RUN="rspec mspec_opal_nodejs" RACK_VERSION='< 2.0'
50
54
 
51
- - rvm: jruby-9.2.0.0
55
+ - rvm: jruby-9.1.7.0
52
56
  env: RUN=rspec
53
57
 
54
58
  - rvm: jruby-head
@@ -57,6 +61,7 @@ matrix:
57
61
  allow_failures:
58
62
  - rvm: ruby-head
59
63
  - rvm: jruby-head
64
+ - env: RUN=smoke_test
60
65
 
61
66
 
62
67
  before_install:
@@ -66,7 +71,7 @@ before_install:
66
71
  - git submodule update --init
67
72
  - npm install -g jshint
68
73
  - npm install -g uglify-js
69
- - export PATH="/usr/local/phantomjs-1.9.8:$PATH"
74
+ - type bundle || gem install bundler
70
75
  - bundle config without doc
71
76
 
72
77
  script:
@@ -77,3 +82,6 @@ notifications:
77
82
  webhooks:
78
83
  urls:
79
84
  - https://webhooks.gitter.im/e/2ea12333adebda0c2289
85
+
86
+ # addons:
87
+ # sauce_connect: true
@@ -20,60 +20,127 @@ Whitespace conventions:
20
20
 
21
21
 
22
22
 
23
- ## [0.10.6](https://github.com/opal/opal/compare/v0.10.5...v0.10.6) - 2018-06-21
24
23
 
24
+ ## [0.11.0] - Unreleased
25
25
 
26
- ### Changed
27
-
28
- - Strip Regexp flags that are unsupported by browsers (backport), previously they were ignored, lately most of them now raise an error for unknown flags.
29
26
 
27
+ ### Added
30
28
 
31
- ### Fixed
32
-
33
- - Fixed a constant reference to `Sprockets::FileNotFound` that previously pointed to `Opal::Sprockets` instead of `::Sprockets`.
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)
34
61
 
35
62
 
63
+ ### Removed
36
64
 
65
+ - Dropped support for IE8 and below, and restricted Safari and Opera support to the last two versions
37
66
 
38
- ## [0.10.5](https://github.com/opal/opal/compare/v0.10.4...v0.10.5) - 2017-06-21
39
67
 
68
+ ### Changed
40
69
 
41
- ### Fixed
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.
42
78
 
43
- - Fix `Time#zone` for zones expressed numerically
44
79
 
80
+ ### Deprecated
45
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).
46
83
 
47
84
 
48
- ## [0.10.4] - 2017-05-07
85
+ ### Removed
49
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).
50
89
 
51
- ### Changed
52
90
 
53
- - Better `Opal::Config` options documentation and organization
54
- - Always cache source-maps at build-time so they're available once enabled
91
+ ### Fixed
55
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
56
122
 
57
123
 
58
124
 
59
125
  ## [0.10.3] - 2016-10-31
60
126
 
61
127
 
62
- ### Fixed
128
+ ### Changed
129
+
130
+ - Avoid special utf-8 chars in method names, now they start with `$$`
63
131
 
64
- - Fixed inheritance from the `Module` class (#1476)
65
- - Fixed source map server with url-encoded paths
66
- - Silence Sprockets 3.7 deprecations, full support for Sprockets 4 will be available in Opal 0.11
67
- - Don't print the full stack trace with deprecation messages
68
132
 
69
133
 
70
134
 
71
135
  ## [0.10.2] - 2016-09-09
72
136
 
73
137
 
74
- ### Changed
138
+ ## Fixed
75
139
 
76
- - Avoid special utf-8 chars in method names, now they start with `$$`
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
77
144
 
78
145
 
79
146
 
@@ -916,8 +983,7 @@ Whitespace conventions:
916
983
 
917
984
 
918
985
 
919
- [0.10.5]: https://github.com/opal/opal/compare/v0.10.4...v0.10.5
920
- [0.10.4]: https://github.com/opal/opal/compare/v0.10.3...v0.10.4
986
+ [0.11.0]: https://github.com/opal/opal/compare/v0.10.3...HEAD
921
987
  [0.10.3]: https://github.com/opal/opal/compare/v0.10.2...v0.10.3
922
988
  [0.10.2]: https://github.com/opal/opal/compare/v0.10.1...v0.10.2
923
989
  [0.10.1]: https://github.com/opal/opal/compare/v0.10.0...v0.10.1
File without changes
data/Gemfile CHANGED
@@ -1,35 +1,33 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
3
 
4
- v = -> version { Gem::Version.new(version) if version }
5
-
6
- ruby_version = v[RUBY_VERSION]
7
-
8
- tilt_version = ENV['TILT_VERSION']
9
- rack_version = ENV['RACK_VERSION']
4
+ tilt_version = ENV['TILT_VERSION']
5
+ rack_version = ENV['RACK_VERSION']
10
6
  sprockets_version = ENV['SPROCKETS_VERSION']
11
7
 
12
8
  # Stick with older racc until
13
9
  # https://github.com/tenderlove/racc/issues/22
14
10
  # is solved.
15
11
  gem 'racc', '< 1.4.10', platform: :jruby
16
- gem 'json', '< 1.8.1', platform: :ruby if ruby_version < v['2.2']
12
+ gem 'json', '< 1.8.1', platform: :ruby if RUBY_VERSION.to_f == 2.1
17
13
  gem 'rubysl', platform: :rbx
18
- gem 'rack-test', '< 1.0' if ruby_version < v['2.2.2']
19
-
20
- # thin requires rack < 2
21
- gem 'puma'
22
-
23
- gem 'rack', rack_version if rack_version
24
- gem 'tilt', tilt_version if tilt_version
14
+ gem 'coveralls', platform: :mri
15
+ gem 'puma' # Some browsers have problems with WEBrick
16
+ gem 'rack', rack_version if rack_version
17
+ gem 'tilt', tilt_version if tilt_version
25
18
  gem 'sprockets', sprockets_version if sprockets_version
19
+ gem 'mspec', path: 'spec/mspec'
26
20
 
27
21
  group :repl do
28
- gem 'therubyracer', platform: :mri, require: 'v8'
29
- gem 'therubyrhino', platform: :jruby
22
+ gem 'therubyracer', platform: :mri, require: false
23
+ gem 'therubyrhino', platform: :jruby, require: false
30
24
  end
31
25
 
32
- unless ENV['CI']
26
+ group :browser do
27
+ gem 'selenium-webdriver', '>= 3.0.0.beta3.1', platform: :mri
28
+ end
29
+
30
+ group :development do
33
31
  gem 'rb-fsevent'
34
32
  gem 'guard', require: false
35
33
 
@@ -37,8 +35,8 @@ unless ENV['CI']
37
35
  gem 'terminal-notifier-guard'
38
36
  gem 'terminal-notifier'
39
37
  end
40
- end
38
+ end unless ENV['CI']
41
39
 
42
- gem 'mspec', path: 'spec/mspec'
43
-
44
- gem 'redcarpet', group: :doc
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]
@@ -2,12 +2,29 @@ version: '{build}'
2
2
 
3
3
  skip_tags: true
4
4
  # AppVeyor automatically skips the build if the commit contains [ci skip] or [skip ci]
5
- skip_commits:
6
- message: /./
5
+ #skip_commits:
6
+ # message: /\[ci skip\]/
7
7
 
8
- clone_depth: 1
8
+ clone_depth: 10
9
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
+
10
27
  build: off
11
28
 
12
29
  test_script:
13
- - echo "Skipping appveyor test on 0-10-stable"
30
+ - bundle exec rake