opal 0.8.1 → 0.9.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (331) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -2
  3. data/.gitmodules +3 -3
  4. data/.jshintrc +17 -20
  5. data/.travis.yml +22 -11
  6. data/CHANGELOG.md +51 -1
  7. data/CODE_OF_CONDUCT.md +15 -0
  8. data/CONTRIBUTING.md +125 -9
  9. data/Gemfile +1 -1
  10. data/Guardfile +2 -2
  11. data/README.md +95 -29
  12. data/Rakefile +1 -1
  13. data/benchmark/benchmarks +103 -0
  14. data/benchmark/bm_array_flatten.rb +9 -0
  15. data/benchmark/bm_array_intersection_numbers.rb +7 -0
  16. data/benchmark/bm_array_intersection_objects.rb +7 -0
  17. data/benchmark/bm_array_intersection_strings.rb +7 -0
  18. data/benchmark/bm_array_join_ary.rb +9 -0
  19. data/benchmark/bm_array_minus_numbers.rb +7 -0
  20. data/benchmark/bm_array_minus_objects.rb +7 -0
  21. data/benchmark/bm_array_minus_strings.rb +7 -0
  22. data/benchmark/bm_array_union_numbers.rb +7 -0
  23. data/benchmark/bm_array_union_objects.rb +7 -0
  24. data/benchmark/bm_array_union_strings.rb +7 -0
  25. data/benchmark/bm_array_uniq_bang_numbers.rb +5 -0
  26. data/benchmark/bm_array_uniq_bang_objects.rb +5 -0
  27. data/benchmark/bm_array_uniq_bang_strings.rb +5 -0
  28. data/benchmark/bm_array_uniq_numbers.rb +5 -0
  29. data/benchmark/bm_array_uniq_objects.rb +5 -0
  30. data/benchmark/bm_array_uniq_strings.rb +5 -0
  31. data/benchmark/bm_dispatch_bind_table.rb +57 -0
  32. data/benchmark/bm_dispatch_code_gen.rb +65 -0
  33. data/benchmark/bm_dispatch_code_gen_if.rb +64 -0
  34. data/benchmark/bm_dispatch_hardcoded.rb +44 -0
  35. data/benchmark/bm_dispatch_send.rb +38 -0
  36. data/benchmark/bm_dispatch_send_table.rb +57 -0
  37. data/benchmark/bm_hash_assoc_object.rb +11 -0
  38. data/benchmark/bm_hash_assoc_string.rb +9 -0
  39. data/benchmark/bm_hash_clone_object.rb +9 -0
  40. data/benchmark/bm_hash_clone_string.rb +9 -0
  41. data/benchmark/bm_hash_delete_object.rb +11 -0
  42. data/benchmark/bm_hash_delete_string.rb +9 -0
  43. data/benchmark/bm_hash_each_key_object.rb +9 -0
  44. data/benchmark/bm_hash_each_key_string.rb +9 -0
  45. data/benchmark/bm_hash_each_object.rb +9 -0
  46. data/benchmark/bm_hash_each_string.rb +9 -0
  47. data/benchmark/bm_hash_each_value_object.rb +9 -0
  48. data/benchmark/bm_hash_each_value_string.rb +9 -0
  49. data/benchmark/bm_hash_element_reference_object.rb +11 -0
  50. data/benchmark/bm_hash_element_reference_string.rb +9 -0
  51. data/benchmark/bm_hash_element_set_object.rb +5 -0
  52. data/benchmark/bm_hash_element_set_string.rb +5 -0
  53. data/benchmark/bm_hash_equal_value_object.rb +14 -0
  54. data/benchmark/bm_hash_equal_value_string.rb +11 -0
  55. data/benchmark/bm_hash_fetch_object.rb +11 -0
  56. data/benchmark/bm_hash_fetch_string.rb +9 -0
  57. data/benchmark/bm_hash_flatten_object.rb +9 -0
  58. data/benchmark/bm_hash_flatten_string.rb +9 -0
  59. data/benchmark/bm_hash_has_key_object.rb +11 -0
  60. data/benchmark/bm_hash_has_key_string.rb +9 -0
  61. data/benchmark/bm_hash_has_value_object.rb +9 -0
  62. data/benchmark/bm_hash_has_value_string.rb +9 -0
  63. data/benchmark/bm_hash_hash_object.rb +9 -0
  64. data/benchmark/bm_hash_hash_string.rb +9 -0
  65. data/benchmark/bm_hash_inspect_object.rb +9 -0
  66. data/benchmark/bm_hash_inspect_string.rb +9 -0
  67. data/benchmark/bm_hash_invert_object.rb +9 -0
  68. data/benchmark/bm_hash_invert_string.rb +9 -0
  69. data/benchmark/bm_hash_keep_if_object.rb +9 -0
  70. data/benchmark/bm_hash_keep_if_string.rb +9 -0
  71. data/benchmark/bm_hash_key_object.rb +9 -0
  72. data/benchmark/bm_hash_key_string.rb +9 -0
  73. data/benchmark/bm_hash_keys_object.rb +9 -0
  74. data/benchmark/bm_hash_keys_string.rb +9 -0
  75. data/benchmark/bm_hash_literal_mixed_large.rb +3 -0
  76. data/benchmark/bm_hash_literal_mixed_small.rb +3 -0
  77. data/benchmark/bm_hash_literal_object_large.rb +4 -0
  78. data/benchmark/bm_hash_literal_object_small.rb +3 -0
  79. data/benchmark/bm_hash_literal_string_large.rb +4 -0
  80. data/benchmark/bm_hash_literal_string_small.rb +3 -0
  81. data/benchmark/bm_hash_merge_object.rb +22 -0
  82. data/benchmark/bm_hash_merge_string.rb +18 -0
  83. data/benchmark/bm_hash_rassoc_object.rb +9 -0
  84. data/benchmark/bm_hash_rassoc_string.rb +9 -0
  85. data/benchmark/bm_hash_rehash_object.rb +9 -0
  86. data/benchmark/bm_hash_rehash_string.rb +9 -0
  87. data/benchmark/bm_hash_reject_bang_object.rb +9 -0
  88. data/benchmark/bm_hash_reject_bang_string.rb +9 -0
  89. data/benchmark/bm_hash_reject_object.rb +9 -0
  90. data/benchmark/bm_hash_reject_string.rb +9 -0
  91. data/benchmark/bm_hash_replace_object.rb +18 -0
  92. data/benchmark/bm_hash_replace_string.rb +14 -0
  93. data/benchmark/bm_hash_select_bang_object.rb +9 -0
  94. data/benchmark/bm_hash_select_bang_string.rb +9 -0
  95. data/benchmark/bm_hash_select_object.rb +9 -0
  96. data/benchmark/bm_hash_select_string.rb +9 -0
  97. data/benchmark/bm_hash_shift_object.rb +10 -0
  98. data/benchmark/bm_hash_shift_string.rb +10 -0
  99. data/benchmark/bm_hash_to_a_object.rb +9 -0
  100. data/benchmark/bm_hash_to_a_string.rb +9 -0
  101. data/benchmark/bm_hash_to_h_object.rb +10 -0
  102. data/benchmark/bm_hash_to_h_string.rb +10 -0
  103. data/benchmark/bm_hash_values_object.rb +9 -0
  104. data/benchmark/bm_hash_values_string.rb +9 -0
  105. data/benchmark/run.rb +48 -0
  106. data/bin/opal-mspec +1 -1
  107. data/bin/opal-repl +4 -4
  108. data/docs/compiled_ruby.md +214 -56
  109. data/docs/configuring_gems.md +2 -2
  110. data/docs/faq.md +2 -2
  111. data/docs/getting_started.md +19 -2
  112. data/docs/jquery.md +5 -5
  113. data/docs/opal_parser.md +53 -0
  114. data/docs/unsupported_features.md +2 -2
  115. data/docs/upgrading.md +22 -0
  116. data/docs/using_sprockets.md +15 -0
  117. data/examples/rack/config.ru +13 -0
  118. data/examples/sinatra/config.ru +4 -5
  119. data/lib/mspec/opal/runner.rb +54 -11
  120. data/lib/opal.rb +1 -1
  121. data/lib/opal/builder.rb +1 -1
  122. data/lib/opal/builder_processors.rb +1 -1
  123. data/lib/opal/cli.rb +17 -13
  124. data/lib/opal/cli_options.rb +1 -1
  125. data/lib/opal/compiler.rb +12 -0
  126. data/lib/opal/config.rb +4 -0
  127. data/lib/opal/nodes/arglist.rb +5 -7
  128. data/lib/opal/nodes/call.rb +6 -1
  129. data/lib/opal/nodes/call_special.rb +74 -0
  130. data/lib/opal/nodes/def.rb +35 -28
  131. data/lib/opal/nodes/definitions.rb +3 -5
  132. data/lib/opal/nodes/for.rb +13 -0
  133. data/lib/opal/nodes/helpers.rb +15 -1
  134. data/lib/opal/nodes/if.rb +5 -5
  135. data/lib/opal/nodes/iter.rb +6 -1
  136. data/lib/opal/nodes/literal.rb +1 -1
  137. data/lib/opal/nodes/logic.rb +2 -2
  138. data/lib/opal/nodes/masgn.rb +1 -2
  139. data/lib/opal/nodes/module.rb +2 -1
  140. data/lib/opal/nodes/rescue.rb +10 -1
  141. data/lib/opal/nodes/scope.rb +8 -2
  142. data/lib/opal/nodes/singleton_class.rb +1 -1
  143. data/lib/opal/nodes/top.rb +11 -0
  144. data/lib/opal/nodes/variables.rb +4 -4
  145. data/lib/opal/parser.rb +21 -3
  146. data/lib/opal/parser/grammar.rb +3115 -2961
  147. data/lib/opal/parser/grammar.y +29 -6
  148. data/lib/opal/parser/lexer.rb +18 -8
  149. data/lib/opal/sprockets.rb +85 -0
  150. data/lib/opal/sprockets/processor.rb +11 -35
  151. data/lib/opal/sprockets/server.rb +3 -15
  152. data/lib/opal/version.rb +2 -2
  153. data/opal.gemspec +4 -4
  154. data/opal/README.md +9 -0
  155. data/opal/corelib/array.rb +433 -181
  156. data/opal/corelib/basic_object.rb +48 -4
  157. data/opal/corelib/boolean.rb +15 -6
  158. data/opal/corelib/class.rb +6 -5
  159. data/opal/corelib/comparable.rb +12 -0
  160. data/opal/corelib/complex.rb +282 -0
  161. data/opal/corelib/constants.rb +9 -0
  162. data/opal/corelib/enumerable.rb +83 -34
  163. data/opal/corelib/enumerator.rb +3 -1
  164. data/opal/corelib/error.rb +49 -10
  165. data/opal/corelib/file.rb +1 -0
  166. data/opal/corelib/hash.rb +353 -577
  167. data/opal/corelib/helpers.rb +20 -0
  168. data/opal/corelib/kernel.rb +114 -59
  169. data/opal/corelib/math.rb +470 -0
  170. data/opal/corelib/method.rb +11 -2
  171. data/opal/corelib/module.rb +96 -96
  172. data/opal/corelib/{nil_class.rb → nil.rb} +20 -1
  173. data/opal/corelib/number.rb +751 -0
  174. data/opal/corelib/numeric.rb +77 -437
  175. data/opal/corelib/proc.rb +81 -1
  176. data/opal/corelib/process.rb +27 -0
  177. data/opal/corelib/rational.rb +358 -0
  178. data/opal/corelib/regexp.rb +156 -27
  179. data/opal/corelib/runtime.js +724 -335
  180. data/opal/corelib/string.rb +93 -104
  181. data/opal/corelib/string/encoding.rb +177 -0
  182. data/opal/corelib/string/inheritance.rb +2 -0
  183. data/opal/corelib/struct.rb +105 -18
  184. data/opal/corelib/time.rb +267 -146
  185. data/opal/corelib/unsupported.rb +216 -0
  186. data/opal/corelib/variables.rb +0 -6
  187. data/opal/opal.rb +8 -22
  188. data/opal/opal/base.rb +9 -0
  189. data/opal/opal/mini.rb +17 -0
  190. data/spec/README.md +1 -1
  191. data/spec/filters/bugs/array.rb +38 -136
  192. data/spec/filters/bugs/{basic_object.rb → basicobject.rb} +14 -15
  193. data/spec/filters/bugs/class.rb +6 -12
  194. data/spec/filters/bugs/complex.rb +3 -0
  195. data/spec/filters/bugs/date.rb +162 -10
  196. data/spec/filters/bugs/enumerable.rb +31 -58
  197. data/spec/filters/bugs/enumerator.rb +42 -0
  198. data/spec/filters/bugs/exception.rb +66 -10
  199. data/spec/filters/bugs/float.rb +17 -0
  200. data/spec/filters/bugs/hash.rb +11 -97
  201. data/spec/filters/bugs/inheritance.rb +5 -0
  202. data/spec/filters/bugs/integer.rb +28 -0
  203. data/spec/filters/bugs/kernel.rb +304 -12
  204. data/spec/filters/bugs/language.rb +133 -399
  205. data/spec/filters/bugs/language_opal.rb +88 -0
  206. data/spec/filters/bugs/module.rb +203 -62
  207. data/spec/filters/bugs/numeric.rb +32 -0
  208. data/spec/filters/bugs/proc.rb +39 -0
  209. data/spec/filters/bugs/range.rb +148 -0
  210. data/spec/filters/bugs/regexp.rb +168 -0
  211. data/spec/filters/bugs/set.rb +46 -3
  212. data/spec/filters/bugs/singleton.rb +1 -2
  213. data/spec/filters/bugs/string.rb +59 -90
  214. data/spec/filters/bugs/strscan.rb +80 -0
  215. data/spec/filters/bugs/struct.rb +10 -20
  216. data/spec/filters/bugs/time.rb +17 -184
  217. data/spec/filters/bugs/unboundmethod.rb +22 -0
  218. data/spec/filters/unsupported/array.rb +163 -0
  219. data/spec/filters/unsupported/basicobject.rb +14 -0
  220. data/spec/filters/unsupported/bignum.rb +46 -0
  221. data/spec/filters/unsupported/class.rb +4 -0
  222. data/spec/filters/unsupported/delegator.rb +5 -0
  223. data/spec/filters/unsupported/enumerable.rb +11 -0
  224. data/spec/filters/unsupported/enumerator.rb +8 -9
  225. data/spec/filters/unsupported/fixnum.rb +14 -0
  226. data/spec/filters/unsupported/float.rb +41 -7
  227. data/spec/filters/unsupported/freeze.rb +45 -0
  228. data/spec/filters/unsupported/hash.rb +50 -0
  229. data/spec/filters/unsupported/integer.rb +3 -0
  230. data/spec/filters/unsupported/kernel.rb +31 -0
  231. data/spec/filters/unsupported/language.rb +17 -0
  232. data/spec/filters/unsupported/matchdata.rb +30 -0
  233. data/spec/filters/unsupported/math.rb +3 -0
  234. data/spec/filters/unsupported/module.rb +5 -3
  235. data/spec/filters/unsupported/pathname.rb +3 -0
  236. data/spec/filters/unsupported/privacy.rb +136 -0
  237. data/spec/filters/unsupported/proc.rb +3 -0
  238. data/spec/filters/unsupported/regexp.rb +59 -0
  239. data/spec/filters/unsupported/set.rb +4 -0
  240. data/spec/filters/unsupported/{marshal.rb → singleton.rb} +4 -2
  241. data/spec/filters/unsupported/{mutable_strings.rb → string.rb} +456 -336
  242. data/spec/filters/unsupported/struct.rb +3 -0
  243. data/spec/filters/unsupported/symbol.rb +5 -0
  244. data/spec/filters/unsupported/taint.rb +16 -0
  245. data/spec/filters/unsupported/thread.rb +5 -0
  246. data/spec/filters/unsupported/time.rb +197 -16
  247. data/spec/lib/cli_spec.rb +14 -4
  248. data/spec/lib/compiler_spec.rb +9 -1
  249. data/spec/lib/parser/call_spec.rb +18 -0
  250. data/spec/lib/parser/not_spec.rb +2 -8
  251. data/spec/lib/sprockets_spec.rb +24 -0
  252. data/spec/opal/core/array/intersection_spec.rb +38 -0
  253. data/spec/opal/core/array/minus_spec.rb +38 -0
  254. data/spec/opal/core/array/union_spec.rb +38 -0
  255. data/spec/opal/core/array/uniq_spec.rb +49 -0
  256. data/spec/opal/core/exception_spec.rb +7 -0
  257. data/spec/opal/core/fixtures/require_tree_with_dot/file 1.rb +1 -0
  258. data/spec/opal/core/fixtures/require_tree_with_dot/file 2.rb +1 -0
  259. data/spec/opal/core/fixtures/require_tree_with_dot/file 3.rb +1 -0
  260. data/spec/opal/core/fixtures/require_tree_with_dot/index.rb +3 -0
  261. data/spec/opal/core/hash/internals_spec.rb +332 -0
  262. data/spec/opal/core/helpers_spec.rb +14 -0
  263. data/spec/opal/core/kernel/freeze_spec.rb +1 -1
  264. data/spec/opal/core/kernel/raise_spec.rb +13 -0
  265. data/spec/opal/core/kernel/require_tree_spec.rb +9 -0
  266. data/spec/opal/core/language/class_spec.rb +55 -0
  267. data/spec/opal/core/language/fixtures/send.rb +1 -0
  268. data/spec/opal/core/language/keyword_arguments_spec.rb +11 -0
  269. data/spec/opal/core/language/send_spec.rb +5 -0
  270. data/spec/opal/core/method/to_proc_spec.rb +28 -0
  271. data/spec/opal/core/module/name_spec.rb +0 -17
  272. data/spec/opal/core/runtime/bridged_classes_spec.rb +2 -2
  273. data/spec/opal/core/runtime/eval_spec.rb +1 -1
  274. data/spec/opal/core/runtime/method_missing_spec.rb +6 -0
  275. data/spec/opal/core/runtime_spec.rb +51 -0
  276. data/spec/opal/stdlib/js_spec.rb +66 -0
  277. data/spec/opal/stdlib/native/hash_spec.rb +36 -0
  278. data/spec/rubyspecs +152 -273
  279. data/spec/spec_helper.rb +10 -11
  280. data/stdlib/base64.rb +9 -9
  281. data/stdlib/benchmark.rb +551 -4
  282. data/stdlib/console.rb +94 -0
  283. data/stdlib/date.rb +1 -1
  284. data/stdlib/encoding.rb +1 -170
  285. data/stdlib/js.rb +56 -0
  286. data/stdlib/json.rb +9 -14
  287. data/stdlib/math.rb +1 -370
  288. data/stdlib/native.rb +133 -63
  289. data/stdlib/nodejs/file.rb +5 -0
  290. data/stdlib/nodejs/fileutils.rb +13 -6
  291. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/README.md +1 -1
  292. data/stdlib/opal-parser.rb +1 -2
  293. data/stdlib/ostruct.rb +65 -6
  294. data/stdlib/pp.rb +2 -4
  295. data/stdlib/rbconfig.rb +1 -3
  296. data/stdlib/strscan.rb +164 -28
  297. data/tasks/benchmarking.rake +88 -0
  298. data/tasks/testing.rake +181 -55
  299. data/{lib/mspec/opal/special_calls.rb → tasks/testing/mspec_special_calls.rb} +1 -1
  300. data/{lib/mspec/opal/sprockets.js → tasks/testing/phantomjs1-sprockets.js} +17 -6
  301. data/test/opal/test_keyword.rb +590 -0
  302. data/vendored-minitest/minitest.rb +2 -2
  303. data/vendored-minitest/test/unit.rb +5 -0
  304. metadata +229 -62
  305. data/benchmarks/operators.rb +0 -11
  306. data/benchmarks/prova.js.rb +0 -13
  307. data/docs/libraries.md +0 -36
  308. data/lib/mspec/opal/new.html.erb +0 -1
  309. data/lib/mspec/opal/rake_task.rb +0 -248
  310. data/opal/corelib/match_data.rb +0 -128
  311. data/spec/filters/bugs/math.rb +0 -95
  312. data/spec/filters/bugs/nil.rb +0 -7
  313. data/spec/filters/bugs/opal.rb +0 -9
  314. data/spec/filters/bugs/regular_expressions.rb +0 -41
  315. data/spec/filters/bugs/stringscanner.rb +0 -33
  316. data/spec/filters/unsupported/encoding.rb +0 -102
  317. data/spec/filters/unsupported/frozen.rb +0 -92
  318. data/spec/filters/unsupported/hash_compare_by_identity.rb +0 -16
  319. data/spec/filters/unsupported/integer_size.rb +0 -59
  320. data/spec/filters/unsupported/method_added.rb +0 -10
  321. data/spec/filters/unsupported/private_constants.rb +0 -30
  322. data/spec/filters/unsupported/private_methods.rb +0 -55
  323. data/spec/filters/unsupported/random.rb +0 -4
  324. data/spec/filters/unsupported/rational_numbers.rb +0 -4
  325. data/spec/filters/unsupported/regular_expressions.rb +0 -137
  326. data/spec/filters/unsupported/ruby_exe.rb +0 -5
  327. data/spec/filters/unsupported/symbols.rb +0 -17
  328. data/spec/filters/unsupported/tainted.rb +0 -180
  329. data/spec/filters/unsupported/trusted.rb +0 -88
  330. data/stdlib/process.rb +0 -10
  331. data/tasks/documenting.rake +0 -37
@@ -0,0 +1,17 @@
1
+ opal_filter "Float" do
2
+ fails "Float#divmod returns an [quotient, modulus] from dividing self by other" # precision errors caused by Math.frexp and Math.ldexp
3
+ fails "Float#rationalize returns self as a simplified Rational with no argument" # precision errors caused by Math.frexp and Math.ldexp
4
+ fails "Float#to_i returns self truncated to an Integer"
5
+ fails "Float#to_int returns self truncated to an Integer"
6
+ fails "Float#to_s uses e format for a negative value with fractional part having 6 significant figures"
7
+ fails "Float#to_s uses e format for a negative value with whole part having 18 significant figures"
8
+ fails "Float#to_s uses e format for a positive value with fractional part having 6 significant figures"
9
+ fails "Float#to_s uses e format for a positive value with whole part having 18 significant figures"
10
+ fails "Float#to_s uses non-e format for a negative value with whole part having 15 significant figures"
11
+ fails "Float#to_s uses non-e format for a negative value with whole part having 16 significant figures"
12
+ fails "Float#to_s uses non-e format for a negative value with whole part having 17 significant figures"
13
+ fails "Float#to_s uses non-e format for a positive value with whole part having 15 significant figures"
14
+ fails "Float#to_s uses non-e format for a positive value with whole part having 16 significant figures"
15
+ fails "Float#to_s uses non-e format for a positive value with whole part having 17 significant figures"
16
+ fails "Float#truncate returns self truncated to an Integer"
17
+ end
@@ -1,101 +1,15 @@
1
1
  opal_filter "Hash" do
2
- fails "Hash#assoc only returns the first matching key-value pair for identity hashes"
3
-
4
- fails "Hash#default_proc= uses :to_proc on its argument"
5
-
6
- fails "Hash#each properly expands (or not) child class's 'each'-yielded args"
7
- fails "Hash#each yields the key only to a block expecting |key,|"
8
-
9
- fails "Hash#each_pair properly expands (or not) child class's 'each'-yielded args"
10
- fails "Hash#each_pair yields the key only to a block expecting |key,|"
11
-
12
- fails "Hash#== compares the values in self to values in other hash"
13
- fails "Hash#== returns true iff other Hash has the same number of keys and each key-value pair matches"
14
- fails "Hash#== compares keys with matching hash codes via eql?"
15
- fails "Hash#== compares keys with eql? semantics"
16
- fails "Hash#== computes equality for recursive hashes & arrays"
2
+ fails "Hash#== compares keys with eql? semantics" # spec relies on integer and float being different
17
3
  fails "Hash#== computes equality for complex recursive hashes"
18
- fails "Hash#== does not compare keys with different hash codes via eql?"
19
- fails "Hash#== first compares keys via hash"
20
-
21
- fails "Hash#eql? compares the values in self to values in other hash"
22
- fails "Hash#eql? returns true iff other Hash has the same number of keys and each key-value pair matches"
23
- fails "Hash#eql? compares keys with matching hash codes via eql?"
24
- fails "Hash#eql? compares keys with eql? semantics"
25
- fails "Hash#eql? computes equality for recursive hashes & arrays"
4
+ fails "Hash#== computes equality for recursive hashes & arrays"
5
+ fails "Hash#each yields the key only to a block expecting |key,|" # procs in Opal do not have access to this info (yet)
6
+ fails "Hash#each_pair yields the key only to a block expecting |key,|" # procs in Opal do not have access to this info (yet)
7
+ fails "Hash#eql? compares keys with eql? semantics" # spec relies on integer and float being different
26
8
  fails "Hash#eql? computes equality for complex recursive hashes"
27
- fails "Hash#eql? does not compare keys with different hash codes via eql?"
28
- fails "Hash#eql? first compares keys via hash"
29
- fails "Hash#eql? does not compare values when keys don't match"
30
-
31
- fails "Hash#[] calls subclass implementations of default"
32
- fails "Hash#[] does not create copies of the immediate default value"
33
- fails "Hash#[] compares keys with eql? semantics"
34
- fails "Hash#[] compares key via hash"
35
- fails "Hash#[] does not compare keys with different #hash values via #eql?"
36
- fails "Hash#[] compares keys with the same #hash value via #eql?"
37
- fails "Hash#[] finds a value via an identical key even when its #eql? isn't reflexive"
38
-
39
- fails "Hash#[]= stores unequal keys that hash to the same value"
40
- fails "Hash#[]= associates the key with the value and return the value"
41
-
42
- fails "Hash#fetch raises an ArgumentError when not passed one or two arguments"
43
-
44
- fails "Hash#flatten recursively flattens Array values to the given depth"
45
- fails "Hash#flatten raises a TypeError if given a non-Integer argument"
46
-
47
- fails "Hash#hash returns the same hash for recursive hashes through arrays"
48
- fails "Hash#hash returns the same hash for recursive hashes"
49
- # fails "Hash#hash generates a hash for recursive hash structures"
50
- # fails "Hash#hash returns a value which doesn't depend on the hash order"
51
-
52
- fails "Hash#invert compares new keys with eql? semantics"
53
-
54
- fails "Hash#initialize_copy does not transfer default values"
55
- fails "Hash#initialize_copy calls to_hash on hash subclasses"
56
- fails "Hash#initialize_copy tries to convert the passed argument to a hash using #to_hash"
57
- fails "Hash#initialize_copy replaces the contents of self with other"
58
-
59
- fails "Hash#merge returns subclass instance for subclasses"
60
-
61
- fails "Hash.new raises an ArgumentError if more than one argument is passed"
62
- fails "Hash.new raises an ArgumentError if passed both default argument and default block"
63
-
64
- fails "Hash#rassoc uses #== to compare the argument to the values"
65
-
66
- fails "Hash#rehash reorganizes the hash by recomputing all key hash codes"
67
-
68
- fails "Hash#reject returns subclass instance for subclasses"
69
- fails "Hash#reject processes entries with the same order as reject!"
70
- fails "Hash#reject! removes keys from self for which the block yields true"
71
- fails "Hash#reject! is equivalent to delete_if if changes are made"
72
- fails "Hash#reject! returns nil if no changes were made"
73
- fails "Hash#reject! processes entries with the same order as delete_if"
74
- fails "Hash#reject! returns an Enumerator if called on a non-empty hash without a block"
75
- fails "Hash#reject! returns an Enumerator if called on an empty hash without a block"
76
-
77
- fails "Hash#replace tries to convert the passed argument to a hash using #to_hash"
78
- fails "Hash#replace does not transfer default values"
79
-
80
- fails "Hash#select returns a Hash of entries for which block is true"
81
-
82
- fails "Hash#shift returns (computed) default for empty hashes"
83
-
84
- fails "Hash#store stores unequal keys that hash to the same value"
85
- fails "Hash#store associates the key with the value and return the value"
86
-
87
- fails "Hash#sort converts self to a nested array of [key, value] arrays and sort with Array#sort"
88
- fails "Hash#sort works when some of the keys are themselves arrays"
89
- fails "Hash#sort uses block to sort array if passed a block"
90
-
91
- fails "Hash.try_convert does not rescue exceptions raised by #to_hash"
92
- fails "Hash.try_convert sends #to_hash to the argument and raises TypeError if it's not a kind of Hash"
93
- fails "Hash.try_convert sends #to_hash to the argument and returns the result if it's a kind of Hash"
94
- fails "Hash.try_convert sends #to_hash to the argument and returns the result if it's a Hash"
95
- fails "Hash.try_convert sends #to_hash to the argument and returns the result if it's nil"
96
- fails "Hash.try_convert returns nil when the argument does not respond to #to_hash"
97
- fails "Hash.try_convert returns the argument if it's a kind of Hash"
98
- fails "Hash.try_convert returns the argument if it's a Hash"
99
-
100
- fails "Hash#compare_by_identity does not copy string keys"
9
+ fails "Hash#eql? computes equality for recursive hashes & arrays"
10
+ fails "Hash#fetch raises an ArgumentError when not passed one or two arguments" # arity issue?
11
+ fails "Hash#invert compares new keys with eql? semantics" # spec relies on integer and float being different
12
+ fails "Hash#[] compares keys with eql? semantics" # spec relies on integer and float being different
13
+ fails "Hash#[] does not create copies of the immediate default value" # spec uses mutable string
14
+ fails "Hash.new raises an ArgumentError if more than one argument is passed" # arity issue?
101
15
  end
@@ -0,0 +1,5 @@
1
+ opal_filter "bridged inheritance" do
2
+ fails "StringScanner#post_match returns an instance of String when passed a String subclass"
3
+ fails "StringScanner#pre_match returns an instance of String when passed a String subclass"
4
+ fails "StringScanner#rest returns an instance of String when passed a String subclass"
5
+ end
@@ -0,0 +1,28 @@
1
+ opal_filter "Integer" do
2
+ fails "Integer#chr with an encoding argument converts a String to an Encoding as Encoding.find does"
3
+ fails "Integer#chr with an encoding argument raises a RangeError is self is less than 0"
4
+ fails "Integer#chr with an encoding argument raises RangeError if self is invalid as a codepoint in the specified encoding"
5
+ fails "Integer#chr with an encoding argument returns a new String for each call"
6
+ fails "Integer#chr with an encoding argument returns a String encoding self interpreted as a codepoint in the specified encoding"
7
+ fails "Integer#chr with an encoding argument returns a String with the specified encoding"
8
+ fails "Integer#chr without argument raises a RangeError is self is less than 0"
9
+ fails "Integer#chr without argument returns a new String for each call"
10
+ fails "Integer#chr without argument when Encoding.default_internal is nil and self is between 0 and 127 (inclusive) returns a String encoding self interpreted as a US-ASCII codepoint"
11
+ fails "Integer#chr without argument when Encoding.default_internal is nil and self is between 0 and 127 (inclusive) returns a US-ASCII String"
12
+ fails "Integer#chr without argument when Encoding.default_internal is nil and self is between 128 and 255 (inclusive) returns a String containing self interpreted as a byte"
13
+ fails "Integer#chr without argument when Encoding.default_internal is nil and self is between 128 and 255 (inclusive) returns an ASCII-8BIT String"
14
+ fails "Integer#chr without argument when Encoding.default_internal is nil raises a RangeError is self is greater than 255"
15
+ fails "Integer#chr without argument when Encoding.default_internal is not nil and self is between 0 and 127 (inclusive) returns a String encoding self interpreted as a US-ASCII codepoint"
16
+ fails "Integer#chr without argument when Encoding.default_internal is not nil and self is between 0 and 127 (inclusive) returns a US-ASCII String"
17
+ fails "Integer#chr without argument when Encoding.default_internal is not nil and self is between 128 and 255 (inclusive) returns a String containing self interpreted as a byte"
18
+ fails "Integer#chr without argument when Encoding.default_internal is not nil and self is between 128 and 255 (inclusive) returns an ASCII-8BIT String"
19
+ fails "Integer#chr without argument when Encoding.default_internal is not nil and self is greater than 255 raises RangeError if self is invalid as a codepoint in the default internal encoding"
20
+ fails "Integer#chr without argument when Encoding.default_internal is not nil and self is greater than 255 returns a String encoding self interpreted as a codepoint in the default internal encoding"
21
+ fails "Integer#chr without argument when Encoding.default_internal is not nil and self is greater than 255 returns a String with the default internal encoding"
22
+ fails "Integer#gcdlcm raises a TypeError unless the argument is an Integer"
23
+ fails "Integer#gcdlcm returns a two-element Array"
24
+ fails "Integer#gcdlcm returns an Array"
25
+ fails "Integer#gcdlcm returns the greatest common divisor of self and argument as the first element"
26
+ fails "Integer#gcdlcm returns the least common multiple of self and argument as the last element"
27
+ fails "Integer#gcdlcm returns [self, self] if self is equal to the argument"
28
+ end
@@ -1,18 +1,310 @@
1
1
  opal_filter "Kernel" do
2
- fails "Kernel.Array does not call #to_a on an Array" #something funky with the spec itself
2
+ fails "Kernel#=~ returns nil matching any object"
3
3
  fails "Kernel#Array does not call #to_a on an Array" #something funky with the spec itself
4
-
5
- fails "Kernel.String raises a TypeError if #to_s does not exist"
6
- fails "Kernel.String raises a TypeError if respond_to? returns false for #to_s"
7
- fails "Kernel.String raises a TypeError if #to_s is not defined, even though #respond_to?(:to_s) returns true"
8
- fails "Kernel.String calls #to_s if #respond_to?(:to_s) returns true"
4
+ fails "Kernel#block_given? is a private method"
5
+ fails "Kernel#class returns the class of the object"
6
+ fails "Kernel#clone copies modules included in the singleton class"
7
+ 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"
8
+ fails "Kernel#dup does not copy constants defined in the singleton class"
9
+ fails "Kernel#eval allows a binding to be captured inside an eval"
10
+ fails "Kernel#eval allows creating a new class in a binding created by #eval"
11
+ fails "Kernel#eval allows creating a new class in a binding"
12
+ fails "Kernel#eval coerces an object to string"
13
+ fails "Kernel#eval does not alter the value of __FILE__ in the binding"
14
+ fails "Kernel#eval does not make Proc locals visible to evaluated code"
15
+ fails "Kernel#eval does not share locals across eval scopes"
16
+ fails "Kernel#eval doesn't accept a Proc object as a binding"
17
+ fails "Kernel#eval evaluates such that consts are scoped to the class of the eval"
18
+ fails "Kernel#eval evaluates within the scope of the eval"
19
+ fails "Kernel#eval finds a local in an enclosing scope"
20
+ fails "Kernel#eval finds locals in a nested eval"
21
+ fails "Kernel#eval includes file and line information in syntax error"
22
+ fails "Kernel#eval is a private method"
23
+ fails "Kernel#eval raises a LocalJumpError if there is no lambda-style closure in the chain"
24
+ fails "Kernel#eval unwinds through a Proc-style closure and returns from a lambda-style closure in the closure chain"
25
+ fails "Kernel#eval updates a local in a scope above a surrounding block scope"
26
+ fails "Kernel#eval updates a local in a scope above when modified in a nested block scope"
27
+ fails "Kernel#eval updates a local in a surrounding block scope"
28
+ fails "Kernel#eval updates a local in an enclosing scope"
29
+ fails "Kernel#eval uses the filename of the binding if none is provided"
30
+ fails "Kernel#eval uses the receiver as self inside the eval"
31
+ fails "Kernel#eval uses the same scope for local variables when given the same binding"
32
+ fails "Kernel#Float raises a RangeError when passed a Complex argument"
33
+ fails "Kernel#Float returns a Float for Complex with only a real part"
34
+ fails "Kernel#freeze causes instance_variable_set to raise RuntimeError"
35
+ fails "Kernel#freeze causes mutative calls to raise RuntimeError"
36
+ fails "Kernel#freeze on a Float has no effect since it is already frozen"
37
+ fails "Kernel#freeze on integers has no effect since they are already frozen"
38
+ fails "Kernel#freeze on true, false and nil actually freezes them"
39
+ fails "Kernel#frozen? on a Float returns true"
40
+ fails "Kernel#frozen? on integers returns true"
41
+ fails "Kernel#inspect does not call #to_s if it is defined"
42
+ fails "Kernel#inspect returns a tainted string if self is tainted"
43
+ fails "Kernel#inspect returns an untrusted string if self is untrusted"
44
+ fails "Kernel#instance_variables immediate values returns the correct array if an instance variable is added"
45
+ fails "Kernel#instance_variables regular objects returns an empty array if no instance variables are defined"
46
+ fails "Kernel#instance_variables regular objects returns the correct array if an instance variable is added"
47
+ fails "Kernel#instance_variable_set on frozen objects keeps stored object after any exceptions"
48
+ fails "Kernel#instance_variable_set on frozen objects raises a RuntimeError when passed replacement is different from stored object"
49
+ fails "Kernel#instance_variable_set on frozen objects raises a RuntimeError when passed replacement is identical to stored object"
50
+ fails "Kernel#is_a? raises a TypeError if given an object that is not a Class nor a Module"
51
+ fails "Kernel#is_a? returns true if given a Module that object has been extended with"
52
+ fails "Kernel#iterator? is a private method"
53
+ fails "Kernel#kind_of? raises a TypeError if given an object that is not a Class nor a Module"
54
+ fails "Kernel#kind_of? returns true if given a Module that object has been extended with"
55
+ fails "Kernel#local_variables contains locals as they are added"
56
+ fails "Kernel#local_variables is a private method"
57
+ fails "Kernel#local_variables is accessible from bindings"
58
+ fails "Kernel#local_variables is accessible in eval"
59
+ fails "Kernel#method can be called even if we only repond_to_missing? method, true"
60
+ fails "Kernel#method raises a NameError for an invalid singleton method name"
61
+ fails "Kernel#method returns a method object if we repond_to_missing? method"
62
+ fails "Kernel#method will see an alias of the original method as == when in a derived class"
63
+ fails "Kernel#methods returns private singleton methods defined by obj.meth"
64
+ fails "Kernel#methods returns singleton methods defined by obj.meth"
65
+ fails "Kernel#methods returns singleton methods defined in 'class << self' when it follows 'private'"
66
+ fails "Kernel#methods returns singleton methods defined in 'class << self'"
67
+ fails "Kernel#methods returns the publicly accessible methods in the object, its ancestors and mixed-in modules"
68
+ fails "Kernel#methods returns the publicly accessible methods of the object"
69
+ fails "Kernel#object_id returns a different value for two Bignum literals"
70
+ fails "Kernel#object_id returns a different value for two Float literals"
71
+ fails "Kernel#object_id returns a different value for two String literals"
72
+ fails "Kernel#p flushes output if receiver is a File"
73
+ fails "Kernel#p is a private method"
74
+ fails "Kernel#p is not affected by setting $\\, $/ or $,"
75
+ fails "Kernel#print is a private method"
76
+ fails "Kernel#printf is a private method"
77
+ fails "Kernel#private_methods returns a list of the names of privately accessible methods in the object and its ancestors and mixed-in modules"
78
+ fails "Kernel#private_methods returns a list of the names of privately accessible methods in the object"
79
+ fails "Kernel#private_methods returns private methods mixed in to the metaclass"
80
+ fails "Kernel#private_methods when not passed an argument returns a unique list for a class including a module"
81
+ fails "Kernel#private_methods when not passed an argument returns a unique list for a subclass of a class that includes a module"
82
+ fails "Kernel#private_methods when not passed an argument returns a unique list for an object extended by a module"
83
+ fails "Kernel#private_methods when passed false returns a list of private methods in without its ancestors"
84
+ fails "Kernel#private_methods when passed nil returns a list of private methods in without its ancestors"
85
+ fails "Kernel#private_methods when passed true returns a unique list for a class including a module"
86
+ fails "Kernel#private_methods when passed true returns a unique list for a subclass of a class that includes a module"
87
+ fails "Kernel#private_methods when passed true returns a unique list for an object extended by a module"
88
+ fails "Kernel#proc uses the implicit block from an enclosing method"
89
+ 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"
90
+ fails "Kernel#protected_methods returns a list of the names of protected methods accessible in the object"
91
+ fails "Kernel#protected_methods returns methods mixed in to the metaclass"
92
+ fails "Kernel#protected_methods when not passed an argument returns a unique list for a class including a module"
93
+ fails "Kernel#protected_methods when not passed an argument returns a unique list for a subclass of a class that includes a module"
94
+ fails "Kernel#protected_methods when not passed an argument returns a unique list for an object extended by a module"
95
+ fails "Kernel#protected_methods when passed false returns a list of protected methods in without its ancestors"
96
+ fails "Kernel#protected_methods when passed nil returns a list of protected methods in without its ancestors"
97
+ fails "Kernel#protected_methods when passed true returns a unique list for a class including a module"
98
+ fails "Kernel#protected_methods when passed true returns a unique list for a subclass of a class that includes a module"
99
+ fails "Kernel#protected_methods when passed true returns a unique list for an object extended by a module"
100
+ fails "Kernel#public_method changes the method called for super on a target aliased method"
101
+ fails "Kernel#public_method raises a NameError if we only repond_to_missing? method, true"
102
+ fails "Kernel#public_method returns a method object for a valid method"
103
+ fails "Kernel#public_method returns a method object for a valid singleton method"
104
+ fails "Kernel#public_method returns a method object if we repond_to_missing? method"
105
+ fails "Kernel#public_methods returns a list of the names of publicly accessible methods in the object and its ancestors and mixed-in modules"
106
+ fails "Kernel#public_methods returns a list of the names of publicly accessible methods in the object"
107
+ fails "Kernel#public_methods when passed false returns a list of public methods in without its ancestors"
108
+ fails "Kernel#public_methods when passed nil returns a list of public methods in without its ancestors"
109
+ fails "Kernel#public_send raises a NameError if the corresponding singleton method can't be found"
110
+ fails "Kernel#public_send raises a NoMethodError if the method is protected"
111
+ fails "Kernel#public_send raises a NoMethodError if the named method is an alias of a private method"
112
+ fails "Kernel#public_send raises a NoMethodError if the named method is an alias of a protected method"
113
+ fails "Kernel#public_send raises a NoMethodError if the named method is private"
114
+ fails "Kernel#puts delegates to $stdout.puts"
115
+ fails "Kernel#puts is a private method"
116
+ fails "Kernel#remove_instance_variable is a public method"
117
+ fails "Kernel#remove_instance_variable raises a TypeError if passed an Object not defining #to_str"
118
+ fails "Kernel#remove_instance_variable when passed a String removes the instance variable"
119
+ fails "Kernel#remove_instance_variable when passed a String returns the instance variable's value"
120
+ fails "Kernel#remove_instance_variable when passed a Symbol removes the instance variable"
121
+ fails "Kernel#remove_instance_variable when passed a Symbol returns the instance variable's value"
122
+ fails "Kernel#remove_instance_variable when passed an Object calls #to_str to convert the argument"
123
+ fails "Kernel#respond_to? does not change method visibility when finding private method"
124
+ fails "Kernel#respond_to? is a public method"
125
+ fails "Kernel#respond_to? is only an instance method"
126
+ fails "Kernel#respond_to? returns false even if obj responds to the given private method (include_private = false)"
127
+ fails "Kernel#respond_to? returns false if obj responds to the given private method"
128
+ fails "Kernel#respond_to? returns false if obj responds to the given protected method (include_private = false)"
129
+ fails "Kernel#respond_to? returns false if obj responds to the given protected method"
130
+ fails "Kernel#respond_to? throws a type error if argument can't be coerced into a Symbol"
131
+ fails "Kernel#respond_to_missing? causes #respond_to? to return false if called and returning false"
132
+ fails "Kernel#respond_to_missing? causes #respond_to? to return false if called and returning nil"
133
+ fails "Kernel#respond_to_missing? causes #respond_to? to return true if called and not returning false"
134
+ fails "Kernel#respond_to_missing? is a private method"
135
+ fails "Kernel#respond_to_missing? is called a 2nd argument of false when #respond_to? is called with only 1 argument"
136
+ fails "Kernel#respond_to_missing? is called for missing class methods"
137
+ fails "Kernel#respond_to_missing? is called when #respond_to? would return false"
138
+ fails "Kernel#respond_to_missing? is called when obj responds to the given private method, include_private = false"
139
+ fails "Kernel#respond_to_missing? is called when obj responds to the given protected method, include_private = false"
140
+ fails "Kernel#respond_to_missing? is called with a 2nd argument of false when #respond_to? is"
141
+ fails "Kernel#respond_to_missing? is called with true as the second argument when #respond_to? is"
142
+ fails "Kernel#respond_to_missing? is not called when #respond_to? would return true"
143
+ fails "Kernel#respond_to_missing? is only an instance method"
144
+ fails "Kernel#respond_to_missing? isn't called when obj responds to the given private method, include_private = true"
145
+ fails "Kernel#respond_to_missing? isn't called when obj responds to the given protected method, include_private = true"
146
+ fails "Kernel#respond_to_missing? isn't called when obj responds to the given public method"
147
+ fails "Kernel#respond_to_missing? isn't called when obj responds to the given public method, include_private = true"
148
+ fails "Kernel#send raises a NameError if the corresponding singleton method can't be found"
149
+ fails "Kernel#singleton_class raises TypeError for Fixnum"
150
+ fails "Kernel#singleton_class raises TypeError for Symbol"
151
+ fails "Kernel#singleton_methods when not passed an argument does not return any included methods for a class including a module"
152
+ fails "Kernel#singleton_methods when not passed an argument does not return any included methods for a module including a module"
153
+ fails "Kernel#singleton_methods when not passed an argument does not return private class methods for a class"
154
+ fails "Kernel#singleton_methods when not passed an argument does not return private inherited singleton methods for a class including a module"
155
+ fails "Kernel#singleton_methods when not passed an argument does not return private inherited singleton methods for a module including a module"
156
+ fails "Kernel#singleton_methods when not passed an argument does not return private inherited singleton methods for a subclass including a module"
157
+ 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"
158
+ 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"
159
+ fails "Kernel#singleton_methods when not passed an argument does not return private inherited singleton methods for a subclass"
160
+ fails "Kernel#singleton_methods when not passed an argument does not return private module methods for a module"
161
+ fails "Kernel#singleton_methods when not passed an argument does not return private singleton methods for a class extended with a module"
162
+ fails "Kernel#singleton_methods when not passed an argument does not return private singleton methods for an object 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 two modules"
164
+ 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"
165
+ fails "Kernel#singleton_methods when not passed an argument returns a unique list for a subclass including a module"
166
+ fails "Kernel#singleton_methods when not passed an argument returns a unique list for a subclass"
167
+ fails "Kernel#singleton_methods when not passed an argument returns a unique list for an object extended with a module"
168
+ fails "Kernel#singleton_methods when not passed an argument returns an empty Array for an object with no singleton methods"
169
+ fails "Kernel#singleton_methods when not passed an argument returns the names of class methods for a class"
170
+ fails "Kernel#singleton_methods when not passed an argument returns the names of inherited singleton methods for a class extended with a module"
171
+ fails "Kernel#singleton_methods when not passed an argument returns the names of inherited singleton methods for a subclass including a module"
172
+ fails "Kernel#singleton_methods when not passed an argument returns the names of inherited singleton methods for a subclass of a class including a module"
173
+ fails "Kernel#singleton_methods when not passed an argument returns the names of inherited singleton methods for a subclass of a class that includes a module, where the subclass also includes a module"
174
+ fails "Kernel#singleton_methods when not passed an argument returns the names of inherited singleton methods for a subclass"
175
+ fails "Kernel#singleton_methods when not passed an argument returns the names of module methods for a module"
176
+ fails "Kernel#singleton_methods when not passed an argument returns the names of singleton methods for an object extented with a module including a module"
177
+ fails "Kernel#singleton_methods when not passed an argument returns the names of singleton methods for an object extented with a module"
178
+ fails "Kernel#singleton_methods when not passed an argument returns the names of singleton methods for an object extented with two modules"
179
+ fails "Kernel#singleton_methods when not passed an argument returns the names of singleton methods for an object"
180
+ fails "Kernel#singleton_methods when passed false does not return any included methods for a class including a module"
181
+ fails "Kernel#singleton_methods when passed false does not return any included methods for a module including a module"
182
+ fails "Kernel#singleton_methods when passed false does not return names of inherited singleton methods for a subclass"
183
+ fails "Kernel#singleton_methods when passed false does not return private class methods for a class"
184
+ fails "Kernel#singleton_methods when passed false does not return private inherited singleton methods for a class including a module"
185
+ fails "Kernel#singleton_methods when passed false does not return private inherited singleton methods for a module including a module"
186
+ fails "Kernel#singleton_methods when passed false does not return private inherited singleton methods for a subclass including a module"
187
+ fails "Kernel#singleton_methods when passed false does not return private inherited singleton methods for a subclass of a class including a module"
188
+ 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"
189
+ fails "Kernel#singleton_methods when passed false does not return private inherited singleton methods for a subclass"
190
+ fails "Kernel#singleton_methods when passed false does not return private module methods for a module"
191
+ fails "Kernel#singleton_methods when passed false does not return private singleton methods for a class extended with a module"
192
+ fails "Kernel#singleton_methods when passed false does not return private singleton methods for an object extended with a module"
193
+ fails "Kernel#singleton_methods when passed false does not return private singleton methods for an object extended with two modules"
194
+ fails "Kernel#singleton_methods when passed false does not return private singleton methods for an object extented with a module including a module"
195
+ fails "Kernel#singleton_methods when passed false does not return the names of inherited singleton methods for a class extended with a module"
196
+ fails "Kernel#singleton_methods when passed false returns an empty Array for an object extended with a module including a module"
197
+ fails "Kernel#singleton_methods when passed false returns an empty Array for an object extented with a module"
198
+ fails "Kernel#singleton_methods when passed false returns an empty Array for an object extented with two modules"
199
+ fails "Kernel#singleton_methods when passed false returns an empty Array for an object with no singleton methods"
200
+ fails "Kernel#singleton_methods when passed false returns the names of class methods for a class"
201
+ fails "Kernel#singleton_methods when passed false returns the names of module methods for a module"
202
+ fails "Kernel#singleton_methods when passed false returns the names of singleton methods for an object"
203
+ fails "Kernel#singleton_methods when passed false returns the names of singleton methods of the subclass"
204
+ fails "Kernel#singleton_methods when passed true does not return any included methods for a class including a module"
205
+ fails "Kernel#singleton_methods when passed true does not return any included methods for a module including a module"
206
+ fails "Kernel#singleton_methods when passed true does not return private class methods for a class"
207
+ fails "Kernel#singleton_methods when passed true does not return private inherited singleton methods for a class including a module"
208
+ fails "Kernel#singleton_methods when passed true does not return private inherited singleton methods for a module including a module"
209
+ fails "Kernel#singleton_methods when passed true does not return private inherited singleton methods for a subclass including a module"
210
+ fails "Kernel#singleton_methods when passed true does not return private inherited singleton methods for a subclass of a class including a module"
211
+ 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"
212
+ fails "Kernel#singleton_methods when passed true does not return private inherited singleton methods for a subclass"
213
+ fails "Kernel#singleton_methods when passed true does not return private module methods for a module"
214
+ fails "Kernel#singleton_methods when passed true does not return private singleton methods for a class extended with a module"
215
+ fails "Kernel#singleton_methods when passed true does not return private singleton methods for an object extended with a module"
216
+ fails "Kernel#singleton_methods when passed true does not return private singleton methods for an object extended with two modules"
217
+ fails "Kernel#singleton_methods when passed true does not return private singleton methods for an object extented with a module including a module"
218
+ fails "Kernel#singleton_methods when passed true returns a unique list for a subclass including a module"
219
+ fails "Kernel#singleton_methods when passed true returns a unique list for a subclass"
220
+ fails "Kernel#singleton_methods when passed true returns a unique list for an object extended with a module"
221
+ fails "Kernel#singleton_methods when passed true returns an empty Array for an object with no singleton methods"
222
+ fails "Kernel#singleton_methods when passed true returns the names of class methods for a class"
223
+ fails "Kernel#singleton_methods when passed true returns the names of inherited singleton methods for a class extended with a module"
224
+ fails "Kernel#singleton_methods when passed true returns the names of inherited singleton methods for a subclass including a module"
225
+ fails "Kernel#singleton_methods when passed true returns the names of inherited singleton methods for a subclass of a class including a module"
226
+ fails "Kernel#singleton_methods when passed true returns the names of inherited singleton methods for a subclass of a class that includes a module, where the subclass also includes a module"
227
+ fails "Kernel#singleton_methods when passed true returns the names of inherited singleton methods for a subclass"
228
+ fails "Kernel#singleton_methods when passed true returns the names of module methods for a module"
229
+ fails "Kernel#singleton_methods when passed true returns the names of singleton methods for an object extented with a module including a module"
230
+ fails "Kernel#singleton_methods when passed true returns the names of singleton methods for an object extented with a module"
231
+ fails "Kernel#singleton_methods when passed true returns the names of singleton methods for an object extented with two modules"
232
+ fails "Kernel#singleton_methods when passed true returns the names of singleton methods for an object"
233
+ fails "Kernel#String calls #to_s if #respond_to?(:to_s) returns true"
9
234
  fails "Kernel#String raises a TypeError if #to_s does not exist"
10
- fails "Kernel#String raises a TypeError if respond_to? returns false for #to_s"
11
235
  fails "Kernel#String raises a TypeError if #to_s is not defined, even though #respond_to?(:to_s) returns true"
12
- fails "Kernel#String calls #to_s if #respond_to?(:to_s) returns true"
13
-
14
- fails "Kernel.Float returns a Float for Complex with only a real part"
236
+ fails "Kernel#String raises a TypeError if respond_to? returns false for #to_s"
237
+ fails "Kernel#warn requires multiple arguments"
238
+ fails "Kernel#__dir__ returns the real name of the directory containing the currently-executing file"
239
+ fails "Kernel#__dir__ when used in eval with top level binding returns the real name of the directory containing the currently-executing file"
240
+ fails "Kernel.Array does not call #to_a on an Array" #something funky with the spec itself
241
+ fails "Kernel.Complex() when passed a non-Numeric second argument raises TypeError"
242
+ fails "Kernel.Complex() when passed a Numeric which responds to #real? with false returns the passed argument"
243
+ fails "Kernel.Complex() when passed a Numeric which responds to #real? with true returns a Complex with the passed argument as the real component and 0 as the imaginary component"
244
+ fails "Kernel.Complex() when passed a single non-Numeric coerces the passed argument using #to_c"
245
+ fails "Kernel.Complex() when passed Numerics n1 and n2 and at least one responds to #real? with false returns n1 + n2 * Complex(0, 1)"
246
+ fails "Kernel.Complex() when passed two Numerics and both respond to #real? with true returns a Complex with the passed arguments as real and imaginary components respectively"
247
+ fails "Kernel.Complex() when passed [Complex, Complex] returns a new Complex number based on the two given numbers"
248
+ fails "Kernel.Complex() when passed [Complex] returns the passed Complex number"
249
+ fails "Kernel.Complex() when passed [Integer, Integer] returns a new Complex number"
250
+ fails "Kernel.Complex() when passed [Integer] returns a new Complex number with 0 as the imaginary component"
15
251
  fails "Kernel.Float raises a RangeError when passed a Complex argument"
16
- fails "Kernel#Float returns a Float for Complex with only a real part"
17
- fails "Kernel#Float raises a RangeError when passed a Complex argument"
252
+ fails "Kernel.Float returns a Float for Complex with only a real part"
253
+ fails "Kernel.global_variables finds subset starting with std"
254
+ fails "Kernel.global_variables is a private method"
255
+ fails "Kernel.lambda accepts 0 arguments when used with ||"
256
+ fails "Kernel.lambda checks the arity of the call when no args are specified"
257
+ fails "Kernel.lambda checks the arity when 1 arg is specified"
258
+ fails "Kernel.lambda does not check the arity when passing a Proc with &"
259
+ fails "Kernel.lambda is a private method"
260
+ fails "Kernel.lambda raises an ArgumentError when no block is given"
261
+ fails "Kernel.lambda returns from the lambda itself, not the creation site of the lambda"
262
+ fails "Kernel.lambda strictly checks the arity when 0 or 2..inf args are specified"
263
+ fails "Kernel.loop is a private method"
264
+ fails "Kernel.loop rescues StopIteration"
265
+ fails "Kernel.loop rescues StopIteration's subclasses"
266
+ fails "Kernel.loop returns an enumerator if no block given"
267
+ fails "Kernel.loop when no block is given returned Enumerator size returns Float::INFINITY"
268
+ fails "Kernel.printf calls write on the first argument when it is not a string"
269
+ fails "Kernel.printf writes to stdout when a string is the first argument"
270
+ fails "Kernel.proc is a private method"
271
+ fails "Kernel.rand is a private method"
272
+ fails "Kernel.Rational passed Integer returns a new Rational number with 1 as the denominator"
273
+ fails "Kernel.Rational passed two integers reduces the Rational"
274
+ fails "Kernel.Rational passed two integers returns a new Rational number"
275
+ fails "Kernel.Rational when passed a String converts the String to a Rational using the same method as String#to_r"
276
+ fails "Kernel.Rational when passed a String does not use the same method as Float#to_r"
277
+ fails "Kernel.Rational when passed a String raises a TypeError if the first argument is a Symbol"
278
+ fails "Kernel.Rational when passed a String raises a TypeError if the first argument is nil"
279
+ fails "Kernel.Rational when passed a String raises a TypeError if the second argument is a Symbol"
280
+ fails "Kernel.Rational when passed a String raises a TypeError if the second argument is nil"
281
+ fails "Kernel.Rational when passed a String scales the Rational value of the first argument by the Rational value of the second"
282
+ fails "Kernel.Rational when passed a String when passed a Complex raises a RangeError if the imaginary part is not 0"
283
+ fails "Kernel.Rational when passed a String when passed a Complex returns a Rational from the real part if the imaginary part is 0"
284
+ fails "Kernel.Rational when passed a String when passed a Numeric calls #to_r to convert the first argument to a Rational"
285
+ fails "Kernel.srand accepts a Bignum as a seed"
286
+ fails "Kernel.srand accepts a negative seed"
287
+ fails "Kernel.srand accepts and uses a seed of 0"
288
+ fails "Kernel.srand calls #to_int on seed"
289
+ fails "Kernel.srand is a private method"
290
+ fails "Kernel.srand returns the previous seed value"
291
+ fails "Kernel.srand seeds the RNG correctly and repeatably"
292
+ fails "Kernel.String calls #to_s if #respond_to?(:to_s) returns true"
293
+ fails "Kernel.String raises a TypeError if #to_s does not exist"
294
+ fails "Kernel.String raises a TypeError if #to_s is not defined, even though #respond_to?(:to_s) returns true"
295
+ fails "Kernel.String raises a TypeError if respond_to? returns false for #to_s"
296
+ fails "Kernel.__callee__ returns method name even from eval"
297
+ fails "Kernel.__callee__ returns method name even from send"
298
+ fails "Kernel.__callee__ returns the aliased name when aliased method"
299
+ fails "Kernel.__callee__ returns the caller from a define_method called from the same class"
300
+ fails "Kernel.__callee__ returns the caller from block inside define_method too"
301
+ fails "Kernel.__callee__ returns the caller from blocks too"
302
+ fails "Kernel.__callee__ returns the caller from define_method too"
303
+ fails "Kernel.__method__ returns method name even from eval"
304
+ fails "Kernel.__method__ returns method name even from send"
305
+ fails "Kernel.__method__ returns the caller from block inside define_method too"
306
+ fails "Kernel.__method__ returns the caller from blocks too"
307
+ fails "Kernel.__method__ returns the caller from define_method too"
308
+ fails "self.send(:block_given?) returns false when a method defined by define_method is called with a block"
309
+ fails "self.send(:block_given?) returns true if and only if a block is supplied"
18
310
  end