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
@@ -5,6 +5,10 @@ opal_filter "Exception" do
5
5
  fails "Errno::EINVAL.new can be called with no arguments"
6
6
  fails "Errno::EMFILE can be subclassed"
7
7
  fails "Exception is a superclass of EncodingError"
8
+ fails "Interrupt is a subclass of SignalException" # Expected Exception to equal SignalException
9
+ fails "Interrupt.new returns an instance of interrupt with no message given" # NoMethodError: undefined method `signo' for #<Interrupt: Interrupt>:Interrupt
10
+ fails "Interrupt.new takes an optional message argument" # NoMethodError: undefined method `signo' for #<Interrupt: message>:Interrupt
11
+
8
12
  fails "Exception is a superclass of Interrupt"
9
13
  fails "Exception is a superclass of SystemStackError"
10
14
  fails "Exception#== returns false if the two exceptions differ only in their backtrace"
@@ -21,7 +25,9 @@ opal_filter "Exception" do
21
25
  fails "Exception#backtrace includes the line number of the location immediately prior to where self raised in the second element"
22
26
  fails "Exception#backtrace includes the line number of the location where self raised in the first element"
23
27
  fails "Exception#backtrace includes the name of the method from where self raised in the first element"
28
+ fails "Exception#backtrace produces a backtrace for an exception captured using $!" # Expected "RuntimeError" to match /backtrace_spec/
24
29
  fails "Exception#backtrace returns nil if no backtrace was set"
30
+ fails "Exception#cause returns the active exception when an exception is raised"
25
31
  fails "Exception#set_backtrace accepts a String"
26
32
  fails "Exception#set_backtrace accepts an Array of Strings"
27
33
  fails "Exception#set_backtrace accepts an empty Array"
@@ -31,10 +37,9 @@ opal_filter "Exception" do
31
37
  fails "Exception#set_backtrace raises a TypeError when the Array contains a Symbol"
32
38
  fails "Exception#set_backtrace raises a TypeError when the argument is a nested array"
33
39
  fails "Exception#set_backtrace raises a TypeError when the array contains nil"
40
+ fails "Exception#to_s calls #to_s on the message" # Mock 'message' expected to receive 'to_s' exactly 1 times but received it 2 times
34
41
  fails "IOError is a superclass of EOFError"
35
42
  fails "NameError#name returns a class variable name as a symbol"
36
- fails "NoMethodError#message for an protected method match /protected method/"
37
- fails "NoMethodError#message for private method match /private method/"
38
43
  fails "SignalException.new raises an exception for an optional argument with a signal name"
39
44
  fails "SignalException.new raises an exception with an invalid signal name"
40
45
  fails "SignalException.new raises an exception with an invalid signal number"
@@ -55,4 +60,13 @@ opal_filter "Exception" do
55
60
  fails "SystemCallError.new requires at least one argument"
56
61
  fails "SystemStackError is a subclass of Exception"
57
62
  fails "rescueing SignalException raises a SignalException when sent a signal"
63
+ fails "rescueing Interrupt raises an Interrupt when sent a signal SIGINT" # NoMethodError: undefined method `kill' for Process
64
+
65
+ fails "NameError#receiver returns a class when an undefined class variable is called in a subclass' namespace"
66
+ fails "NameError#receiver returns a class when an undefined constant is called"
67
+ fails "NameError#receiver returns the Object class when an undefined class variable is called"
68
+ fails "NameError#receiver returns the Object class when an undefined constant is called without namespace"
69
+ fails "NameError#receiver returns the object that raised the exception"
70
+ fails "NameError#receiver returns the receiver when raised from #class_variable_get"
71
+ fails "NameError#receiver returns the receiver when raised from #instance_variable_get"
58
72
  end
@@ -0,0 +1,8 @@
1
+ opal_filter "File" do
2
+ fails "File.join returns a duplicate string when given a single argument"
3
+ fails "File.join raises a TypeError exception when args are nil"
4
+ fails "File.join calls #to_str"
5
+ fails "File.join calls #to_path"
6
+ fails "File.join raises an ArgumentError if passed a recursive array"
7
+ fails "File.join inserts the separator in between empty strings and arrays"
8
+ end
@@ -2,21 +2,27 @@ opal_filter "Float" do
2
2
  fails "Float constant MAX is 1.7976931348623157e+308"
3
3
  fails "Float constant MIN is 2.2250738585072014e-308"
4
4
  fails "Float#divmod returns an [quotient, modulus] from dividing self by other" # precision errors caused by Math.frexp and Math.ldexp
5
+ fails "Float#next_float gives the same result for -0.0 as for +0.0" # NoMethodError: undefined method `next_float' for 0
6
+ fails "Float#next_float returns Float::INFINITY for Float::INFINITY" # NoMethodError: undefined method `next_float' for Infinity
5
7
  fails "Float#next_float returns NAN if NAN was the receiver"
6
8
  fails "Float#next_float returns a float the smallest possible step greater than the receiver"
7
9
  fails "Float#next_float returns negative zero when stepping upward from just below zero"
8
- fails "Float#next_float reverses the effect of prev_float"
10
+ fails "Float#next_float reverses the effect of prev_float for all Floats except INFINITY and +0.0" # NoMethodError: undefined method `prev_float' for -0.739980680635199
9
11
  fails "Float#next_float steps directly between -1.0 and -1.0 + EPSILON/2"
10
12
  fails "Float#next_float steps directly between 1.0 and 1.0 + EPSILON"
11
13
  fails "Float#next_float steps directly between MAX and INFINITY"
14
+ fails "Float#prev_float gives the same result for -0.0 as for +0.0" # NoMethodError: undefined method `prev_float' for 0
15
+ fails "Float#prev_float returns -Float::INFINITY for -Float::INFINITY" # NoMethodError: undefined method `prev_float' for -Infinity
12
16
  fails "Float#prev_float returns NAN if NAN was the receiver"
13
17
  fails "Float#prev_float returns a float the smallest possible step smaller than the receiver"
14
18
  fails "Float#prev_float returns positive zero when stepping downward from just above zero"
19
+ fails "Float#prev_float reverses the effect of next_float for all Floats except -INFINITY and -0.0" # NoMethodError: undefined method `next_float' for 0.7192216026596725
15
20
  fails "Float#prev_float reverses the effect of next_float"
16
21
  fails "Float#prev_float steps directly between -1.0 and -1.0 - EPSILON"
17
22
  fails "Float#prev_float steps directly between 1.0 and 1.0 - EPSILON/2"
18
23
  fails "Float#prev_float steps directly between MAX and INFINITY"
19
24
  fails "Float#rationalize returns self as a simplified Rational with no argument" # precision errors caused by Math.frexp and Math.ldexp
25
+ fails "Float#round returns big values rounded to nearest" # Expected 0 to have same value and type as 300000000000000000000
20
26
  fails "Float#to_i returns self truncated to an Integer"
21
27
  fails "Float#to_int returns self truncated to an Integer"
22
28
  fails "Float#to_s uses e format for a negative value with fractional part having 6 significant figures"
@@ -2,10 +2,14 @@ opal_filter "Hash" do
2
2
  fails "Hash#== compares keys with eql? semantics" # spec relies on integer and float being different
3
3
  fails "Hash#== computes equality for complex recursive hashes"
4
4
  fails "Hash#== computes equality for recursive hashes & arrays"
5
+ fails "Hash#[] compares keys with eql? semantics" # spec relies on integer and float being different
6
+ fails "Hash#[] does not create copies of the immediate default value" # spec uses mutable string
7
+ fails "Hash#[]= keeps the existing String key in the hash if there is a matching one" # Expected "foo" not to be identical to "foo"
8
+ fails "Hash#delete allows removing a key while iterating" # Exception: Cannot read property '$$is_string' of undefined
5
9
  fails "Hash#eql? compares keys with eql? semantics" # spec relies on integer and float being different
6
10
  fails "Hash#eql? computes equality for complex recursive hashes"
7
11
  fails "Hash#eql? computes equality for recursive hashes & arrays"
8
12
  fails "Hash#invert compares new keys with eql? semantics" # spec relies on integer and float being different
9
- fails "Hash#[] compares keys with eql? semantics" # spec relies on integer and float being different
10
- fails "Hash#[] does not create copies of the immediate default value" # spec uses mutable string
13
+ fails "Hash#shift allows shifting entries while iterating" # Exception: Cannot read property '$$is_string' of undefined
14
+ fails "Hash#store keeps the existing String key in the hash if there is a matching one" # Expected "foo" not to be identical to "foo"
11
15
  end
@@ -25,4 +25,6 @@ opal_filter "Integer" do
25
25
  fails "Integer#gcdlcm returns an Array"
26
26
  fails "Integer#gcdlcm returns the greatest common divisor of self and argument as the first element"
27
27
  fails "Integer#gcdlcm returns the least common multiple of self and argument as the last element"
28
+ fails "Integer#round returns itself rounded to nearest if passed a negative value" # Expected NaN to have same value and type as 300
29
+
28
30
  end
@@ -0,0 +1,8 @@
1
+ opal_filter "IO" do
2
+ fails "IO::EAGAINWaitReadable combines Errno::EAGAIN and IO::WaitReadable" # NameError: uninitialized constant IO::EAGAINWaitReadable
3
+ fails "IO::EAGAINWaitReadable is the same as IO::EWOULDBLOCKWaitReadable if Errno::EAGAIN is the same as Errno::EWOULDBLOCK" # NameError: uninitialized constant Errno::EAGAIN
4
+ fails "IO::EAGAINWaitWritable combines Errno::EAGAIN and IO::WaitWritable" # NameError: uninitialized constant IO::EAGAINWaitWritable
5
+ fails "IO::EAGAINWaitWritable is the same as IO::EWOULDBLOCKWaitWritable if Errno::EAGAIN is the same as Errno::EWOULDBLOCK" # NameError: uninitialized constant Errno::EAGAIN
6
+ fails "IO::EWOULDBLOCKWaitReadable combines Errno::EWOULDBLOCK and IO::WaitReadable" # NameError: uninitialized constant IO::EWOULDBLOCKWaitReadable
7
+ fails "IO::EWOULDBLOCKWaitWritable combines Errno::EWOULDBLOCK and IO::WaitWritable" # NameError: uninitialized constant IO::EWOULDBLOCKWaitWritable
8
+ end
@@ -1,27 +1,12 @@
1
1
  opal_filter "Kernel" do
2
2
  fails "Kernel#=~ returns nil matching any object"
3
- fails "Kernel#Float for hexadecimal literals with binary exponent allows embedded _ in a number on either side of the P"
4
- fails "Kernel#Float for hexadecimal literals with binary exponent allows embedded _ in a number on either side of the p"
5
- fails "Kernel#Float for hexadecimal literals with binary exponent allows hexadecimal points on the left side of the 'P'"
6
- fails "Kernel#Float for hexadecimal literals with binary exponent allows hexadecimal points on the left side of the 'p'"
7
- fails "Kernel#Float for hexadecimal literals with binary exponent interprets the exponent (on the right of 'P') in decimal"
8
- fails "Kernel#Float for hexadecimal literals with binary exponent interprets the exponent (on the right of 'p') in decimal"
9
- fails "Kernel#Float for hexadecimal literals with binary exponent interprets the fractional part (on the left side of 'P') in hexadecimal"
10
- fails "Kernel#Float for hexadecimal literals with binary exponent interprets the fractional part (on the left side of 'p') in hexadecimal"
11
- fails "Kernel#Float for hexadecimal literals with binary exponent returns 0 for '0x1P-10000'"
12
- fails "Kernel#Float for hexadecimal literals with binary exponent returns 0 for '0x1p-10000'"
13
- fails "Kernel#Float for hexadecimal literals with binary exponent returns Infinity for '0x1P10000'"
14
- fails "Kernel#Float for hexadecimal literals with binary exponent returns Infinity for '0x1p10000'"
15
- fails "Kernel#String calls #to_s if #respond_to?(:to_s) returns true"
16
- fails "Kernel#String raises a TypeError if #to_s does not exist"
17
- fails "Kernel#String raises a TypeError if #to_s is not defined, even though #respond_to?(:to_s) returns true"
18
- fails "Kernel#String raises a TypeError if respond_to? returns false for #to_s"
19
3
  fails "Kernel#__dir__ returns the real name of the directory containing the currently-executing file"
20
4
  fails "Kernel#__dir__ when used in eval with top level binding returns the real name of the directory containing the currently-executing file"
21
- fails "Kernel#block_given? is a private method"
22
5
  fails "Kernel#class returns the class of the object"
6
+ fails "Kernel#clone replaces a singleton object's metaclass with a new copy with the same superclass" # NoMethodError: undefined method `singleton_methods' for #<#<Class:0x2df8e>:0x2df90>
7
+ fails "Kernel#clone uses the internal allocator and does not call #allocate" # RuntimeError: allocate should not be called
23
8
  fails "Kernel#define_singleton_method when given an UnboundMethod will raise when attempting to define an object's singleton method from another object's singleton method"
24
- fails "Kernel#dup does not copy constants defined in the singleton class"
9
+ fails "Kernel#dup uses the internal allocator and does not call #allocate" # RuntimeError: allocate should not be called
25
10
  fails "Kernel#eval allows a binding to be captured inside an eval"
26
11
  fails "Kernel#eval allows creating a new class in a binding created by #eval"
27
12
  fails "Kernel#eval allows creating a new class in a binding"
@@ -33,7 +18,6 @@ opal_filter "Kernel" do
33
18
  fails "Kernel#eval finds a local in an enclosing scope"
34
19
  fails "Kernel#eval finds locals in a nested eval"
35
20
  fails "Kernel#eval includes file and line information in syntax error"
36
- fails "Kernel#eval is a private method"
37
21
  fails "Kernel#eval raises a LocalJumpError if there is no lambda-style closure in the chain"
38
22
  fails "Kernel#eval unwinds through a Proc-style closure and returns from a lambda-style closure in the closure chain"
39
23
  fails "Kernel#eval updates a local in a scope above a surrounding block scope"
@@ -44,70 +28,24 @@ opal_filter "Kernel" do
44
28
  fails "Kernel#eval uses the same scope for local variables when given the same binding"
45
29
  fails "Kernel#extend calls extend_object on argument"
46
30
  fails "Kernel#extend does not calls append_features on arguments metaclass"
47
- fails "Kernel#extend on frozen instance raises a RuntimeError"
48
- fails "Kernel#extend on frozen instance raises an ArgumentError when no arguments given"
49
31
  fails "Kernel#extend raises an ArgumentError when no arguments given"
50
- fails "Kernel#freeze causes instance_variable_set to raise RuntimeError"
51
- fails "Kernel#freeze causes mutative calls to raise RuntimeError"
52
- fails "Kernel#freeze on a Float has no effect since it is already frozen"
53
- fails "Kernel#freeze on integers has no effect since they are already frozen"
54
- fails "Kernel#freeze on true, false and nil has no effect since they are already frozen"
55
- fails "Kernel#frozen? on a Float returns true"
56
- fails "Kernel#frozen? on integers returns true"
57
- fails "Kernel#frozen? on true, false and nil returns true"
58
32
  fails "Kernel#inspect does not call #to_s if it is defined"
59
- fails "Kernel#inspect returns a tainted string if self is tainted"
60
- fails "Kernel#inspect returns an untrusted string if self is untrusted"
61
- fails "Kernel#instance_variable_set on frozen objects keeps stored object after any exceptions"
62
- fails "Kernel#instance_variable_set on frozen objects raises a RuntimeError when passed replacement is different from stored object"
63
- fails "Kernel#instance_variable_set on frozen objects raises a RuntimeError when passed replacement is identical to stored object"
64
33
  fails "Kernel#instance_variables immediate values returns the correct array if an instance variable is added"
65
- fails "Kernel#iterator? is a private method"
66
- fails "Kernel#itself returns the receiver itself"
67
34
  fails "Kernel#local_variables contains locals as they are added"
68
- fails "Kernel#local_variables is a private method"
69
35
  fails "Kernel#local_variables is accessible from bindings"
70
36
  fails "Kernel#local_variables is accessible in eval"
71
37
  fails "Kernel#method can be called even if we only repond_to_missing? method, true"
72
38
  fails "Kernel#method returns a method object if we repond_to_missing? method"
73
39
  fails "Kernel#method will see an alias of the original method as == when in a derived class"
74
- fails "Kernel#methods returns private singleton methods defined by obj.meth"
75
40
  fails "Kernel#methods returns singleton methods defined by obj.meth"
76
- fails "Kernel#methods returns singleton methods defined in 'class << self' when it follows 'private'"
77
41
  fails "Kernel#methods returns singleton methods defined in 'class << self'"
78
42
  fails "Kernel#methods returns the publicly accessible methods in the object, its ancestors and mixed-in modules"
79
43
  fails "Kernel#methods returns the publicly accessible methods of the object"
80
44
  fails "Kernel#object_id returns a different value for two Bignum literals"
81
- fails "Kernel#object_id returns a different value for two Float literals"
82
45
  fails "Kernel#object_id returns a different value for two String literals"
83
46
  fails "Kernel#p flushes output if receiver is a File"
84
- fails "Kernel#p is a private method"
85
47
  fails "Kernel#p is not affected by setting $\\, $/ or $,"
86
- fails "Kernel#print is a private method"
87
- fails "Kernel#printf is a private method"
88
- fails "Kernel#private_methods returns a list of the names of privately accessible methods in the object and its ancestors and mixed-in modules"
89
- fails "Kernel#private_methods returns a list of the names of privately accessible methods in the object"
90
- fails "Kernel#private_methods returns private methods mixed in to the metaclass"
91
- fails "Kernel#private_methods when not passed an argument returns a unique list for a class including a module"
92
- fails "Kernel#private_methods when not passed an argument returns a unique list for a subclass of a class that includes a module"
93
- fails "Kernel#private_methods when not passed an argument returns a unique list for an object extended by a module"
94
- fails "Kernel#private_methods when passed false returns a list of private methods in without its ancestors"
95
- fails "Kernel#private_methods when passed nil returns a list of private methods in without its ancestors"
96
- fails "Kernel#private_methods when passed true returns a unique list for a class including a module"
97
- fails "Kernel#private_methods when passed true returns a unique list for a subclass of a class that includes a module"
98
- fails "Kernel#private_methods when passed true returns a unique list for an object extended by a module"
99
48
  fails "Kernel#proc uses the implicit block from an enclosing method"
100
- fails "Kernel#protected_methods returns a list of the names of protected methods accessible in the object and from its ancestors and mixed-in modules"
101
- fails "Kernel#protected_methods returns a list of the names of protected methods accessible in the object"
102
- fails "Kernel#protected_methods returns methods mixed in to the metaclass"
103
- fails "Kernel#protected_methods when not passed an argument returns a unique list for a class including a module"
104
- fails "Kernel#protected_methods when not passed an argument returns a unique list for a subclass of a class that includes a module"
105
- fails "Kernel#protected_methods when not passed an argument returns a unique list for an object extended by a module"
106
- fails "Kernel#protected_methods when passed false returns a list of protected methods in without its ancestors"
107
- fails "Kernel#protected_methods when passed nil returns a list of protected methods in without its ancestors"
108
- fails "Kernel#protected_methods when passed true returns a unique list for a class including a module"
109
- fails "Kernel#protected_methods when passed true returns a unique list for a subclass of a class that includes a module"
110
- fails "Kernel#protected_methods when passed true returns a unique list for an object extended by a module"
111
49
  fails "Kernel#public_method changes the method called for super on a target aliased method"
112
50
  fails "Kernel#public_method raises a NameError if we only repond_to_missing? method, true"
113
51
  fails "Kernel#public_method returns a method object for a valid method"
@@ -117,52 +55,22 @@ opal_filter "Kernel" do
117
55
  fails "Kernel#public_methods returns a list of the names of publicly accessible methods in the object"
118
56
  fails "Kernel#public_methods when passed false returns a list of public methods in without its ancestors"
119
57
  fails "Kernel#public_methods when passed nil returns a list of public methods in without its ancestors"
120
- fails "Kernel#public_send raises a NoMethodError if the method is protected"
121
- fails "Kernel#public_send raises a NoMethodError if the named method is an alias of a private method"
122
- fails "Kernel#public_send raises a NoMethodError if the named method is an alias of a protected method"
123
- fails "Kernel#public_send raises a NoMethodError if the named method is private"
124
58
  fails "Kernel#puts delegates to $stdout.puts"
125
- fails "Kernel#puts is a private method"
126
- fails "Kernel#respond_to? does not change method visibility when finding private method"
127
- fails "Kernel#respond_to? is only an instance method"
128
- fails "Kernel#respond_to? returns false even if obj responds to the given private method (include_private = false)"
129
- fails "Kernel#respond_to? returns false if obj responds to the given private method"
130
- fails "Kernel#respond_to? returns false if obj responds to the given protected method (include_private = false)"
131
- fails "Kernel#respond_to? returns false if obj responds to the given protected method"
132
59
  fails "Kernel#respond_to? throws a type error if argument can't be coerced into a Symbol"
133
60
  fails "Kernel#respond_to_missing? causes #respond_to? to return false if called and returning false"
134
61
  fails "Kernel#respond_to_missing? causes #respond_to? to return false if called and returning nil"
135
62
  fails "Kernel#respond_to_missing? causes #respond_to? to return true if called and not returning false"
136
- fails "Kernel#respond_to_missing? is a private method"
137
63
  fails "Kernel#respond_to_missing? is called a 2nd argument of false when #respond_to? is called with only 1 argument"
138
64
  fails "Kernel#respond_to_missing? is called for missing class methods"
139
65
  fails "Kernel#respond_to_missing? is called when #respond_to? would return false"
140
- fails "Kernel#respond_to_missing? is called when obj responds to the given private method, include_private = false"
141
- fails "Kernel#respond_to_missing? is called when obj responds to the given protected method, include_private = false"
142
66
  fails "Kernel#respond_to_missing? is called with a 2nd argument of false when #respond_to? is"
143
67
  fails "Kernel#respond_to_missing? is called with true as the second argument when #respond_to? is"
144
68
  fails "Kernel#respond_to_missing? is not called when #respond_to? would return true"
145
- fails "Kernel#respond_to_missing? is only an instance method"
146
- fails "Kernel#respond_to_missing? isn't called when obj responds to the given private method, include_private = true"
147
- fails "Kernel#respond_to_missing? isn't called when obj responds to the given protected method, include_private = true"
148
69
  fails "Kernel#respond_to_missing? isn't called when obj responds to the given public method"
149
- fails "Kernel#respond_to_missing? isn't called when obj responds to the given public method, include_private = true"
150
70
  fails "Kernel#singleton_class raises TypeError for Fixnum"
151
71
  fails "Kernel#singleton_class raises TypeError for Symbol"
152
72
  fails "Kernel#singleton_methods when not passed an argument does not return any included methods for a class including a module"
153
73
  fails "Kernel#singleton_methods when not passed an argument does not return any included methods for a module including a module"
154
- fails "Kernel#singleton_methods when not passed an argument does not return private class methods for a class"
155
- fails "Kernel#singleton_methods when not passed an argument does not return private inherited singleton methods for a class including a module"
156
- fails "Kernel#singleton_methods when not passed an argument does not return private inherited singleton methods for a module including a module"
157
- fails "Kernel#singleton_methods when not passed an argument does not return private inherited singleton methods for a subclass including a module"
158
- fails "Kernel#singleton_methods when not passed an argument does not return private inherited singleton methods for a subclass of a class including a module"
159
- fails "Kernel#singleton_methods when not passed an argument does not return private inherited singleton methods for a subclass of a class that includes a module, where the subclass also includes a module"
160
- fails "Kernel#singleton_methods when not passed an argument does not return private inherited singleton methods for a subclass"
161
- fails "Kernel#singleton_methods when not passed an argument does not return private module methods for a module"
162
- fails "Kernel#singleton_methods when not passed an argument does not return private singleton methods for a class extended with a module"
163
- fails "Kernel#singleton_methods when not passed an argument does not return private singleton methods for an object extended with a module"
164
- fails "Kernel#singleton_methods when not passed an argument does not return private singleton methods for an object extended with two modules"
165
- fails "Kernel#singleton_methods when not passed an argument does not return private singleton methods for an object extented with a module including a module"
166
74
  fails "Kernel#singleton_methods when not passed an argument returns a unique list for a subclass including a module"
167
75
  fails "Kernel#singleton_methods when not passed an argument returns a unique list for a subclass"
168
76
  fails "Kernel#singleton_methods when not passed an argument returns a unique list for an object extended with a module"
@@ -181,18 +89,6 @@ opal_filter "Kernel" do
181
89
  fails "Kernel#singleton_methods when passed false does not return any included methods for a class including a module"
182
90
  fails "Kernel#singleton_methods when passed false does not return any included methods for a module including a module"
183
91
  fails "Kernel#singleton_methods when passed false does not return names of inherited singleton methods for a subclass"
184
- fails "Kernel#singleton_methods when passed false does not return private class methods for a class"
185
- fails "Kernel#singleton_methods when passed false does not return private inherited singleton methods for a class including a module"
186
- fails "Kernel#singleton_methods when passed false does not return private inherited singleton methods for a module including a module"
187
- fails "Kernel#singleton_methods when passed false does not return private inherited singleton methods for a subclass including a module"
188
- fails "Kernel#singleton_methods when passed false does not return private inherited singleton methods for a subclass of a class including a module"
189
- fails "Kernel#singleton_methods when passed false does not return private inherited singleton methods for a subclass of a class that includes a module, where the subclass also includes a module"
190
- fails "Kernel#singleton_methods when passed false does not return private inherited singleton methods for a subclass"
191
- fails "Kernel#singleton_methods when passed false does not return private module methods for a module"
192
- fails "Kernel#singleton_methods when passed false does not return private singleton methods for a class extended with a module"
193
- fails "Kernel#singleton_methods when passed false does not return private singleton methods for an object extended with a module"
194
- fails "Kernel#singleton_methods when passed false does not return private singleton methods for an object extended with two modules"
195
- fails "Kernel#singleton_methods when passed false does not return private singleton methods for an object extented with a module including a module"
196
92
  fails "Kernel#singleton_methods when passed false does not return the names of inherited singleton methods for a class extended with a module"
197
93
  fails "Kernel#singleton_methods when passed false returns an empty Array for an object extended with a module including a module"
198
94
  fails "Kernel#singleton_methods when passed false returns an empty Array for an object extented with a module"
@@ -204,18 +100,6 @@ opal_filter "Kernel" do
204
100
  fails "Kernel#singleton_methods when passed false returns the names of singleton methods of the subclass"
205
101
  fails "Kernel#singleton_methods when passed true does not return any included methods for a class including a module"
206
102
  fails "Kernel#singleton_methods when passed true does not return any included methods for a module including a module"
207
- fails "Kernel#singleton_methods when passed true does not return private class methods for a class"
208
- fails "Kernel#singleton_methods when passed true does not return private inherited singleton methods for a class including a module"
209
- fails "Kernel#singleton_methods when passed true does not return private inherited singleton methods for a module including a module"
210
- fails "Kernel#singleton_methods when passed true does not return private inherited singleton methods for a subclass including a module"
211
- fails "Kernel#singleton_methods when passed true does not return private inherited singleton methods for a subclass of a class including a module"
212
- fails "Kernel#singleton_methods when passed true does not return private inherited singleton methods for a subclass of a class that includes a module, where the subclass also includes a module"
213
- fails "Kernel#singleton_methods when passed true does not return private inherited singleton methods for a subclass"
214
- fails "Kernel#singleton_methods when passed true does not return private module methods for a module"
215
- fails "Kernel#singleton_methods when passed true does not return private singleton methods for a class extended with a module"
216
- fails "Kernel#singleton_methods when passed true does not return private singleton methods for an object extended with a module"
217
- fails "Kernel#singleton_methods when passed true does not return private singleton methods for an object extended with two modules"
218
- fails "Kernel#singleton_methods when passed true does not return private singleton methods for an object extented with a module including a module"
219
103
  fails "Kernel#singleton_methods when passed true returns a unique list for a subclass including a module"
220
104
  fails "Kernel#singleton_methods when passed true returns a unique list for a subclass"
221
105
  fails "Kernel#singleton_methods when passed true returns a unique list for an object extended with a module"
@@ -231,12 +115,15 @@ opal_filter "Kernel" do
231
115
  fails "Kernel#singleton_methods when passed true returns the names of singleton methods for an object extented with a module"
232
116
  fails "Kernel#singleton_methods when passed true returns the names of singleton methods for an object extented with two modules"
233
117
  fails "Kernel#singleton_methods when passed true returns the names of singleton methods for an object"
118
+ fails "Kernel#sprintf with format string that contains %<> sections raises ArgumentError if missing second named argument" # KeyError: key not found: "foo"
119
+ fails "Kernel#warn writes each array element on a line when passes an array" # Expected: $stderr: "line 1\nline 2\n" got: $stderr: "[\"line 1\", \"line 2\"]\n"
234
120
  fails "Kernel.Complex() when passed Numerics n1 and n2 and at least one responds to #real? with false returns n1 + n2 * Complex(0, 1)"
235
121
  fails "Kernel.Complex() when passed [Complex, Complex] returns a new Complex number based on the two given numbers"
236
122
  fails "Kernel.Complex() when passed [Complex] returns the passed Complex number"
237
123
  fails "Kernel.Complex() when passed a Numeric which responds to #real? with false returns the passed argument"
238
124
  fails "Kernel.Complex() when passed a non-Numeric second argument raises TypeError"
239
125
  fails "Kernel.Complex() when passed a single non-Numeric coerces the passed argument using #to_c"
126
+ fails "Kernel.Complex() when passed an Objectc which responds to #to_c returns the passed argument" # Expected (#<Object:0x46fa6>+0i) to equal (0+1i)
240
127
  fails "Kernel.Float for hexadecimal literals with binary exponent allows embedded _ in a number on either side of the P"
241
128
  fails "Kernel.Float for hexadecimal literals with binary exponent allows embedded _ in a number on either side of the p"
242
129
  fails "Kernel.Float for hexadecimal literals with binary exponent allows hexadecimal points on the left side of the 'P'"
@@ -255,10 +142,7 @@ opal_filter "Kernel" do
255
142
  fails "Kernel.Rational when passed a String raises a TypeError if the second argument is a Symbol"
256
143
  fails "Kernel.Rational when passed a String scales the Rational value of the first argument by the Rational value of the second"
257
144
  fails "Kernel.Rational when passed a String when passed a Numeric calls #to_r to convert the first argument to a Rational"
258
- fails "Kernel.String calls #to_s if #respond_to?(:to_s) returns true"
259
- fails "Kernel.String raises a TypeError if #to_s does not exist"
260
145
  fails "Kernel.String raises a TypeError if #to_s is not defined, even though #respond_to?(:to_s) returns true"
261
- fails "Kernel.String raises a TypeError if respond_to? returns false for #to_s"
262
146
  fails "Kernel.__callee__ returns method name even from eval"
263
147
  fails "Kernel.__callee__ returns method name even from send"
264
148
  fails "Kernel.__callee__ returns the aliased name when aliased method"
@@ -272,26 +156,13 @@ opal_filter "Kernel" do
272
156
  fails "Kernel.__method__ returns the caller from blocks too"
273
157
  fails "Kernel.__method__ returns the caller from define_method too"
274
158
  fails "Kernel.global_variables finds subset starting with std"
275
- fails "Kernel.global_variables is a private method"
276
- fails "Kernel.lambda is a private method"
277
159
  fails "Kernel.lambda raises an ArgumentError when no block is given"
160
+ fails "Kernel.lambda returned the passed Proc if given an existing Proc" # Expected true to be false
278
161
  fails "Kernel.lambda returns from the lambda itself, not the creation site of the lambda"
279
- fails "Kernel.loop is a private method"
280
- fails "Kernel.loop rescues StopIteration"
281
- fails "Kernel.loop rescues StopIteration's subclasses"
282
- fails "Kernel.loop when no block is given returned Enumerator size returns Float::INFINITY"
162
+ fails "Kernel.loop returns StopIteration#result, the result value of a finished iterator" # requires changes in enumerator.rb
283
163
  fails "Kernel.printf calls write on the first argument when it is not a string"
284
164
  fails "Kernel.printf writes to stdout when a string is the first argument"
285
- fails "Kernel.proc is a private method"
286
- fails "Kernel.rand returns nil when range is backwards"
287
- fails "Kernel.rand is a private method"
288
- fails "Kernel.srand accepts a Bignum as a seed"
289
- fails "Kernel.srand accepts a negative seed"
290
- fails "Kernel.srand accepts and uses a seed of 0"
291
- fails "Kernel.srand calls #to_int on seed"
292
- fails "Kernel.srand is a private method"
293
- fails "Kernel.srand returns the previous seed value"
294
- fails "Kernel.srand seeds the RNG correctly and repeatably"
165
+ fails "Kernel.proc returned the passed Proc if given an existing Proc" # Expected false to be true
295
166
  fails "self.send(:block_given?) returns false when a method defined by define_method is called with a block"
296
167
  fails "self.send(:block_given?) returns true if and only if a block is supplied"
297
168
  end
@@ -1,142 +1,141 @@
1
1
  opal_filter "language" do
2
- fails "A class definition allows the declaration of class variables in a class method"
3
- fails "A class definition allows the declaration of class variables in an instance method"
4
- fails "A class definition allows the declaration of class variables in the body"
2
+ fails "A block yielded a single Array assigns elements to required arguments when a keyword rest argument is present"
3
+ fails "A block yielded a single Array assigns non-symbol keys to non-keyword arguments"
4
+ fails "A block yielded a single Array assigns symbol keys from a Hash returned by #to_hash to keyword arguments"
5
+ fails "A block yielded a single Array assigns symbol keys from a Hash to keyword arguments"
6
+ fails "A block yielded a single Array assigns the last element to a non-keyword argument if #to_hash returns nil"
7
+ fails "A block yielded a single Array calls #to_hash on the argument but does not use the result when no keywords are present"
8
+ fails "A block yielded a single Array does not treat hashes with string keys as keyword arguments"
9
+ fails "A block yielded a single Array raises a TypeError if #to_hash does not return a Hash"
5
10
  fails "A class definition allows using self as the superclass if self is a class"
6
11
  fails "A class definition extending an object (sclass) can use return to cause the enclosing method to return"
7
12
  fails "A class definition extending an object (sclass) raises a TypeError when trying to extend numbers"
8
- fails "A class definition has no class variables"
9
13
  fails "A class definition raises TypeError if any constant qualifying the class is not a Module"
10
- fails "A class definition raises TypeError if constant given as class name exists and is not a Module"
11
14
  fails "A class definition raises TypeError if the constant qualifying the class is nil"
12
15
  fails "A class definition raises a TypeError if inheriting from a metaclass"
13
- fails "A class variable defined in a module can be accessed from classes that extend the module"
14
- fails "A class variable defined in a module can be accessed from modules that extend the module"
15
- fails "A class variable defined in a module can be accessed inside the class using the module methods"
16
- fails "A class variable defined in a module is defined in the extended module"
17
- fails "A class variable defined in a module is not defined in the extending module"
18
- fails "A class variable defined in a module is not defined in these classes"
19
- fails "A class variable defined in a module is only updated in the module a method defined in the module is used"
20
- fails "A class variable defined in a module is updated in the class when a Method defined in the class is used"
21
- fails "A class variable definition is created in a module if any of the parents do not define it"
22
- fails "A constant on a metaclass appears in the metaclass constant list"
23
16
  fails "A constant on a metaclass cannot be accessed via object::CONST"
24
- fails "A constant on a metaclass does not appear in the object's class constant list"
25
- fails "A constant on a metaclass is not defined in the metaclass opener's scope"
26
- fails "A constant on a metaclass is not defined on the object's class"
27
- fails "A constant on a metaclass is not preserved when the object is duped"
28
- fails "A constant on a metaclass raises a NameError for anonymous_module::CONST"
29
17
  fails "A constant on a singleton class cannot be accessed via object::CONST"
30
- fails "A constant on a singleton class does not appear in the object's class constant list"
31
- fails "A constant on a singleton class is not defined in the singleton class opener's scope"
32
- fails "A constant on a singleton class is not defined on the object's class"
33
- fails "A constant on a singleton class is not preserved when the object is duped"
34
- fails "A constant on a singleton class raises a NameError for anonymous_module::CONST"
35
18
  fails "A lambda expression 'lambda { ... }' assigns variables from parameters for definition \n def m(a) yield a end\n def m2() yield end\n @a = lambda { |a, | a }"
36
19
  fails "A lambda expression 'lambda { ... }' requires a block"
37
20
  fails "A lambda expression 'lambda { ... }' with an implicit block can be created"
38
- fails "A lambda literal -> () { } assigns variables from parameters for definition \n @a = -> (a: @a = -> (a: 1) { a }, b:) do\n [a, b]\n end"
39
21
  fails "A lambda literal -> () { } assigns variables from parameters with circular optional argument reference shadows an existing local with the same name as the argument"
40
22
  fails "A lambda literal -> () { } assigns variables from parameters with circular optional argument reference shadows an existing method with the same name as the argument"
41
23
  fails "A lambda literal -> () { } returns a Proc object when used in a BasicObject method"
42
- fails "A method call evaluates block pass after arguments"
43
- fails "A number literal can be a binary literal with trailing 'i' to represent a Complex"
44
- fails "A number literal can be a binary literal with trailing 'r' to represent a Rational"
45
- fails "A number literal can be a decimal literal with trailing 'i' to represent a Complex"
46
- fails "A number literal can be a decimal literal with trailing 'r' to represent a Rational"
47
- fails "A number literal can be a hexadecimal literal with trailing 'i' to represent a Complex"
48
- fails "A number literal can be a hexadecimal literal with trailing 'r' to represent a Rational"
49
- fails "A number literal can be a octal literal with trailing 'i' to represent a Complex"
50
- fails "A number literal can be an integer literal with trailing 'i' to represent a Complex"
51
- fails "A number literal can be an integer literal with trailing 'r' to represent a Rational"
52
- fails "A number literal can be an octal literal with trailing 'r' to represent a Rational"
24
+ fails "A method defined with extreme default arguments may use an fcall as a default" # if OPAL_PLATFORM == 'phantomjs'
25
+ fails "A method definition in an eval creates a class method"
26
+ fails "A method definition in an eval creates a singleton method"
27
+ fails "A method definition in an eval creates an instance method"
28
+ fails "A nested method definition creates a class method when evaluated in a class method"
29
+ fails "A nested method definition creates a method in the surrounding context when evaluated in a def expr.method"
30
+ fails "A nested method definition creates an instance method when evaluated in an instance method"
31
+ fails "A number literal can be a decimal literal with trailing 'r' to represent a Rational" # requires String#to_r
53
32
  fails "A singleton class doesn't have singleton class"
54
- fails "A singleton class is a subclass of Class's singleton class"
55
- fails "A singleton class is a subclass of the same level of Class's singleton class"
56
33
  fails "A singleton class raises a TypeError for Fixnum's"
57
34
  fails "A singleton class raises a TypeError for symbols"
35
+ fails "A singleton method definition can be declared for a global variable"
58
36
  fails "An ensure block inside a begin block is executed even when a symbol is thrown in it's corresponding begin block"
37
+ fails "An instance method with a default argument shadows an existing method with the same name as the local"
38
+ fails "Constant resolution within methods with dynamically assigned constants searches Object as a lexical scope only if Object is explicitly opened"
39
+ fails "Constant resolution within methods with statically assigned constants searches Object as a lexical scope only if Object is explicitly opened"
40
+ fails "Constant resolution within methods with ||= assignes constant if previously undefined"
41
+ fails "Executing break from within a block returns from the original invoking method even in case of chained calls"
42
+ fails "Execution variable $: is initialized to an array of strings"
43
+ fails "Execution variable $: is read-only"
44
+ fails "Execution variable $: is the same object as $LOAD_PATH and $-I"
45
+ fails "Global variable $-a is read-only"
46
+ fails "Global variable $-d is an alias of $DEBUG"
47
+ fails "Global variable $-l is read-only"
48
+ fails "Global variable $-p is read-only"
49
+ fails "Global variable $-v is an alias of $VERBOSE"
50
+ fails "Global variable $-w is an alias of $VERBOSE"
51
+ fails "Global variable $0 is the path given as the main script and the same as __FILE__"
52
+ fails "Global variable $0 raises a TypeError when not given an object that can be coerced to a String"
53
+ fails "Global variable $< is read-only"
54
+ fails "Global variable $? is read-only"
55
+ fails "Global variable $? is thread-local"
56
+ fails "Global variable $FILENAME is read-only"
57
+ fails "Global variable $\" is read-only"
58
+ fails "Hash literal expands a BasicObject using ** into the containing Hash literal initialization" # NoMethodError: undefined method `respond_to?' for BasicObject
59
59
  fails "Instantiating a singleton class raises a TypeError when allocate is called"
60
60
  fails "Instantiating a singleton class raises a TypeError when new is called"
61
+ fails "Invoking a method does not expand final array arguments after a splat expansion"
62
+ fails "Literal (A::X) constant resolution raises a TypeError if a non-class or non-module qualifier is given"
63
+ fails "Literal (A::X) constant resolution with dynamically assigned constants evaluates the right hand side before evaluating a constant path"
61
64
  fails "Literal Regexps caches the Regexp object"
62
- fails "Literal Regexps disallows alphabets as non-paired delimiter with %r"
63
- fails "Literal Regexps disallows first part of paired delimiters to be used as non-paired delimiters"
64
- fails "Literal Regexps disallows spaces after %r and delimiter"
65
- fails "Literal Regexps matches against $_ (last input) in a conditional if no explicit matchee provided"
66
65
  fails "Literal Regexps supports (?# )"
67
66
  fails "Literal Regexps supports (?<! ) (negative lookbehind)"
68
67
  fails "Literal Regexps supports (?<= ) (positive lookbehind)"
69
68
  fails "Literal Regexps supports (?> ) (embedded subexpression)"
70
69
  fails "Literal Regexps supports \\g (named backreference)"
71
70
  fails "Literal Regexps supports character class composition"
72
- fails "Literal Regexps supports non-paired delimiters delimiters with %r"
71
+ fails "Literal Regexps supports conditional regular expressions with positional capture groups" # Exception: Invalid regular expression: /^(foo)?(?(1)(T)|(F))$/: Invalid group
72
+ fails "Literal Regexps supports conditional regular expressions with positional capture groups" # Exception: named captures are not supported in javascript: "^(?<word>foo)?(?(<word>)(T)|(F))$"
73
73
  fails "Literal Regexps supports possessive quantifiers"
74
74
  fails "Literal Regexps throws SyntaxError for malformed literals"
75
75
  fails "Magic comment is optional"
76
76
  fails "Operators * / % are left-associative"
77
77
  fails "Optional variable assignments using compunded constants with ||= assignments"
78
- fails "Optional variable assignments using compunded constants with &&= assignments"
79
- fails "Optional variable assignments using compunded constants with &&= assignments will fail with non-existant constants"
80
- fails "Optional variable assignments using compunded constants with operator assignments"
81
- fails "Optional variable assignments using compunded constants with operator assignments will fail with non-existant constants"
78
+ fails "Post-args with optional args with a circular argument reference shadows an existing local with the same name as the argument"
79
+ fails "Post-args with optional args with a circular argument reference shadows an existing method with the same name as the argument"
80
+ fails "Predefined global $+ captures the last non nil capture"
81
+ fails "Predefined global $+ is equivalent to $~.captures.last"
82
+ fails "Predefined global $, raises TypeError if assigned a non-String"
83
+ fails "Predefined global $-0 changes $/"
84
+ fails "Predefined global $-0 does not call #to_str to convert the object to a String"
85
+ fails "Predefined global $-0 raises a TypeError if assigned a Fixnum"
86
+ fails "Predefined global $-0 raises a TypeError if assigned a boolean"
87
+ fails "Predefined global $/ changes $-0"
88
+ fails "Predefined global $/ does not call #to_str to convert the object to a String"
89
+ fails "Predefined global $/ raises a TypeError if assigned a Fixnum"
90
+ fails "Predefined global $/ raises a TypeError if assigned a boolean"
91
+ fails "Predefined global $_ is Thread-local"
92
+ fails "Predefined global $_ is set at the method-scoped level rather than block-scoped"
93
+ fails "Predefined global $_ is set to the last line read by e.g. StringIO#gets"
94
+ fails "Predefined global $stdout raises TypeError error if assigned to nil"
95
+ fails "Predefined global $stdout raises TypeError error if assigned to object that doesn't respond to #write"
96
+ fails "Predefined global $~ is set at the method-scoped level rather than block-scoped"
97
+ fails "Predefined global $~ raises an error if assigned an object not nil or instanceof MatchData"
98
+ fails "Safe navigator allows assignment methods"
99
+ fails "Safe navigator allows assignment operators"
100
+ fails "Safe navigator does not call the operator method lazily with an assignment operator"
82
101
  fails "The =~ operator with named captures on syntax of /regexp/ =~ string_variable sets local variables by the captured pairs"
83
102
  fails "The =~ operator with named captures on syntax of regexp_variable =~ string_variable does not set local variables"
84
103
  fails "The =~ operator with named captures on syntax of string_variable =~ /regexp/ does not set local variables"
85
104
  fails "The =~ operator with named captures on the method calling does not set local variables"
86
105
  fails "The BEGIN keyword accesses variables outside the eval scope"
87
- fails "The BEGIN keyword must appear in a top-level context"
88
106
  fails "The BEGIN keyword runs first in a given code unit"
89
107
  fails "The BEGIN keyword runs in a shared scope"
90
108
  fails "The BEGIN keyword runs multiple begins in FIFO order"
91
109
  fails "The __ENCODING__ pseudo-variable is US-ASCII by default"
92
- fails "The __ENCODING__ pseudo-variable is an instance of Encoding"
93
110
  fails "The __ENCODING__ pseudo-variable is the encoding specified by a magic comment in the file"
94
111
  fails "The __ENCODING__ pseudo-variable is the encoding specified by a magic comment inside an eval"
95
112
  fails "The __ENCODING__ pseudo-variable is the evaluated strings's one inside an eval"
96
- fails "The __ENCODING__ pseudo-variable raises a SyntaxError if assigned to"
97
113
  fails "The __FILE__ pseudo-variable equals the absolute path of a file loaded by a relative path" # we can't clear $LOADED_FEATURES, should be treated as readonly
98
114
  fails "The __FILE__ pseudo-variable equals the absolute path of a file loaded by an absolute path" # we can't clear $LOADED_FEATURES, should be treated as readonly
99
115
  fails "The __LINE__ pseudo-variable equals the line number of the text in a loaded file"
100
116
  fails "The alias keyword is not allowed against Fixnum or String instances"
101
117
  fails "The alias keyword on top level defines the alias on Object"
102
118
  fails "The alias keyword operates on methods defined via attr, attr_reader, and attr_accessor"
103
- fails "The alias keyword operates on methods with splat arguments defined in a superclass using text block for class eval"
104
119
  fails "The alias keyword operates on the object's metaclass when used in instance_eval"
105
- fails "The defined? keyword for a scoped constant does not call .const_missing if the constant is not defined"
120
+ fails "The break statement in a captured block from a scope that has returned raises a LocalJumpError when calling the block from a method"
121
+ fails "The break statement in a captured block from a scope that has returned raises a LocalJumpError when yielding to the block"
122
+ fails "The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when invoking the block from a method"
123
+ fails "The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when invoking the block from the scope creating the block"
124
+ fails "The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when yielding to the block"
125
+ fails "The break statement in a lambda created at the toplevel returns a value when invoking from a block"
126
+ fails "The break statement in a lambda created at the toplevel returns a value when invoking from a method"
127
+ fails "The break statement in a lambda created at the toplevel returns a value when invoking from the toplevel"
128
+ fails "The break statement in a lambda from a scope that has returned raises a LocalJumpError when yielding to a lambda passed as a block argument"
129
+ fails "The break statement in a lambda returns from the call site if the lambda is passed as a block" # Expected ["before", "unreachable1", "unreachable2", "after"] to equal ["before", "after"]
130
+ fails "The break statement in a lambda when the invocation of the scope creating the lambda is still active returns from the lambda" # Exception: unexpected break
131
+ fails "The def keyword within a closure looks outside the closure for the visibility"
106
132
  fails "The defined? keyword for a scoped constant returns nil when a constant is defined on top-level but not on the module"
107
133
  fails "The defined? keyword for a scoped constant returns nil when an undefined constant is scoped to a defined constant"
108
- fails "The defined? keyword for a scoped constant returns nil when a constant is scoped to an undefined constant"
109
- fails "The defined? keyword for a simple constant does not call Object.const_missing if the constant is not defined"
110
- fails "The defined? keyword for a simple constant returns 'constant' for a constant defined in an included module"
111
- fails "The defined? keyword for a simple constant returns 'constant' for an included module"
112
- fails "The defined? keyword for a simple constant returns 'constant' when the constant is defined"
113
- fails "The defined? keyword for a simple constant returns nil when the constant is not defined"
114
134
  fails "The defined? keyword for a top-level scoped constant returns nil when an undefined constant is scoped to a defined constant"
115
- fails "The defined? keyword for an expression returns nil for an expression with != and an undefined method"
116
- fails "The defined? keyword for an expression returns nil for an expression with !~ and an undefined method"
117
- fails "The defined? keyword for an expression returns nil for an expression with == and an undefined method"
118
- fails "The defined? keyword for an expression with logical connectives does not propagate an exception raised by a method in a 'not' expression"
119
- fails "The defined? keyword for an expression with logical connectives returns nil for an expression with '!' and an undefined method"
120
- fails "The defined? keyword for an expression with logical connectives returns nil for an expression with '!' and an unset class variable"
121
- fails "The defined? keyword for an expression with logical connectives returns nil for an expression with '!' and an unset global variable"
122
- fails "The defined? keyword for an expression with logical connectives returns nil for an expression with '!' and an unset instance variable"
123
- fails "The defined? keyword for an expression with logical connectives returns nil for an expression with 'not' and an undefined method"
124
- fails "The defined? keyword for an expression with logical connectives returns nil for an expression with 'not' and an unset class variable"
125
- fails "The defined? keyword for an expression with logical connectives returns nil for an expression with 'not' and an unset global variable"
126
- fails "The defined? keyword for an expression with logical connectives returns nil for an expression with 'not' and an unset instance variable"
127
- fails "The defined? keyword for literals for a literal Array returns nil if all elements are not defined"
128
- fails "The defined? keyword for literals for a literal Array returns nil if one element is not defined"
129
- fails "The defined? keyword for loop expressions returns 'expression' for a 'retry' expression"
130
135
  fails "The defined? keyword for variables returns 'instance-variable' for an instance variable that has been assigned to nil"
131
136
  fails "The defined? keyword for variables returns nil for a global variable that has been read but not assigned to"
132
137
  fails "The defined? keyword for variables when a Regexp matches a String returns nil for non-captures"
133
138
  fails "The defined? keyword for variables when a String matches a Regexp returns nil for non-captures"
134
- fails "The defined? keyword for yield returns nil if no block is passed to a method not taking a block parameter"
135
- fails "The defined? keyword for yield returns nil if no block is passed to a method taking a block parameter"
136
- fails "The defined? keyword when called with a method name having a local variable as receiver returns nil if the variable does not exist"
137
- fails "The defined? keyword when called with a method name having a method call as a receiver returns nil if evaluating the receiver raises an exception"
138
- fails "The defined? keyword when called with a method name having a module as receiver returns nil if the class is not defined"
139
- fails "The defined? keyword when called with a method name having a module as receiver returns nil if the subclass is not defined"
140
139
  fails "The if expression with a boolean range ('flip-flop' operator) allows combining two flip-flops"
141
140
  fails "The if expression with a boolean range ('flip-flop' operator) evaluates the first conditions lazily with exclusive-end range"
142
141
  fails "The if expression with a boolean range ('flip-flop' operator) evaluates the first conditions lazily with inclusive-end range"
@@ -148,11 +147,13 @@ opal_filter "language" do
148
147
  fails "The if expression with a boolean range ('flip-flop' operator) mimics an awk conditional with a many-element inclusive-end range"
149
148
  fails "The if expression with a boolean range ('flip-flop' operator) mimics an awk conditional with a single-element inclusive-end range"
150
149
  fails "The if expression with a boolean range ('flip-flop' operator) scopes state by flip-flop"
151
- fails "The not keyword accepts an argument"
150
+ fails "The next statement in a method is invalid and raises a SyntaxError"
152
151
  fails "The or operator has a lower precedence than 'next' in 'next true or false'"
152
+ fails "The predefined global constants includes TOPLEVEL_BINDING"
153
153
  fails "The redo statement in a method is invalid and raises a SyntaxError"
154
154
  fails "The redo statement triggers ensure block when re-executing a block"
155
- fails "The rescue keyword parses 'a += b rescue c' as 'a += (b rescue c)'"
155
+ fails "The rescue keyword only accepts Module or Class in rescue clauses" # RuntimeError: error
156
+ fails "The rescue keyword only accepts Module or Class in splatted rescue clauses" # RuntimeError: error
156
157
  fails "The retry keyword inside a begin block's rescue block causes the begin block to be executed again"
157
158
  fails "The retry statement raises a SyntaxError when used outside of a begin statement"
158
159
  fails "The retry statement re-executes the closest block"
@@ -166,110 +167,24 @@ opal_filter "language" do
166
167
  fails "The super keyword without explicit arguments passes optional arguments that have a default value"
167
168
  fails "The super keyword without explicit arguments passes optional arguments that have a non-default value but were modified"
168
169
  fails "The super keyword without explicit arguments passes rest arguments including any modifications"
169
- fails "The unpacking splat operator (*) unpacks arguments as if they were listed statically"
170
+ fails "The super keyword without explicit arguments that are '_' including any modifications" # Expected [1, 2] to equal [14, 2]
171
+ fails "The unpacking splat operator (*) when applied to a BasicObject coerces it to Array if it respond_to?(:to_a)" # NoMethodError: undefined method `respond_to?' for BasicObject
170
172
  fails "The until expression restarts the current iteration without reevaluating condition with redo"
171
173
  fails "The until modifier restarts the current iteration without reevaluating condition with redo"
172
174
  fails "The until modifier with begin .. end block evaluates condition after block execution"
173
175
  fails "The until modifier with begin .. end block restart the current iteration without reevaluting condition with redo"
174
176
  fails "The until modifier with begin .. end block runs block at least once (even if the expression is true)"
175
177
  fails "The until modifier with begin .. end block skips to end of body with next"
176
- fails "The while expression stops running body if interrupted by break in a begin ... end attribute op-assign-or value"
177
178
  fails "The while expression stops running body if interrupted by break in a begin ... end element op-assign value"
178
- fails "The while expression stops running body if interrupted by break in a begin ... end element op-assign-or value"
179
- fails "The while expression stops running body if interrupted by break in a parenthesized attribute op-assign-or value"
180
179
  fails "The while expression stops running body if interrupted by break in a parenthesized element op-assign value"
181
180
  fails "The while modifier with begin .. end block evaluates condition after block execution"
182
181
  fails "The while modifier with begin .. end block restarts the current iteration without reevaluting condition with redo"
183
182
  fails "The while modifier with begin .. end block runs block at least once (even if the expression is false)"
184
183
  fails "The while modifier with begin .. end block skips to end of body with next"
184
+ fails "The yield call taking a single argument yielding to a lambda should not destructure an Array into multiple arguments" # Expected ArgumentError but no exception was raised ([1, 2] was returned)
185
+ fails "The yield call taking no arguments ignores assignment to the explicit block argument and calls the passed block"
185
186
  fails "self in a metaclass body (class << obj) raises a TypeError for numbers"
186
187
  fails "self in a metaclass body (class << obj) raises a TypeError for symbols"
187
- fails "Execution variable $: is initialized to an array of strings"
188
- fails "Execution variable $: is the same object as $LOAD_PATH and $-I"
189
- fails "Execution variable $: is read-only"
190
- fails "Global variable $\" is read-only"
191
- fails "Global variable $< is read-only"
192
- fails "Global variable $FILENAME is read-only"
193
- fails "Global variable $? is read-only"
194
- fails "Global variable $-a is read-only"
195
- fails "Global variable $-l is read-only"
196
- fails "Global variable $-p is read-only"
197
- fails "Global variable $-d is an alias of $DEBUG"
198
- fails "Global variable $-v is an alias of $VERBOSE"
199
- fails "Global variable $-w is an alias of $VERBOSE"
200
- fails "Global variable $0 raises a TypeError when not given an object that can be coerced to a String"
201
- fails "Global variable $? is thread-local"
202
- fails "Predefined global $! remains nil after a failed core class \"checked\" coercion against a class that defines method_missing"
203
- fails "Predefined global $! should be set to the value of $! before the begin after a successful rescue"
204
- fails "Predefined global $! should be set to the value of $! before the begin after a successful rescue within an ensure"
205
- fails "Predefined global $! should be set to the new exception after a throwing rescue"
206
- fails "Predefined global $! in bodies without ensure should be cleared when an exception is rescued"
207
- fails "Predefined global $! in bodies without ensure should be cleared when an exception is rescued even when a non-local return is present"
208
- fails "Predefined global $! in bodies without ensure should not be cleared when an exception is not rescued"
209
- fails "Predefined global $! in bodies without ensure should not be cleared when an exception is rescued and rethrown"
210
- fails "Predefined global $! in ensure-protected bodies should be cleared when an exception is rescued"
211
- fails "Predefined global $~ is set at the method-scoped level rather than block-scoped"
212
- fails "Predefined global $~ raises an error if assigned an object not nil or instanceof MatchData"
213
- fails "Predefined global $+ is equivalent to $~.captures.last"
214
- fails "Predefined global $+ captures the last non nil capture"
215
- fails "Predefined global $stdout raises TypeError error if assigned to nil"
216
- fails "Predefined global $stdout raises TypeError error if assigned to object that doesn't respond to #write"
217
- fails "Predefined global $/ changes $-0"
218
- fails "Predefined global $/ does not call #to_str to convert the object to a String"
219
- fails "Predefined global $/ raises a TypeError if assigned a Fixnum"
220
- fails "Predefined global $/ raises a TypeError if assigned a boolean"
221
- fails "Predefined global $-0 changes $/"
222
- fails "Predefined global $-0 does not call #to_str to convert the object to a String"
223
- fails "Predefined global $-0 raises a TypeError if assigned a Fixnum"
224
- fails "Predefined global $-0 raises a TypeError if assigned a boolean"
225
- fails "Predefined global $, raises TypeError if assigned a non-String"
226
- fails "Predefined global $_ is set to the last line read by e.g. StringIO#gets"
227
- fails "Predefined global $_ is set at the method-scoped level rather than block-scoped"
228
- fails "Predefined global $_ is Thread-local"
229
- fails "The predefined global constants includes TOPLEVEL_BINDING"
230
- fails "A block yielded a single Array assigns elements to required arguments when a keyword rest argument is present"
231
- fails "A block yielded a single Array assigns symbol keys from a Hash to keyword arguments"
232
- fails "A block yielded a single Array assigns symbol keys from a Hash returned by #to_hash to keyword arguments"
233
- fails "A block yielded a single Array calls #to_hash on the argument but does not use the result when no keywords are present"
234
- fails "A block yielded a single Array assigns non-symbol keys to non-keyword arguments"
235
- fails "A block yielded a single Array does not treat hashes with string keys as keyword arguments"
236
- fails "A block yielded a single Array assigns the last element to a non-keyword argument if #to_hash returns nil"
237
- fails "A block yielded a single Array raises a TypeError if #to_hash does not return a Hash"
238
- fails "A block taking identically-named arguments raises a SyntaxError for standard arguments"
239
- fails "Block-local variables can not have the same name as one of the standard parameters"
240
- fails "Block-local variables override shadowed variables from the outer scope"
241
- fails "Post-args with optional args with a circular argument reference shadows an existing method with the same name as the argument"
242
- fails "Post-args with optional args with a circular argument reference shadows an existing local with the same name as the argument"
243
- fails "The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when invoking the block from the scope creating the block"
244
- fails "The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when invoking the block from a method"
245
- fails "The break statement in a captured block from a scope that has returned raises a LocalJumpError when calling the block from a method"
246
- fails "The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when yielding to the block"
247
- fails "The break statement in a captured block from a scope that has returned raises a LocalJumpError when yielding to the block"
248
- fails "The break statement in a lambda when the invocation of the scope creating the lambda is still active raises a LocalJumpError when yielding to a lambda passed as a block argument"
249
- fails "The break statement in a lambda created at the toplevel returns a value when invoking from the toplevel"
250
- fails "The break statement in a lambda created at the toplevel returns a value when invoking from a method"
251
- fails "The break statement in a lambda created at the toplevel returns a value when invoking from a block"
252
- fails "The break statement in a lambda from a scope that has returned raises a LocalJumpError when yielding to a lambda passed as a block argument"
253
- fails "Break inside a while loop with a value passes the value returned by a method with omitted parenthesis and passed block"
254
- fails "Executing break from within a block returns from the original invoking method even in case of chained calls"
255
- fails "A singleton method definition can be declared for a global variable"
256
- fails "A nested method definition creates an instance method when evaluated in an instance method"
257
- fails "A nested method definition creates a class method when evaluated in a class method"
258
- fails "A method defined with extreme default arguments may use an fcall as a default" # fails on phantomjs
259
- fails "A method definition in an eval creates an instance method"
260
- fails "A method definition in an eval creates a class method"
261
- fails "A method definition in an eval creates a singleton method"
262
- fails "An instance method with a default argument shadows an existing method with the same name as the local"
263
- fails "A nested method definition creates a method in the surrounding context when evaluated in a def expr.method"
264
- fails "The def keyword within a closure looks outside the closure for the visibility"
265
- fails "Invoking a method allows []= with *args in the [] expanded to individual arguments"
266
- fails "Invoking a method allows []= with multiple *args and does not unwrap the last splat"
267
- fails "Invoking a method allows []= with multiple *args"
268
- fails "Invoking a method allows []= with a *args and multiple rhs args"
269
- fails "Invoking a method does not expand final array arguments after a splat expansion"
270
- fails "Invoking a private getter method does not permit self as a receiver"
271
- fails "The yield call taking no arguments ignores assignment to the explicit block argument and calls the passed block"
272
- fails "The return keyword invoked with a method call without parentheses with a block returns the value returned from the method call"
273
- fails "The next statement from within the block passes the value returned by a method with omitted parenthesis and passed block"
274
- fails "The next statement in a method is invalid and raises a SyntaxError"
188
+ fails_badly "The while expression stops running body if interrupted by break in a begin ... end attribute op-assign-or value"
189
+ fails_badly "The while expression stops running body if interrupted by break in a parenthesized attribute op-assign-or value"
275
190
  end