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
@@ -566,7 +566,7 @@ class String < `String`
566
566
 
567
567
  def inspect
568
568
  %x{
569
- var escapable = /[\\\"\x00-\x1f\x7f-\x9f\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
569
+ var escapable = /[\\\"\x00-\x1f\u007F-\u009F\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
570
570
  meta = {
571
571
  '\u0007': '\\a',
572
572
  '\u001b': '\\e',
@@ -627,6 +627,10 @@ class String < `String`
627
627
  `self.replace(/^\s*/, '')`
628
628
  end
629
629
 
630
+ def ascii_only?
631
+ `self.match(/[ -~\n]*/)[0] === self`
632
+ end
633
+
630
634
  def match(pattern, pos = undefined, &block)
631
635
  if String === pattern || pattern.respond_to?(:to_str)
632
636
  pattern = Regexp.new(pattern.to_str)
@@ -957,7 +961,7 @@ class String < `String`
957
961
  string = self.toString(),
958
962
  index = 0,
959
963
  match,
960
- i;
964
+ i, ii;
961
965
 
962
966
  if (pattern.$$is_regexp) {
963
967
  pattern = new RegExp(pattern.source, 'gm' + (pattern.ignoreCase ? 'i' : ''));
@@ -992,7 +996,7 @@ class String < `String`
992
996
 
993
997
  if (limit < 0) {
994
998
  if (match !== null && match[0] === '' && pattern.source.indexOf('(?=') === -1) {
995
- for (i = 0; i < match.length; i++) {
999
+ for (i = 0, ii = match.length; i < ii; i++) {
996
1000
  result.push('');
997
1001
  }
998
1002
  }
@@ -1218,13 +1222,17 @@ class String < `String`
1218
1222
  end
1219
1223
 
1220
1224
  def to_proc
1221
- # Give name to self in case this proc is passed to instance_eval
1222
- sym = self
1225
+ sym = `self.valueOf()`
1223
1226
 
1224
1227
  proc do |*args, &block|
1225
- raise ArgumentError, "no receiver given" if args.empty?
1226
- obj = args.shift
1227
- obj.__send__(sym, *args, &block)
1228
+ %x{
1229
+ if (args.length === 0) {
1230
+ #{raise ArgumentError, "no receiver given"}
1231
+ }
1232
+ var obj = args.shift();
1233
+ if (obj == null) obj = nil;
1234
+ return Opal.send(obj, sym, args, block);
1235
+ }
1228
1236
  end
1229
1237
  end
1230
1238
 
@@ -1692,6 +1700,29 @@ class String < `String`
1692
1700
  def self._load(*args)
1693
1701
  self.new(*args)
1694
1702
  end
1703
+
1704
+ def unpack(pattern)
1705
+ %x{
1706
+ function stringToBytes(string) {
1707
+ var i,
1708
+ singleByte,
1709
+ l = string.length,
1710
+ result = [];
1711
+
1712
+ for (i = 0; i < l; i++) {
1713
+ singleByte = string.charCodeAt(i);
1714
+ result.push(singleByte);
1715
+ }
1716
+ return result;
1717
+ }
1718
+ }
1719
+ case pattern
1720
+ when "U*", "C*"
1721
+ `stringToBytes(self);`
1722
+ else
1723
+ raise NotImplementedError
1724
+ end
1725
+ end
1695
1726
  end
1696
1727
 
1697
1728
  Symbol = String
@@ -93,8 +93,8 @@ Encoding.register "UTF-8", aliases: ["CP65001"], ascii: true do
93
93
  }
94
94
  end
95
95
 
96
- def bytesize
97
- bytes.length
96
+ def bytesize(string)
97
+ string.bytes.length
98
98
  end
99
99
  end
100
100
 
@@ -110,8 +110,42 @@ Encoding.register "UTF-16LE" do
110
110
  }
111
111
  end
112
112
 
113
- def bytesize
114
- bytes.length
113
+ def bytesize(string)
114
+ string.bytes.length
115
+ end
116
+ end
117
+
118
+ Encoding.register "UTF-16BE" do
119
+ def each_byte(string, &block)
120
+ %x{
121
+ for (var i = 0, length = string.length; i < length; i++) {
122
+ var code = string.charCodeAt(i);
123
+
124
+ #{yield `code >> 8`};
125
+ #{yield `code & 0xff`};
126
+ }
127
+ }
128
+ end
129
+
130
+ def bytesize(string)
131
+ string.bytes.length
132
+ end
133
+ end
134
+
135
+ Encoding.register "UTF-32LE" do
136
+ def each_byte(string, &block)
137
+ %x{
138
+ for (var i = 0, length = string.length; i < length; i++) {
139
+ var code = string.charCodeAt(i);
140
+
141
+ #{yield `code & 0xff`};
142
+ #{yield `code >> 8`};
143
+ }
144
+ }
145
+ end
146
+
147
+ def bytesize(string)
148
+ string.bytes.length
115
149
  end
116
150
  end
117
151
 
@@ -124,8 +158,8 @@ Encoding.register "ASCII-8BIT", aliases: ["BINARY"], ascii: true do
124
158
  }
125
159
  end
126
160
 
127
- def bytesize
128
- bytes.length
161
+ def bytesize(string)
162
+ string.bytes.length
129
163
  end
130
164
  end
131
165
 
@@ -157,7 +191,12 @@ class String
157
191
  end
158
192
 
159
193
  def force_encoding(encoding)
160
- encoding = Opal.coerce_to!(encoding, String, :to_str)
194
+ %x{
195
+ if (encoding === self.encoding) {
196
+ return self;
197
+ }
198
+ }
199
+ encoding = Opal.coerce_to!(encoding, String, :to_s)
161
200
  encoding = Encoding.find(encoding)
162
201
 
163
202
  return self if encoding == @encoding
@@ -174,4 +213,9 @@ class String
174
213
  def getbyte(idx)
175
214
  @encoding.getbyte(self, idx)
176
215
  end
216
+
217
+ # stub
218
+ def valid_encoding?
219
+ true
220
+ end
177
221
  end
@@ -261,6 +261,26 @@ class Struct
261
261
  }
262
262
  end
263
263
 
264
+ def dig(key, *keys)
265
+ if `key.$$is_string && self.$$data.hasOwnProperty(key)`
266
+ item = `self.$$data[key] || nil`
267
+ else
268
+ item = nil
269
+ end
270
+
271
+ %x{
272
+ if (item === nil || keys.length === 0) {
273
+ return item;
274
+ }
275
+ }
276
+
277
+ unless item.respond_to?(:dig)
278
+ raise TypeError, "#{item.class} does not have #dig method"
279
+ end
280
+
281
+ item.dig(*keys)
282
+ end
283
+
264
284
  def self._load(args)
265
285
  attributes = args.values_at(*members)
266
286
  self.new(*attributes)
@@ -279,7 +279,7 @@ class Time < `Date`
279
279
  end
280
280
 
281
281
  def ==(other)
282
- `#{to_f} === #{other.to_f}`
282
+ Time === other && (`#{to_f} === #{other.to_f}`)
283
283
  end
284
284
 
285
285
  def asctime
@@ -391,7 +391,7 @@ class Time < `Date`
391
391
  result = string.match(/[A-Z]{3,4}/)[0];
392
392
  }
393
393
  else {
394
- result = string.match(/\((.+)\)(?:\s|$)/)[1]
394
+ result = string.match(/\([^)]+\)/)[0].match(/[A-Z]/g).join('');
395
395
  }
396
396
 
397
397
  if (result == "GMT" && /(GMT\W*\d{4})/.test(string)) {
@@ -694,7 +694,7 @@ class Time < `Date`
694
694
  `#{wday} == 2`
695
695
  end
696
696
 
697
- alias tv_sec sec
697
+ alias tv_sec to_i
698
698
 
699
699
  alias tv_usec usec
700
700
 
@@ -1,5 +1,5 @@
1
1
  # regexp matches
2
- $& = $~ = $` = $' = nil
2
+ %x{$gvars['&'] = $gvars['~'] = $gvars['`'] = $gvars["'"] = nil}
3
3
 
4
4
  # requires
5
5
  $LOADED_FEATURES = $" = `Opal.loaded_features`
@@ -13,5 +13,6 @@ require 'corelib/main'
13
13
  require 'corelib/dir'
14
14
  require 'corelib/file'
15
15
  require 'corelib/process'
16
+ require 'corelib/random'
16
17
 
17
18
  require 'corelib/unsupported'
@@ -1,12 +1,16 @@
1
1
  opal_filter "Array" do
2
+ fails "Array#delete_if updates the receiver after all blocks"
3
+ fails "Array#flatten does not call #to_ary on elements beyond the given level"
2
4
  fails "Array#flatten performs respond_to? and method_missing-aware checks when coercing elements to array"
3
5
  fails "Array#flatten with a non-Array object in the Array calls #method_missing if defined"
4
6
  fails "Array#join raises a NoMethodError if an element does not respond to #to_str, #to_ary, or #to_s"
7
+ fails "Array#keep_if updates the receiver after all blocks"
5
8
  fails "Array#partition returns in the left array values for which the block evaluates to true"
6
9
  fails "Array#rassoc calls elem == obj on the second element of each contained array"
7
10
  fails "Array#rassoc does not check the last element in each contained but speficically the second"
11
+ fails "Array#reject! updates the receiver after all blocks"
8
12
  fails "Array#select returns a new array of elements for which block is true"
13
+ fails "Array#select! updates the receiver after all blocks"
9
14
  fails "Array#uniq! properly handles recursive arrays"
10
15
  fails "Array#zip fills nil when the given enumereator is shorter than self"
11
- fails "Array.[] can unpack 2 or more nested referenced array"
12
16
  end
@@ -1,16 +1,13 @@
1
1
  opal_filter "BasicObject" do
2
- fails "BasicObject does not define built-in constants (according to const_defined?)"
3
- fails "BasicObject does not define built-in constants (according to defined?)"
4
- fails "BasicObject raises NameError when referencing built-in constants"
5
2
  fails "BasicObject raises NoMethodError for nonexistent methods after #method_missing is removed"
6
3
  fails "BasicObject#initialize does not accept arguments"
7
4
  fails "BasicObject#instance_eval raises a TypeError when defining methods on an immediate"
8
5
  fails "BasicObject#instance_eval raises a TypeError when defining methods on numerics"
9
- fails "BasicObject#instance_eval sets class variables in the receiver"
10
6
  fails "BasicObject#instance_eval evaluates string with given filename and linenumber"
11
7
  fails "BasicObject#instance_exec binds the block's binding self to the receiver"
12
8
  fails "BasicObject#instance_exec raises a LocalJumpError unless given a block"
13
9
  fails "BasicObject#instance_exec raises a TypeError when defining methods on an immediate"
14
10
  fails "BasicObject#instance_exec raises a TypeError when defining methods on numerics"
15
- fails "BasicObject#instance_exec sets class variables in the receiver"
11
+ fails "BasicObject#method_missing for an instance sets the receiver of the raised NoMethodError"
12
+ fails "BasicObject#method_missing for an instance sets the receiver of the raised NoMethodError"
16
13
  end
@@ -1,8 +1,6 @@
1
1
  opal_filter "BigDecimal" do
2
- fails "BigDecimal#% raises TypeError if the argument cannot be coerced to BigDecimal"
3
2
  fails "BigDecimal#% returns NaN if NaN is involved"
4
3
  fails "BigDecimal#% returns NaN if the dividend is Infinity"
5
- fails "BigDecimal#% returns a [Float value] when the argument is Float"
6
4
  fails "BigDecimal#% returns self modulo other"
7
5
  fails "BigDecimal#% returns the dividend if the divisor is Infinity"
8
6
  fails "BigDecimal#** 0 to power of 0 is 1"
@@ -21,16 +19,13 @@ opal_filter "BigDecimal" do
21
19
  fails "BigDecimal#<=> returns 1 if a > b" #fails only with mock object
22
20
  fails "BigDecimal#> properly handles infinity values" #fails only with mock object
23
21
  fails "BigDecimal#>= properly handles infinity values" #fails only with mock object
24
- fails "BigDecimal#ceil returns n digits right of the decimal point if given n > 0"
25
22
  fails "BigDecimal#ceil returns the smallest integer greater or equal to self, if n is unspecified"
26
23
  fails "BigDecimal#ceil sets n digits left of the decimal point to 0, if given n < 0"
27
24
  fails "BigDecimal#coerce returns [other, self] both as BigDecimal"
28
25
  fails "BigDecimal#div returns a / b with optional precision" #fails the case of > 20 decimal places for to_s('F')
29
26
  fails "BigDecimal#div with precision set to 0 returns a / b" #fails a single assertion: @one.send(@method, BigDecimal('-2E5555'), *@object).should == BigDecimal('-0.5E-5555')
30
- fails "BigDecimal#divmod Can be reversed with * and +"
31
27
  fails "BigDecimal#divmod array contains quotient and modulus as BigDecimal"
32
- fails "BigDecimal#divmod divides value, returns an array"
33
- fails "BigDecimal#divmod raises TypeError if the argument cannot be coerced to BigDecimal"
28
+ fails "BigDecimal#divmod can be reversed with * and +" # Expected 0 to equal -1
34
29
  fails "BigDecimal#divmod returns an array of Infinity and NaN if the dividend is Infinity"
35
30
  fails "BigDecimal#divmod returns an array of two NaNs if NaN is involved"
36
31
  fails "BigDecimal#divmod returns an array of zero and the dividend if the divisor is Infinity"
@@ -57,18 +52,10 @@ opal_filter "BigDecimal" do
57
52
  fails "BigDecimal#inspect looks like this"
58
53
  fails "BigDecimal#inspect returns String starting with #"
59
54
  fails "BigDecimal#inspect value after first comma is value as string"
60
- fails "BigDecimal#mod_part_of_divmod raises TypeError if the argument cannot be coerced to BigDecimal"
61
55
  fails "BigDecimal#mod_part_of_divmod returns NaN if NaN is involved"
62
56
  fails "BigDecimal#mod_part_of_divmod returns NaN if the dividend is Infinity"
63
- fails "BigDecimal#mod_part_of_divmod returns a [Float value] when the argument is Float"
64
57
  fails "BigDecimal#mod_part_of_divmod returns self modulo other"
65
58
  fails "BigDecimal#mod_part_of_divmod returns the dividend if the divisor is Infinity"
66
- fails "BigDecimal#modulo raises TypeError if the argument cannot be coerced to BigDecimal"
67
- fails "BigDecimal#modulo returns NaN if NaN is involved"
68
- fails "BigDecimal#modulo returns NaN if the dividend is Infinity"
69
- fails "BigDecimal#modulo returns a [Float value] when the argument is Float"
70
- fails "BigDecimal#modulo returns self modulo other"
71
- fails "BigDecimal#modulo returns the dividend if the divisor is Infinity"
72
59
  fails "BigDecimal#power 0 to power of 0 is 1"
73
60
  fails "BigDecimal#power 0 to powers < 0 is Infinity"
74
61
  fails "BigDecimal#power other powers of 0 are 0"
@@ -100,13 +87,13 @@ opal_filter "BigDecimal" do
100
87
  fails "BigDecimal#round uses default rounding method unless given"
101
88
  fails "BigDecimal#sign returns negative value if BigDecimal less than 0"
102
89
  fails "BigDecimal#sign returns positive value if BigDecimal greater than 0"
103
- fails "BigDecimal#split First value: -1 for numbers < 0"
104
- fails "BigDecimal#split First value: 0 if BigDecimal is NaN"
105
- fails "BigDecimal#split First value: 1 for numbers > 0"
106
- fails "BigDecimal#split Fourth value: The exponent"
107
- fails "BigDecimal#split Second value: a string with the significant digits"
108
- fails "BigDecimal#split Third value: the base (currently always ten)"
90
+ fails "BigDecimal#split first value: -1 for numbers < 0" # NoMethodError: undefined method `split' for 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593014782083152134043
91
+ fails "BigDecimal#split first value: 0 if BigDecimal is NaN" # NoMethodError: undefined method `split' for 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593014782083152134043
92
+ fails "BigDecimal#split first value: 1 for numbers > 0" # NoMethodError: undefined method `split' for 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593014782083152134043
93
+ fails "BigDecimal#split fourth value: the exponent" # NoMethodError: undefined method `split' for 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593014782083152134043
94
+ fails "BigDecimal#split second value: a string with the significant digits" # NoMethodError: undefined method `split' for 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593014782083152134043
109
95
  fails "BigDecimal#split splits BigDecimal in an array with four values"
96
+ fails "BigDecimal#split third value: the base (currently always ten)" # NoMethodError: undefined method `split' for 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593014782083152134043
110
97
  fails "BigDecimal#sqrt raises ArgumentError if 2 arguments are given"
111
98
  fails "BigDecimal#sqrt raises ArgumentError if a negative number is given"
112
99
  fails "BigDecimal#sqrt raises ArgumentError when no argument is given"
@@ -147,12 +134,11 @@ opal_filter "BigDecimal" do
147
134
  fails "BigDecimal.mode raise an exception if the flag is true"
148
135
  fails "BigDecimal.mode returns Infinity when too big"
149
136
  fails "BigDecimal.mode returns the appropriate value and continue the computation if the flag is false"
150
- fails "BigDecimal.new Number of significant digits >= given precision"
137
+ fails "BigDecimal.new accepts significant digits >= given precision" # NoMethodError: undefined method `precs' for 3.1415923
151
138
  fails "BigDecimal.new allows for [eEdD] as exponent separator"
152
139
  fails "BigDecimal.new allows for underscores in all parts"
153
140
  fails "BigDecimal.new creates a new object of class BigDecimal"
154
141
  fails "BigDecimal.new determines precision from initial value"
155
- fails "BigDecimal.new ignores leading whitespace"
156
142
  fails "BigDecimal.new ignores trailing garbage"
157
143
  fails "BigDecimal.new raises ArgumentError when Float is used without precision"
158
144
  fails "BigDecimal.new treats invalid strings as 0.0"
@@ -3,8 +3,9 @@ opal_filter "Class" do
3
3
  fails "Class#dup duplicates both the class and the singleton class"
4
4
  fails "Class#dup retains an included module in the ancestor chain for the singleton class"
5
5
  fails "Class#dup retains the correct ancestor chain for the singleton class"
6
- fails "Class#initialize raises a TypeError when called on already initialized classes"
7
6
  fails "Class#initialize raises a TypeError when called on BasicObject"
7
+ fails "Class#initialize raises a TypeError when called on already initialized classes"
8
8
  fails "Class#initialize when given the Class raises a TypeError"
9
+ fails "Class#new uses the internal allocator and does not call #allocate" # RuntimeError: allocate should not be called
9
10
  fails "Class.new raises a TypeError if passed a metaclass"
10
11
  end
@@ -0,0 +1,5 @@
1
+ opal_filter "Comparable" do
2
+ fails "Comparable#== when #<=> raises an exception if it is a StandardError lets it go through"
3
+ fails "Comparable#== when #<=> raises an exception if it is a subclass of StandardError lets it go through"
4
+ fails "Comparable#== when #<=> returns nor nil neither an Integer raises an ArgumentError"
5
+ end
@@ -5,8 +5,8 @@ opal_filter "Date" do
5
5
  fails "Date#civil creates a Date for different calendar reform dates"
6
6
  fails "Date#civil doesn't create dates for invalid arguments"
7
7
  fails "Date#commercial creates a Date for Julian Day Number day 0 by default"
8
- fails "Date#commercial Creates a Date for the correct day given the year, week and day number"
9
- fails "Date#commercial Creates a Date for the monday in the year and week given"
8
+ fails "Date#commercial creates a Date for the correct day given the year, week and day number" # NoMethodError: undefined method `commercial' for Date
9
+ fails "Date#commercial creates a Date for the monday in the year and week given" # NoMethodError: undefined method `commercial' for Date
10
10
  fails "Date#commercial creates only Date objects for valid weeks"
11
11
  fails "Date#cwyear determines the commercial year"
12
12
  fails "Date#day_fraction determines the day fraction"
@@ -47,9 +47,9 @@ opal_filter "Date" do
47
47
  fails "Date#strptime parses a commercial week"
48
48
  fails "Date#strptime parses a commercial year with leading zeroes"
49
49
  fails "Date#strptime parses a commercial year with only two digits"
50
+ fails "Date#strptime parses a date given MM/DD/YY"
50
51
  fails "Date#strptime parses a date given as YYYY-MM-DD"
51
52
  fails "Date#strptime parses a date given in full notation"
52
- fails "Date#strptime parses a date given MM/DD/YY"
53
53
  fails "Date#strptime parses a date with slashes"
54
54
  fails "Date#strptime parses a full date"
55
55
  fails "Date#strptime parses a full day name"
@@ -1,6 +1,9 @@
1
1
  opal_filter "Enumerable" do
2
+ fails "Enumerable#chunk_while on a single-element array ignores the block and returns an enumerator that yields [element]" # Expected [] to equal [[1]]
2
3
  fails "Enumerable#first returns a gathered array from yield parameters"
3
4
  fails "Enumerable#grep with a block calls the block with gathered array when yielded with multiple arguments"
5
+ fails "Enumerable#grep_v with block calls the block with gathered array when yielded with multiple arguments"
6
+ fails "Enumerable#grep_v without block compares pattern with gathered array when yielded with multiple arguments"
4
7
  fails "Enumerable#max_by when called with an argument n when n is nil returns the maximum element"
5
8
  fails "Enumerable#max_by when called with an argument n with a block on a enumerable of length x where x < n returns an array containing the maximum n elements of length n"
6
9
  fails "Enumerable#max_by when called with an argument n with a block returns an array containing the maximum n elements based on the block's value"
@@ -23,17 +26,8 @@ opal_filter "Enumerable" do
23
26
  fails "Enumerable#minmax_by returns the object that appears first in #each in case of a tie"
24
27
  fails "Enumerable#minmax_by uses min/max.<=>(current) to determine order"
25
28
  fails "Enumerable#reverse_each gathers whole arrays as elements when each yields multiple"
26
- fails "Enumerable#slice_after raises an ArgumentError when given an incorrect number of arguments"
27
- fails "Enumerable#slice_after when given a block and an argument raises an ArgumentError"
28
- fails "Enumerable#slice_after when given a block and no argument calls the block to determine when to yield"
29
- fails "Enumerable#slice_after when given an argument and no block calls === on the argument to determine when to yield"
30
- fails "Enumerable#slice_after when given an argument and no block doesn't yield an empty array if the filter matches the first entry or the last entry"
31
- fails "Enumerable#slice_after when given an argument and no block uses standard boolean as a test"
32
- fails "Enumerable#slice_when when given a block calls the block for length of the receiver enumerable minus one times"
33
- fails "Enumerable#slice_when when given a block returns an enumerator"
34
- fails "Enumerable#slice_when when given a block splits chunks between adjacent elements i and j where the block returns true"
35
- fails "Enumerable#slice_when when not given a block raises an ArgumentError"
36
29
  fails "Enumerable#slice_when when an iterator method yields more than one value processes all yielded values"
30
+ fails "Enumerable#slice_when when given a block doesn't yield an empty array on a small enumerable" # Expected [] to equal [[42]]
37
31
  fails "Enumerable#sort_by returns an array of elements when a block is supplied and #map returns an enumerable"
38
32
  fails "Enumerable#take_while calls the block with initial args when yielded with multiple arguments"
39
33
  fails "Enumerable#to_h calls #to_ary on contents"
@@ -46,5 +40,4 @@ opal_filter "Enumerable" do
46
40
  fails "Enumerable#zip converts arguments to enums using #to_enum"
47
41
  fails "Enumerable#zip gathers whole arrays as elements when each yields multiple"
48
42
  fails "Enumerable#zip passes each element of the result array to a block and return nil if a block is given"
49
- fails "when an iterator method yields more than one value processes all yielded values"
50
43
  end
@@ -8,15 +8,13 @@ opal_filter "Enumerator" do
8
8
  fails "Enumerator#feed returns nil"
9
9
  fails "Enumerator#feed sets the future return value of yield if called before advancing the iterator"
10
10
  fails "Enumerator#feed sets the return value of Yielder#yield"
11
- fails "Enumerator#initialize is a private method"
12
- fails "Enumerator#initialize on frozen instance raises a RuntimeError"
13
11
  fails "Enumerator#initialize returns self when given a block"
14
12
  fails "Enumerator#initialize returns self when given an object"
15
13
  fails "Enumerator#initialize sets size to nil if size is not given"
16
14
  fails "Enumerator#initialize sets size to nil if the given size is nil"
15
+ fails "Enumerator#initialize sets size to the given size if the given size is Float::INFINITY"
17
16
  fails "Enumerator#initialize sets size to the given size if the given size is a Fixnum"
18
17
  fails "Enumerator#initialize sets size to the given size if the given size is a Proc"
19
- fails "Enumerator#initialize sets size to the given size if the given size is Float::INFINITY"
20
18
  fails "Enumerator#next_values advances the position of the current element"
21
19
  fails "Enumerator#next_values advances the position of the enumerator each time when called multiple times"
22
20
  fails "Enumerator#next_values raises StopIteration if called on a finished enumerator"
@@ -38,5 +36,5 @@ opal_filter "Enumerator" do
38
36
  fails "Enumerator#peek_values works in concert with #rewind"
39
37
  fails "Enumerator#size returns returning value from size.call if set size is a Proc"
40
38
  fails "Enumerator#size returns the result from size.call if the size respond to call"
41
- fails "Enumerator#to_enum exposes multi-arg yields as an array"
39
+ fails "Enumerator#to_enum exposes multi-arg yields as an array" # NoMethodError: undefined method `next' for #<Enumerator: #<Object:0x53e80>:each>
42
40
  end