opal 0.4.4 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (796) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.gitmodules +3 -0
  4. data/.travis.yml +8 -0
  5. data/CONTRIBUTING.md +46 -2
  6. data/Gemfile +17 -0
  7. data/README.md +13 -4
  8. data/Rakefile +22 -119
  9. data/bin/opal +11 -2
  10. data/bin/opal-repl +71 -0
  11. data/corelib/array.rb +554 -356
  12. data/corelib/basic_object.rb +22 -18
  13. data/corelib/boolean.rb +15 -6
  14. data/corelib/class.rb +12 -6
  15. data/corelib/comparable.rb +40 -9
  16. data/corelib/encoding.rb +164 -0
  17. data/corelib/enumerable.rb +532 -300
  18. data/corelib/enumerator.rb +31 -6
  19. data/corelib/error.rb +14 -3
  20. data/corelib/hash.rb +108 -97
  21. data/corelib/io.rb +30 -0
  22. data/corelib/kernel.rb +151 -82
  23. data/corelib/main.rb +7 -0
  24. data/corelib/match_data.rb +118 -0
  25. data/corelib/method.rb +58 -0
  26. data/corelib/module.rb +145 -77
  27. data/corelib/native.rb +144 -22
  28. data/corelib/nil_class.rb +2 -0
  29. data/corelib/numeric.rb +259 -61
  30. data/corelib/opal.rb +43 -28
  31. data/corelib/proc.rb +21 -9
  32. data/corelib/range.rb +42 -23
  33. data/corelib/regexp.rb +51 -9
  34. data/corelib/runtime.js +470 -129
  35. data/corelib/string.rb +170 -246
  36. data/corelib/struct.rb +13 -1
  37. data/corelib/time.rb +414 -43
  38. data/doc/compiler.md +42 -0
  39. data/doc/compiler_options.md +5 -0
  40. data/doc/examples/node_http_server.rb +49 -0
  41. data/doc/external_libraries.md +9 -0
  42. data/doc/generated_javascript.md +272 -0
  43. data/doc/home.md +17 -0
  44. data/doc/method_missing.md +58 -0
  45. data/doc/static_applications.md +60 -0
  46. data/doc/using_ruby_from_javascript.md +18 -0
  47. data/doc/using_sprockets.md +65 -0
  48. data/lib/opal.rb +18 -15
  49. data/lib/opal/builder.rb +26 -9
  50. data/lib/opal/cli.rb +143 -90
  51. data/lib/opal/cli_options.rb +19 -13
  52. data/lib/opal/compiler.rb +307 -0
  53. data/lib/opal/erb.rb +3 -3
  54. data/lib/opal/fragment.rb +34 -0
  55. data/lib/opal/nodes.rb +25 -0
  56. data/lib/opal/nodes/arglist.rb +56 -0
  57. data/lib/opal/nodes/array.rb +54 -0
  58. data/lib/opal/nodes/base.rb +150 -0
  59. data/lib/opal/nodes/base_scope.rb +11 -0
  60. data/lib/opal/nodes/call.rb +195 -0
  61. data/lib/opal/nodes/call_special.rb +153 -0
  62. data/lib/opal/nodes/case.rb +96 -0
  63. data/lib/opal/nodes/class.rb +43 -0
  64. data/lib/opal/nodes/constants.rb +91 -0
  65. data/lib/opal/nodes/def.rb +157 -0
  66. data/lib/opal/nodes/defined.rb +113 -0
  67. data/lib/opal/nodes/definitions.rb +182 -0
  68. data/lib/opal/nodes/hash.rb +67 -0
  69. data/lib/opal/nodes/helpers.rb +105 -0
  70. data/lib/opal/nodes/if.rb +60 -0
  71. data/lib/opal/nodes/iter.rb +118 -0
  72. data/lib/opal/nodes/literal.rb +193 -0
  73. data/lib/opal/nodes/logic.rb +211 -0
  74. data/lib/opal/nodes/masgn.rb +62 -0
  75. data/lib/opal/nodes/module.rb +46 -0
  76. data/lib/opal/nodes/rescue.rb +134 -0
  77. data/lib/opal/nodes/singleton_class.rb +26 -0
  78. data/lib/opal/nodes/super.rb +97 -0
  79. data/lib/opal/nodes/top.rb +63 -0
  80. data/lib/opal/nodes/variables.rb +155 -0
  81. data/lib/opal/nodes/while.rb +65 -0
  82. data/lib/opal/nodes/yield.rb +84 -0
  83. data/lib/opal/parser.rb +294 -2169
  84. data/lib/opal/parser/grammar.rb +5326 -0
  85. data/lib/opal/{grammar.y → parser/grammar.y} +180 -113
  86. data/lib/opal/parser/keywords.rb +64 -0
  87. data/lib/opal/{lexer.rb → parser/lexer.rb} +278 -327
  88. data/lib/opal/{lexer_scope.rb → parser/parser_scope.rb} +2 -5
  89. data/lib/opal/parser/sexp.rb +63 -0
  90. data/lib/opal/source_map.rb +6 -5
  91. data/lib/opal/target_scope.rb +15 -17
  92. data/lib/opal/version.rb +1 -1
  93. data/mri_spec/cli_spec.rb +67 -6
  94. data/opal.gemspec +4 -4
  95. data/spec/config.ru +2 -1
  96. data/spec/corelib/enumerable/all_break_spec.rb +5 -0
  97. data/spec/corelib/enumerable/any_break_spec.rb +5 -0
  98. data/spec/corelib/enumerable/collect_break_spec.rb +13 -0
  99. data/spec/corelib/enumerable/count_break_spec.rb +5 -0
  100. data/spec/corelib/enumerable/detect_break_spec.rb +5 -0
  101. data/spec/corelib/enumerable/drop_while_break_spec.rb +5 -0
  102. data/spec/corelib/enumerable/each_slice_break.rb +6 -0
  103. data/spec/corelib/enumerable/each_with_index_break_spec.rb +5 -0
  104. data/spec/corelib/enumerable/each_with_object_break_spec.rb +5 -0
  105. data/spec/corelib/enumerable/find_all_break_spec.rb +5 -0
  106. data/spec/corelib/enumerable/find_index_break_spec.rb +5 -0
  107. data/spec/corelib/enumerable/grep_break_spec.rb +5 -0
  108. data/spec/corelib/enumerable/max_break_spec.rb +5 -0
  109. data/spec/corelib/enumerable/max_by_break_spec.rb +5 -0
  110. data/spec/corelib/enumerable/min_break_spec.rb +5 -0
  111. data/spec/corelib/enumerable/min_by_break_spec.rb +5 -0
  112. data/spec/corelib/enumerable/none_break_spec.rb +5 -0
  113. data/spec/corelib/enumerable/one_break_spec.rb +5 -0
  114. data/spec/corelib/enumerable/reduce_break_spec.rb +5 -0
  115. data/spec/corelib/enumerable/take_while_break_spec.rb +5 -0
  116. data/spec/{rubyspec → corelib}/fixtures/class.rb +0 -0
  117. data/spec/{rubyspec → corelib}/fixtures/class_variables.rb +0 -0
  118. data/spec/{rubyspec → corelib}/fixtures/constants.rb +0 -0
  119. data/spec/{rubyspec/core → corelib}/kernel/Array_spec.rb +0 -0
  120. data/spec/{opal → corelib}/kernel/block_given_spec.rb +0 -0
  121. data/spec/{opal → corelib}/kernel/class_spec.rb +0 -0
  122. data/spec/{rubyspec/core → corelib}/kernel/define_singleton_method_spec.rb +0 -0
  123. data/spec/{rubyspec/core → corelib}/kernel/equal_value_spec.rb +0 -0
  124. data/spec/{opal → corelib}/kernel/extend_spec.rb +0 -0
  125. data/spec/{opal → corelib}/kernel/format_spec.rb +0 -0
  126. data/spec/{opal → corelib}/kernel/freeze_spec.rb +0 -0
  127. data/spec/{rubyspec/core → corelib}/kernel/instance_eval_spec.rb +0 -0
  128. data/spec/{opal → corelib}/kernel/instance_variable_defined_spec.rb +0 -0
  129. data/spec/{rubyspec/core → corelib}/kernel/instance_variable_get_spec.rb +0 -0
  130. data/spec/{rubyspec/core → corelib}/kernel/instance_variable_set_spec.rb +0 -0
  131. data/spec/{rubyspec/core → corelib}/kernel/loop_spec.rb +0 -0
  132. data/spec/{opal → corelib}/kernel/match_spec.rb +0 -0
  133. data/spec/{opal → corelib}/kernel/method_spec.rb +0 -0
  134. data/spec/{opal → corelib}/kernel/methods_spec.rb +0 -0
  135. data/spec/{opal → corelib}/kernel/nil_spec.rb +0 -0
  136. data/spec/{opal → corelib}/kernel/p_spec.rb +8 -6
  137. data/spec/{opal → corelib}/kernel/printf_spec.rb +4 -2
  138. data/spec/{opal → corelib}/kernel/proc_spec.rb +0 -0
  139. data/spec/{opal → corelib}/kernel/rand_spec.rb +0 -0
  140. data/spec/{opal → corelib}/kernel/respond_to_spec.rb +0 -0
  141. data/spec/{rubyspec/core → corelib}/kernel/send_spec.rb +0 -0
  142. data/spec/{opal → corelib}/kernel/sprintf_spec.rb +0 -0
  143. data/spec/corelib/kernel/warn_spec.rb +83 -0
  144. data/spec/{rubyspec → corelib}/language/block_spec.rb +17 -18
  145. data/spec/{rubyspec → corelib}/language/fixtures/array.rb +0 -0
  146. data/spec/{rubyspec → corelib}/language/fixtures/block.rb +0 -0
  147. data/spec/{rubyspec → corelib}/language/fixtures/break.rb +0 -0
  148. data/spec/{rubyspec → corelib}/language/fixtures/ensure.rb +0 -0
  149. data/spec/{rubyspec → corelib}/language/fixtures/literal_lambda.rb +0 -0
  150. data/spec/{rubyspec → corelib}/language/fixtures/metaclass.rb +0 -0
  151. data/spec/{rubyspec → corelib}/language/fixtures/module.rb +0 -0
  152. data/spec/{rubyspec → corelib}/language/fixtures/next.rb +0 -0
  153. data/spec/{rubyspec → corelib}/language/fixtures/return.rb +0 -0
  154. data/spec/{rubyspec → corelib}/language/fixtures/send.rb +1 -1
  155. data/spec/{rubyspec → corelib}/language/fixtures/send_1.9.rb +0 -0
  156. data/spec/{rubyspec → corelib}/language/fixtures/super.rb +0 -0
  157. data/spec/{rubyspec → corelib}/language/fixtures/variables.rb +0 -0
  158. data/spec/{rubyspec → corelib}/language/fixtures/yield.rb +0 -0
  159. data/spec/{rubyspec → corelib}/language/numbers_spec.rb +0 -2
  160. data/spec/{rubyspec → corelib}/language/predefined_spec.rb +0 -0
  161. data/spec/{rubyspec → corelib}/language/proc_spec.rb +0 -2
  162. data/spec/{rubyspec → corelib}/language/regexp_spec.rb +0 -0
  163. data/spec/{rubyspec → corelib}/language/send_spec.rb +6 -7
  164. data/spec/{rubyspec → corelib}/language/string_spec.rb +0 -0
  165. data/spec/{rubyspec → corelib}/language/symbol_spec.rb +0 -0
  166. data/spec/{rubyspec → corelib}/language/variables_spec.rb +1 -2
  167. data/spec/{rubyspec → corelib}/language/versions/array_1.9.rb +0 -0
  168. data/spec/{rubyspec → corelib}/language/versions/block_1.9.rb +0 -0
  169. data/spec/{rubyspec → corelib}/language/versions/break_1.9.rb +0 -0
  170. data/spec/{rubyspec → corelib}/language/versions/case_1.9.rb +0 -0
  171. data/spec/{rubyspec → corelib}/language/versions/hash_1.9.rb +0 -0
  172. data/spec/{rubyspec → corelib}/language/versions/literal_lambda_1.9.rb +0 -0
  173. data/spec/{rubyspec → corelib}/language/versions/not_1.9.rb +0 -0
  174. data/spec/{rubyspec → corelib}/language/versions/send_1.9.rb +0 -0
  175. data/spec/{rubyspec → corelib}/language/versions/symbol_1.9.rb +0 -0
  176. data/spec/{rubyspec → corelib}/language/versions/variables_1.9.rb +1 -1
  177. data/spec/corelib/module/alias_method_spec.rb +28 -0
  178. data/spec/{opal → corelib}/module/ancestors_spec.rb +0 -0
  179. data/spec/{opal → corelib}/module/append_features_spec.rb +0 -0
  180. data/spec/corelib/module/attr_accessor_spec.rb +26 -0
  181. data/spec/{rubyspec/core → corelib}/module/const_defined_spec.rb +1 -2
  182. data/spec/{rubyspec/core → corelib}/module/const_get_spec.rb +1 -2
  183. data/spec/{rubyspec/core → corelib}/module/const_missing_spec.rb +1 -2
  184. data/spec/{rubyspec/core → corelib}/module/const_set_spec.rb +1 -2
  185. data/spec/{opal → corelib}/module/constants_spec.rb +0 -0
  186. data/spec/{rubyspec/core → corelib}/module/fixtures/classes.rb +0 -0
  187. data/spec/{rubyspec/core → corelib}/module/method_defined_spec.rb +0 -1
  188. data/spec/{opal → corelib}/module/module_function_spec.rb +0 -2
  189. data/spec/corelib/module/name_spec.rb +52 -0
  190. data/spec/{rubyspec/core → corelib}/module/public_method_defined_spec.rb +0 -1
  191. data/spec/{rubyspec/core → corelib}/module/remove_const_spec.rb +0 -1
  192. data/spec/{rubyspec/core → corelib}/module/undef_method_spec.rb +0 -1
  193. data/spec/{opal → corelib}/native/alias_native_spec.rb +7 -0
  194. data/spec/{opal → corelib}/native/each_spec.rb +2 -5
  195. data/spec/{opal → corelib}/native/element_reference_spec.rb +0 -0
  196. data/spec/{rubyspec/core/hash/to_native_spec.rb → corelib/native/ext_spec.rb} +0 -0
  197. data/spec/corelib/native/initialize_spec.rb +17 -0
  198. data/spec/{opal → corelib}/native/method_missing_spec.rb +0 -0
  199. data/spec/corelib/native/new_spec.rb +6 -0
  200. data/spec/{rubyspec/core → corelib}/numeric/abs_spec.rb +0 -0
  201. data/spec/{rubyspec/core → corelib}/numeric/bit_and_spec.rb +0 -0
  202. data/spec/{rubyspec/core → corelib}/numeric/bit_or_spec.rb +0 -0
  203. data/spec/{rubyspec/core → corelib}/numeric/bit_xor_spec.rb +0 -0
  204. data/spec/{rubyspec/core → corelib}/numeric/ceil_spec.rb +0 -0
  205. data/spec/{rubyspec/core → corelib}/numeric/chr_spec.rb +0 -0
  206. data/spec/{rubyspec/core → corelib}/numeric/comparison_spec.rb +0 -0
  207. data/spec/{rubyspec/core → corelib}/numeric/complement_spec.rb +0 -0
  208. data/spec/{rubyspec/core → corelib}/numeric/divide_spec.rb +0 -0
  209. data/spec/{rubyspec/core → corelib}/numeric/downto_spec.rb +0 -0
  210. data/spec/{rubyspec/core → corelib}/numeric/eql_spec.rb +0 -0
  211. data/spec/{rubyspec/core → corelib}/numeric/equal_value_spec.rb +0 -0
  212. data/spec/{rubyspec/core → corelib}/numeric/even_spec.rb +0 -0
  213. data/spec/{rubyspec/core → corelib}/numeric/exponent_spec.rb +0 -0
  214. data/spec/{rubyspec/core → corelib}/numeric/floor_spec.rb +0 -0
  215. data/spec/{rubyspec/core → corelib}/numeric/gt_spec.rb +0 -0
  216. data/spec/{rubyspec/core → corelib}/numeric/gte_spec.rb +0 -0
  217. data/spec/{rubyspec/core → corelib}/numeric/integer_spec.rb +0 -0
  218. data/spec/{rubyspec/core → corelib}/numeric/left_shift_spec.rb +0 -0
  219. data/spec/{rubyspec/core → corelib}/numeric/lt_spec.rb +0 -0
  220. data/spec/{rubyspec/core → corelib}/numeric/lte_spec.rb +0 -0
  221. data/spec/{rubyspec/core → corelib}/numeric/magnitude_spec.rb +0 -0
  222. data/spec/{rubyspec/core → corelib}/numeric/minus_spec.rb +0 -0
  223. data/spec/{rubyspec/core → corelib}/numeric/modulo_spec.rb +0 -0
  224. data/spec/{rubyspec/core → corelib}/numeric/multiply_spec.rb +0 -0
  225. data/spec/{rubyspec/core → corelib}/numeric/next_spec.rb +0 -0
  226. data/spec/{rubyspec/core → corelib}/numeric/odd_spec.rb +0 -0
  227. data/spec/{rubyspec/core → corelib}/numeric/ord_spec.rb +0 -0
  228. data/spec/{rubyspec/core → corelib}/numeric/plus_spec.rb +0 -0
  229. data/spec/{rubyspec/core → corelib}/numeric/pred_spec.rb +0 -0
  230. data/spec/{rubyspec/core → corelib}/numeric/right_shift_spec.rb +0 -0
  231. data/spec/{rubyspec/core → corelib}/numeric/step_spec.rb +0 -3
  232. data/spec/{rubyspec/core → corelib}/numeric/succ_spec.rb +0 -0
  233. data/spec/{rubyspec/core → corelib}/numeric/times_spec.rb +0 -0
  234. data/spec/{rubyspec/core → corelib}/numeric/to_f_spec.rb +0 -0
  235. data/spec/{rubyspec/core → corelib}/numeric/to_i_spec.rb +0 -0
  236. data/spec/{rubyspec/core → corelib}/numeric/to_json_spec.rb +0 -0
  237. data/spec/corelib/numeric/to_s_spec.rb +26 -0
  238. data/spec/{rubyspec/core → corelib}/numeric/uminus_spec.rb +0 -0
  239. data/spec/{rubyspec/core → corelib}/numeric/upto_spec.rb +0 -0
  240. data/spec/{rubyspec/core → corelib}/numeric/zero_spec.rb +0 -0
  241. data/spec/{rubyspec/core → corelib}/proc/call_spec.rb +0 -0
  242. data/spec/{rubyspec/core → corelib}/proc/element_reference_spec.rb +0 -0
  243. data/spec/{opal → corelib}/proc/proc_tricks_spec.rb +0 -0
  244. data/spec/corelib/runtime/begin_spec.rb +39 -0
  245. data/spec/{opal → corelib}/runtime/block_send_spec.rb +0 -0
  246. data/spec/{opal/language → corelib/runtime}/block_spec.rb +10 -0
  247. data/spec/corelib/runtime/bridged_classes_spec.rb +64 -0
  248. data/spec/{opal → corelib/runtime}/constants_spec.rb +0 -0
  249. data/spec/{opal → corelib}/runtime/eval_spec.rb +0 -0
  250. data/spec/{opal → corelib}/runtime/main_methods_spec.rb +0 -0
  251. data/spec/{opal → corelib/runtime}/method_missing_spec.rb +0 -0
  252. data/spec/corelib/runtime/method_spec.rb +31 -0
  253. data/spec/corelib/runtime/paren_spec.rb +14 -0
  254. data/spec/{opal/language → corelib/runtime}/rescue_spec.rb +11 -0
  255. data/spec/{opal/language → corelib/runtime}/return_spec.rb +0 -0
  256. data/spec/{opal → corelib}/runtime/send_spec.rb +0 -0
  257. data/spec/{opal/language → corelib/runtime}/singleton_class_spec.rb +0 -0
  258. data/spec/{opal/language → corelib/runtime}/super_spec.rb +113 -0
  259. data/spec/{opal/language → corelib/runtime}/variables_spec.rb +0 -0
  260. data/spec/{opal → corelib}/source_map_spec.rb +3 -3
  261. data/spec/{rubyspec/core → corelib}/string/chop_spec.rb +0 -0
  262. data/spec/{rubyspec/core → corelib}/string/chr_spec.rb +0 -0
  263. data/spec/{rubyspec/core → corelib}/string/clone_spec.rb +0 -0
  264. data/spec/{rubyspec/core → corelib}/string/comparison_spec.rb +0 -0
  265. data/spec/{rubyspec/core → corelib}/string/dup_spec.rb +0 -0
  266. data/spec/{rubyspec/core → corelib}/string/element_reference_spec.rb +0 -1
  267. data/spec/{rubyspec/core → corelib}/string/fixtures/classes.rb +0 -0
  268. data/spec/{rubyspec/core → corelib}/string/format_spec.rb +0 -0
  269. data/spec/{opal → corelib}/string/freeze_spec.rb +0 -0
  270. data/spec/{rubyspec/core → corelib}/string/gsub_spec.rb +0 -0
  271. data/spec/{rubyspec/core → corelib}/string/lines_spec.rb +0 -0
  272. data/spec/{rubyspec/core → corelib}/string/ljust_spec.rb +0 -1
  273. data/spec/{rubyspec/core → corelib}/string/lstrip_spec.rb +0 -0
  274. data/spec/{rubyspec/core → corelib}/string/match_spec.rb +0 -0
  275. data/spec/{rubyspec/core → corelib}/string/next_spec.rb +0 -0
  276. data/spec/{rubyspec/core → corelib}/string/ord_spec.rb +0 -0
  277. data/spec/{rubyspec/core → corelib}/string/partition_spec.rb +0 -0
  278. data/spec/{rubyspec/core → corelib}/string/rindex_spec.rb +0 -0
  279. data/spec/{rubyspec/core → corelib}/string/rjust_spec.rb +0 -1
  280. data/spec/{rubyspec/core → corelib}/string/rstrip_spec.rb +0 -0
  281. data/spec/{rubyspec/core → corelib}/string/scan_spec.rb +0 -0
  282. data/spec/{rubyspec/core → corelib}/string/slice_spec.rb +1 -2
  283. data/spec/{rubyspec/core → corelib}/string/split_spec.rb +0 -0
  284. data/spec/{rubyspec/core → corelib}/string/strip_spec.rb +0 -0
  285. data/spec/{rubyspec/core → corelib}/string/sub_spec.rb +0 -0
  286. data/spec/{rubyspec/core → corelib}/string/succ_spec.rb +0 -0
  287. data/spec/{rubyspec/core → corelib}/string/sum_spec.rb +0 -0
  288. data/spec/{rubyspec/core → corelib}/string/to_f_spec.rb +0 -0
  289. data/spec/{rubyspec/core → corelib}/string/to_i_spec.rb +0 -0
  290. data/spec/{rubyspec/core → corelib}/string/tr_s_spec.rb +0 -0
  291. data/spec/{rubyspec/core → corelib}/string/tr_spec.rb +0 -0
  292. data/spec/filters/bugs/array.rb +236 -4
  293. data/spec/filters/bugs/basic_object.rb +4 -0
  294. data/spec/filters/bugs/class.rb +4 -0
  295. data/spec/filters/bugs/enumerable.rb +58 -0
  296. data/spec/filters/bugs/enumerator.rb +6 -0
  297. data/spec/filters/bugs/hash.rb +146 -0
  298. data/spec/filters/bugs/kernel.rb +10 -0
  299. data/spec/filters/bugs/language.rb +366 -0
  300. data/spec/filters/bugs/module.rb +14 -0
  301. data/spec/filters/bugs/regexp.rb +7 -0
  302. data/spec/filters/bugs/set.rb +7 -0
  303. data/spec/filters/bugs/{singleton/instance.rb → singleton.rb} +3 -1
  304. data/spec/filters/bugs/string.rb +37 -0
  305. data/spec/filters/bugs/stringscanner.rb +18 -0
  306. data/spec/filters/bugs/struct.rb +11 -0
  307. data/spec/filters/bugs/symbol.rb +5 -0
  308. data/spec/filters/bugs/time.rb +28 -0
  309. data/spec/filters/bugs/unknown.rb +11 -0
  310. data/spec/filters/unsupported/array_subclasses.rb +32 -0
  311. data/spec/filters/unsupported/encoding.rb +14 -0
  312. data/spec/filters/unsupported/float.rb +4 -0
  313. data/spec/filters/unsupported/frozen.rb +57 -0
  314. data/spec/filters/unsupported/hash_compare_by_identity.rb +16 -0
  315. data/spec/filters/unsupported/immutable_strings.rb +6 -0
  316. data/spec/filters/unsupported/mutable_strings.rb +49 -0
  317. data/spec/filters/unsupported/private_methods.rb +26 -0
  318. data/spec/filters/{mspec → unsupported}/ruby_exe.rb +0 -0
  319. data/spec/filters/unsupported/string_subclasses.rb +8 -0
  320. data/spec/filters/unsupported/tainted.rb +46 -0
  321. data/spec/filters/unsupported/time.rb +21 -0
  322. data/spec/filters/unsupported/trusted.rb +26 -0
  323. data/spec/opal/{parser → compiler}/irb_spec.rb +9 -9
  324. data/spec/{parser → opal/parser}/alias_spec.rb +0 -0
  325. data/spec/{parser → opal/parser}/and_spec.rb +0 -0
  326. data/spec/{parser → opal/parser}/array_spec.rb +0 -0
  327. data/spec/{parser → opal/parser}/attrasgn_spec.rb +0 -0
  328. data/spec/{parser → opal/parser}/begin_spec.rb +0 -0
  329. data/spec/{parser → opal/parser}/block_spec.rb +0 -0
  330. data/spec/{parser → opal/parser}/break_spec.rb +0 -0
  331. data/spec/{parser → opal/parser}/call_spec.rb +33 -8
  332. data/spec/{parser → opal/parser}/class_spec.rb +0 -0
  333. data/spec/{parser → opal/parser}/const_spec.rb +0 -0
  334. data/spec/{parser → opal/parser}/cvar_spec.rb +0 -0
  335. data/spec/{parser → opal/parser}/def_spec.rb +17 -17
  336. data/spec/{parser → opal/parser}/false_spec.rb +0 -0
  337. data/spec/{parser → opal/parser}/file_spec.rb +0 -0
  338. data/spec/{parser → opal/parser}/gvar_spec.rb +0 -0
  339. data/spec/{parser → opal/parser}/hash_spec.rb +0 -0
  340. data/spec/opal/parser/heredoc_spec.rb +30 -0
  341. data/spec/{parser → opal/parser}/iasgn_spec.rb +0 -0
  342. data/spec/{parser → opal/parser}/if_spec.rb +0 -0
  343. data/spec/{parser → opal/parser}/int_spec.rb +0 -0
  344. data/spec/opal/parser/iter_spec.rb +59 -0
  345. data/spec/{parser → opal/parser}/ivar_spec.rb +0 -0
  346. data/spec/opal/parser/lambda_spec.rb +64 -0
  347. data/spec/{parser → opal/parser}/lasgn_spec.rb +0 -0
  348. data/spec/{parser → opal/parser}/line_spec.rb +0 -0
  349. data/spec/{parser → opal/parser}/lvar_spec.rb +6 -6
  350. data/spec/{parser → opal/parser}/masgn_spec.rb +0 -0
  351. data/spec/{parser → opal/parser}/module_spec.rb +0 -0
  352. data/spec/{parser → opal/parser}/nil_spec.rb +0 -0
  353. data/spec/{parser → opal/parser}/not_spec.rb +0 -0
  354. data/spec/{parser → opal/parser}/nth_ref_spec.rb +0 -0
  355. data/spec/{parser → opal/parser}/op_asgn1_spec.rb +0 -0
  356. data/spec/{parser → opal/parser}/op_asgn2_spec.rb +0 -0
  357. data/spec/{parser → opal/parser}/or_spec.rb +0 -0
  358. data/spec/{parser → opal/parser}/parse_spec.rb +17 -17
  359. data/spec/{parser → opal/parser}/regexp_spec.rb +0 -0
  360. data/spec/{parser → opal/parser}/return_spec.rb +0 -0
  361. data/spec/{parser → opal/parser}/sclass_spec.rb +0 -0
  362. data/spec/{parser → opal/parser}/self_spec.rb +0 -0
  363. data/spec/{parser → opal/parser}/str_spec.rb +1 -12
  364. data/spec/{parser → opal/parser}/string_spec.rb +0 -0
  365. data/spec/opal/parser/super_spec.rb +20 -0
  366. data/spec/{parser → opal/parser}/true_spec.rb +0 -0
  367. data/spec/{parser → opal/parser}/undef_spec.rb +0 -0
  368. data/spec/{parser → opal/parser}/unless_spec.rb +0 -0
  369. data/spec/{parser → opal/parser}/while_spec.rb +0 -0
  370. data/spec/{parser → opal/parser}/xstr_spec.rb +2 -2
  371. data/spec/{parser → opal/parser}/yield_spec.rb +0 -0
  372. data/spec/ospec/main.rb.erb +1 -13
  373. data/spec/ospec/mspec_fixes.rb +87 -0
  374. data/spec/ospec/runner.rb +188 -0
  375. data/spec/rubyspecs +351 -0
  376. data/spec/spec_helper.rb +8 -198
  377. data/spec/{opal → stdlib}/erb/erb_spec.rb +3 -3
  378. data/spec/{opal → stdlib}/erb/inline_block.opalerb +0 -0
  379. data/spec/{opal → stdlib}/erb/quoted.opalerb +0 -0
  380. data/spec/{opal → stdlib}/erb/simple.opalerb +0 -0
  381. data/spec/stdlib/json/ext_spec.rb +48 -0
  382. data/spec/{opal → stdlib}/json/parse_spec.rb +0 -0
  383. data/spec/stdlib/template/paths_spec.rb +10 -0
  384. data/stdlib/delegate.rb +29 -0
  385. data/stdlib/dir.rb +5 -0
  386. data/stdlib/file.rb +7 -0
  387. data/stdlib/json.rb +82 -27
  388. data/stdlib/opal-parser.rb +46 -0
  389. data/stdlib/opal-source-maps.js.erb +1 -1
  390. data/stdlib/pathname.rb +31 -0
  391. data/stdlib/{racc.rb → racc/parser.rb} +0 -0
  392. data/stdlib/securerandom.rb +12 -0
  393. data/stdlib/set.rb +89 -0
  394. data/stdlib/stringio.rb +12 -4
  395. data/stdlib/strscan.rb +19 -0
  396. data/stdlib/template.rb +4 -0
  397. data/stdlib/thread.rb +20 -0
  398. data/tasks/mspec.rake +147 -0
  399. metadata +650 -1266
  400. data/lib/opal/core_ext.rb +0 -5
  401. data/lib/opal/grammar.rb +0 -5137
  402. data/lib/opal/grammar_helpers.rb +0 -364
  403. data/lib/opal/require_parser.rb +0 -77
  404. data/spec/filters/bugs/alias.rb +0 -6
  405. data/spec/filters/bugs/ancestors.rb +0 -4
  406. data/spec/filters/bugs/array/combination.rb +0 -11
  407. data/spec/filters/bugs/array/count.rb +0 -3
  408. data/spec/filters/bugs/array/delete_if.rb +0 -3
  409. data/spec/filters/bugs/array/drop.rb +0 -3
  410. data/spec/filters/bugs/array/drop_while.rb +0 -5
  411. data/spec/filters/bugs/array/eql.rb +0 -3
  412. data/spec/filters/bugs/array/flatten.rb +0 -9
  413. data/spec/filters/bugs/array/minus.rb +0 -5
  414. data/spec/filters/bugs/array/multipliy.rb +0 -9
  415. data/spec/filters/bugs/array/new.rb +0 -3
  416. data/spec/filters/bugs/array/pop.rb +0 -6
  417. data/spec/filters/bugs/array/rassoc.rb +0 -4
  418. data/spec/filters/bugs/array/rindex.rb +0 -6
  419. data/spec/filters/bugs/array/select.rb +0 -3
  420. data/spec/filters/bugs/array/shift.rb +0 -7
  421. data/spec/filters/bugs/array/shuffle.rb +0 -11
  422. data/spec/filters/bugs/array/slice.rb +0 -7
  423. data/spec/filters/bugs/array/take.rb +0 -3
  424. data/spec/filters/bugs/array/to_a.rb +0 -3
  425. data/spec/filters/bugs/array/try_convert.rb +0 -7
  426. data/spec/filters/bugs/array/uniq.rb +0 -10
  427. data/spec/filters/bugs/array/zip.rb +0 -4
  428. data/spec/filters/bugs/array_delete.rb +0 -4
  429. data/spec/filters/bugs/array_fetch.rb +0 -3
  430. data/spec/filters/bugs/array_first.rb +0 -3
  431. data/spec/filters/bugs/array_flatten.rb +0 -14
  432. data/spec/filters/bugs/array_intersection.rb +0 -5
  433. data/spec/filters/bugs/array_join.rb +0 -6
  434. data/spec/filters/bugs/break.rb +0 -10
  435. data/spec/filters/bugs/case.rb +0 -4
  436. data/spec/filters/bugs/coerce_integer.rb +0 -9
  437. data/spec/filters/bugs/enumerable_sort_by.rb +0 -3
  438. data/spec/filters/bugs/kernel/instance_variables.rb +0 -3
  439. data/spec/filters/bugs/kernel/rand.rb +0 -4
  440. data/spec/filters/bugs/language/array.rb +0 -3
  441. data/spec/filters/bugs/language/block.rb +0 -6
  442. data/spec/filters/bugs/language/break.rb +0 -3
  443. data/spec/filters/bugs/language/class.rb +0 -12
  444. data/spec/filters/bugs/language/class_variables.rb +0 -12
  445. data/spec/filters/bugs/language/def.rb +0 -27
  446. data/spec/filters/bugs/language/defined.rb +0 -3
  447. data/spec/filters/bugs/language/ensure.rb +0 -4
  448. data/spec/filters/bugs/language/execution.rb +0 -4
  449. data/spec/filters/bugs/language/for.rb +0 -18
  450. data/spec/filters/bugs/language/if.rb +0 -13
  451. data/spec/filters/bugs/language/loop.rb +0 -4
  452. data/spec/filters/bugs/language/metaclass.rb +0 -14
  453. data/spec/filters/bugs/language/module.rb +0 -6
  454. data/spec/filters/bugs/language/next.rb +0 -3
  455. data/spec/filters/bugs/language/or.rb +0 -3
  456. data/spec/filters/bugs/language/order.rb +0 -4
  457. data/spec/filters/bugs/language/precedence.rb +0 -10
  458. data/spec/filters/bugs/language/proc.rb +0 -24
  459. data/spec/filters/bugs/language/redo.rb +0 -5
  460. data/spec/filters/bugs/language/rescue.rb +0 -9
  461. data/spec/filters/bugs/language/retry.rb +0 -5
  462. data/spec/filters/bugs/language/send.rb +0 -10
  463. data/spec/filters/bugs/language/super.rb +0 -9
  464. data/spec/filters/bugs/language/until.rb +0 -8
  465. data/spec/filters/bugs/language/variables.rb +0 -37
  466. data/spec/filters/bugs/language/while.rb +0 -6
  467. data/spec/filters/bugs/language/yield.rb +0 -5
  468. data/spec/filters/bugs/module/class_variables.rb +0 -6
  469. data/spec/filters/bugs/module/method_defined.rb +0 -6
  470. data/spec/filters/bugs/public_methods.rb +0 -4
  471. data/spec/filters/bugs/return.rb +0 -7
  472. data/spec/filters/bugs/source_map.rb +0 -3
  473. data/spec/filters/bugs/string/center.rb +0 -4
  474. data/spec/filters/bugs/string/lines.rb +0 -3
  475. data/spec/filters/mspec/mocks.rb +0 -3
  476. data/spec/filters/mspec/should_receive.rb +0 -5
  477. data/spec/filters/parser/block_args.rb +0 -51
  478. data/spec/mspec/guards/block_device.rb +0 -0
  479. data/spec/mspec/guards/endian.rb +0 -0
  480. data/spec/mspec/helpers/environment.rb +0 -0
  481. data/spec/mspec/helpers/language_version.rb +0 -0
  482. data/spec/mspec/helpers/tmp.rb +0 -0
  483. data/spec/opal/array/element_reference_spec.rb +0 -206
  484. data/spec/opal/array/equal_value_spec.rb +0 -19
  485. data/spec/opal/array/fill_spec.rb +0 -26
  486. data/spec/opal/array/reduce_spec.rb +0 -31
  487. data/spec/opal/array/to_json_spec.rb +0 -9
  488. data/spec/opal/basic_object/send_spec.rb +0 -28
  489. data/spec/opal/boolean/singleton_class_spec.rb +0 -9
  490. data/spec/opal/boolean/to_json_spec.rb +0 -11
  491. data/spec/opal/browser/local_storage_spec.rb +0 -55
  492. data/spec/opal/class/constants_spec.rb +0 -7
  493. data/spec/opal/class/extend_spec.rb +0 -47
  494. data/spec/opal/class/instance_methods_spec.rb +0 -13
  495. data/spec/opal/class/last_value_spec.rb +0 -67
  496. data/spec/opal/class/proc_methods_spec.rb +0 -23
  497. data/spec/opal/class/singleton_methods_spec.rb +0 -41
  498. data/spec/opal/hash/allocate_spec.rb +0 -16
  499. data/spec/opal/hash/new_spec.rb +0 -10
  500. data/spec/opal/hash/to_s_spec.rb +0 -9
  501. data/spec/opal/kernel/to_json_spec.rb +0 -7
  502. data/spec/opal/module/alias_method_spec.rb +0 -10
  503. data/spec/opal/module/attr_accessor_spec.rb +0 -8
  504. data/spec/opal/native/new_spec.rb +0 -19
  505. data/spec/opal/native/nil_spec.rb +0 -14
  506. data/spec/opal/nil/to_json_spec.rb +0 -7
  507. data/spec/opal/numeric/equal_spec.rb +0 -9
  508. data/spec/opal/runtime2/call_spec.rb +0 -16
  509. data/spec/opal/runtime2/class_hierarchy_spec.rb +0 -21
  510. data/spec/opal/runtime2/defined_spec.rb +0 -11
  511. data/spec/opal/runtime2/super_spec.rb +0 -16
  512. data/spec/opal/string/to_json_spec.rb +0 -8
  513. data/spec/parser/iter_spec.rb +0 -59
  514. data/spec/parser/lambda_spec.rb +0 -64
  515. data/spec/parser/parser_spec.rb +0 -41
  516. data/spec/parser/strscan/check_spec.rb +0 -13
  517. data/spec/parser/strscan/get_byte_spec.rb +0 -29
  518. data/spec/parser/strscan/scan_spec.rb +0 -33
  519. data/spec/parser/strscan/skip_spec.rb +0 -40
  520. data/spec/parser/super_spec.rb +0 -20
  521. data/spec/rubyspec/core/array/allocate_spec.rb +0 -19
  522. data/spec/rubyspec/core/array/append_spec.rb +0 -43
  523. data/spec/rubyspec/core/array/array_spec.rb +0 -7
  524. data/spec/rubyspec/core/array/assoc_spec.rb +0 -40
  525. data/spec/rubyspec/core/array/at_spec.rb +0 -56
  526. data/spec/rubyspec/core/array/choice_spec.rb +0 -20
  527. data/spec/rubyspec/core/array/clear_spec.rb +0 -61
  528. data/spec/rubyspec/core/array/clone_spec.rb +0 -15
  529. data/spec/rubyspec/core/array/collect_spec.rb +0 -53
  530. data/spec/rubyspec/core/array/combination_spec.rb +0 -55
  531. data/spec/rubyspec/core/array/compact_spec.rb +0 -111
  532. data/spec/rubyspec/core/array/comparison_spec.rb +0 -16
  533. data/spec/rubyspec/core/array/concat_spec.rb +0 -19
  534. data/spec/rubyspec/core/array/constructor_spec.rb +0 -24
  535. data/spec/rubyspec/core/array/count_spec.rb +0 -17
  536. data/spec/rubyspec/core/array/delete_at_spec.rb +0 -71
  537. data/spec/rubyspec/core/array/delete_if_spec.rb +0 -71
  538. data/spec/rubyspec/core/array/delete_spec.rb +0 -104
  539. data/spec/rubyspec/core/array/drop_spec.rb +0 -29
  540. data/spec/rubyspec/core/array/drop_while_spec.rb +0 -17
  541. data/spec/rubyspec/core/array/dup_spec.rb +0 -15
  542. data/spec/rubyspec/core/array/each_index_spec.rb +0 -40
  543. data/spec/rubyspec/core/array/each_spec.rb +0 -30
  544. data/spec/rubyspec/core/array/empty_spec.rb +0 -10
  545. data/spec/rubyspec/core/array/eql_spec.rb +0 -14
  546. data/spec/rubyspec/core/array/fetch_spec.rb +0 -52
  547. data/spec/rubyspec/core/array/find_index_spec.rb +0 -8
  548. data/spec/rubyspec/core/array/first_spec.rb +0 -89
  549. data/spec/rubyspec/core/array/fixtures/classes.rb +0 -538
  550. data/spec/rubyspec/core/array/flatten_spec.rb +0 -232
  551. data/spec/rubyspec/core/array/frozen_spec.rb +0 -32
  552. data/spec/rubyspec/core/array/include_spec.rb +0 -33
  553. data/spec/rubyspec/core/array/index_spec.rb +0 -6
  554. data/spec/rubyspec/core/array/insert_spec.rb +0 -90
  555. data/spec/rubyspec/core/array/inspect_spec.rb +0 -7
  556. data/spec/rubyspec/core/array/intersection_spec.rb +0 -78
  557. data/spec/rubyspec/core/array/join_spec.rb +0 -34
  558. data/spec/rubyspec/core/array/keep_if_spec.rb +0 -12
  559. data/spec/rubyspec/core/array/last_spec.rb +0 -88
  560. data/spec/rubyspec/core/array/length_spec.rb +0 -7
  561. data/spec/rubyspec/core/array/map_spec.rb +0 -11
  562. data/spec/rubyspec/core/array/max_spec.rb +0 -32
  563. data/spec/rubyspec/core/array/min_spec.rb +0 -32
  564. data/spec/rubyspec/core/array/minus_spec.rb +0 -89
  565. data/spec/rubyspec/core/array/multiply_spec.rb +0 -143
  566. data/spec/rubyspec/core/array/new_spec.rb +0 -137
  567. data/spec/rubyspec/core/array/ntimes_spec.rb +0 -26
  568. data/spec/rubyspec/core/array/plus_spec.rb +0 -64
  569. data/spec/rubyspec/core/array/pop_spec.rb +0 -196
  570. data/spec/rubyspec/core/array/push_spec.rb +0 -44
  571. data/spec/rubyspec/core/array/rassoc_spec.rb +0 -38
  572. data/spec/rubyspec/core/array/reject_spec.rb +0 -134
  573. data/spec/rubyspec/core/array/replace_spec.rb +0 -7
  574. data/spec/rubyspec/core/array/reverse_each_spec.rb +0 -37
  575. data/spec/rubyspec/core/array/reverse_spec.rb +0 -58
  576. data/spec/rubyspec/core/array/rindex_spec.rb +0 -71
  577. data/spec/rubyspec/core/array/select_spec.rb +0 -36
  578. data/spec/rubyspec/core/array/shared/collect.rb +0 -7
  579. data/spec/rubyspec/core/array/shared/enumeratorize.rb +0 -12
  580. data/spec/rubyspec/core/array/shared/eql.rb +0 -95
  581. data/spec/rubyspec/core/array/shared/index.rb +0 -37
  582. data/spec/rubyspec/core/array/shared/inspect.rb +0 -3
  583. data/spec/rubyspec/core/array/shared/join.rb +0 -7
  584. data/spec/rubyspec/core/array/shared/keep_if.rb +0 -3
  585. data/spec/rubyspec/core/array/shared/length.rb +0 -3
  586. data/spec/rubyspec/core/array/shared/replace.rb +0 -3
  587. data/spec/rubyspec/core/array/shared/slice.rb +0 -3
  588. data/spec/rubyspec/core/array/shift_spec.rb +0 -160
  589. data/spec/rubyspec/core/array/shuffle_spec.rb +0 -87
  590. data/spec/rubyspec/core/array/size_spec.rb +0 -7
  591. data/spec/rubyspec/core/array/slice_spec.rb +0 -166
  592. data/spec/rubyspec/core/array/sort_spec.rb +0 -271
  593. data/spec/rubyspec/core/array/take_spec.rb +0 -29
  594. data/spec/rubyspec/core/array/take_while_spec.rb +0 -17
  595. data/spec/rubyspec/core/array/to_a_spec.rb +0 -24
  596. data/spec/rubyspec/core/array/to_ary_spec.rb +0 -20
  597. data/spec/rubyspec/core/array/try_convert_spec.rb +0 -52
  598. data/spec/rubyspec/core/array/uniq_spec.rb +0 -167
  599. data/spec/rubyspec/core/array/unshift_spec.rb +0 -64
  600. data/spec/rubyspec/core/array/zip_spec.rb +0 -55
  601. data/spec/rubyspec/core/class/fixtures/classes.rb +0 -9
  602. data/spec/rubyspec/core/class/new_spec.rb +0 -113
  603. data/spec/rubyspec/core/enumerable/all_spec.rb +0 -130
  604. data/spec/rubyspec/core/enumerable/any_spec.rb +0 -150
  605. data/spec/rubyspec/core/enumerable/collect_spec.rb +0 -39
  606. data/spec/rubyspec/core/enumerable/count_spec.rb +0 -45
  607. data/spec/rubyspec/core/enumerable/detect_spec.rb +0 -48
  608. data/spec/rubyspec/core/enumerable/drop_spec.rb +0 -20
  609. data/spec/rubyspec/core/enumerable/drop_while_spec.rb +0 -18
  610. data/spec/rubyspec/core/enumerable/each_slice_spec.rb +0 -25
  611. data/spec/rubyspec/core/enumerable/each_with_index_spec.rb +0 -14
  612. data/spec/rubyspec/core/enumerable/each_with_object_spec.rb +0 -20
  613. data/spec/rubyspec/core/enumerable/entries_spec.rb +0 -9
  614. data/spec/rubyspec/core/enumerable/find_all_spec.rb +0 -16
  615. data/spec/rubyspec/core/enumerable/find_index_spec.rb +0 -44
  616. data/spec/rubyspec/core/enumerable/find_spec.rb +0 -56
  617. data/spec/rubyspec/core/enumerable/first_spec.rb +0 -43
  618. data/spec/rubyspec/core/enumerable/fixtures/classes.rb +0 -240
  619. data/spec/rubyspec/core/enumerable/grep_spec.rb +0 -24
  620. data/spec/rubyspec/core/enumerable/group_by_spec.rb +0 -16
  621. data/spec/rubyspec/core/enumerable/none_spec.rb +0 -68
  622. data/spec/rubyspec/core/enumerable/select_spec.rb +0 -16
  623. data/spec/rubyspec/core/enumerable/sort_by_spec.rb +0 -31
  624. data/spec/rubyspec/core/enumerable/take_spec.rb +0 -43
  625. data/spec/rubyspec/core/enumerable/to_a_spec.rb +0 -9
  626. data/spec/rubyspec/core/enumerator/each_spec.rb +0 -11
  627. data/spec/rubyspec/core/enumerator/new_spec.rb +0 -17
  628. data/spec/rubyspec/core/enumerator/next_spec.rb +0 -25
  629. data/spec/rubyspec/core/enumerator/rewind_spec.rb +0 -28
  630. data/spec/rubyspec/core/false/and_spec.rb +0 -11
  631. data/spec/rubyspec/core/false/inspect_spec.rb +0 -7
  632. data/spec/rubyspec/core/false/or_spec.rb +0 -11
  633. data/spec/rubyspec/core/false/to_s_spec.rb +0 -7
  634. data/spec/rubyspec/core/false/xor_spec.rb +0 -11
  635. data/spec/rubyspec/core/hash/allocate_spec.rb +0 -13
  636. data/spec/rubyspec/core/hash/assoc_spec.rb +0 -25
  637. data/spec/rubyspec/core/hash/clear_spec.rb +0 -19
  638. data/spec/rubyspec/core/hash/clone_spec.rb +0 -10
  639. data/spec/rubyspec/core/hash/constructor_spec.rb +0 -13
  640. data/spec/rubyspec/core/hash/default_proc_spec.rb +0 -20
  641. data/spec/rubyspec/core/hash/default_spec.rb +0 -17
  642. data/spec/rubyspec/core/hash/delete_if_spec.rb +0 -13
  643. data/spec/rubyspec/core/hash/delete_spec.rb +0 -11
  644. data/spec/rubyspec/core/hash/dup_spec.rb +0 -10
  645. data/spec/rubyspec/core/hash/each_key_spec.rb +0 -15
  646. data/spec/rubyspec/core/hash/each_pair_spec.rb +0 -30
  647. data/spec/rubyspec/core/hash/each_spec.rb +0 -36
  648. data/spec/rubyspec/core/hash/each_value_spec.rb +0 -15
  649. data/spec/rubyspec/core/hash/element_reference_spec.rb +0 -41
  650. data/spec/rubyspec/core/hash/element_set_spec.rb +0 -7
  651. data/spec/rubyspec/core/hash/empty_spec.rb +0 -10
  652. data/spec/rubyspec/core/hash/fetch_spec.rb +0 -24
  653. data/spec/rubyspec/core/hash/flatten_spec.rb +0 -46
  654. data/spec/rubyspec/core/hash/has_key_spec.rb +0 -24
  655. data/spec/rubyspec/core/hash/has_value_spec.rb +0 -12
  656. data/spec/rubyspec/core/hash/include_spec.rb +0 -24
  657. data/spec/rubyspec/core/hash/index_spec.rb +0 -13
  658. data/spec/rubyspec/core/hash/indexes_spec.rb +0 -9
  659. data/spec/rubyspec/core/hash/indices_spec.rb +0 -9
  660. data/spec/rubyspec/core/hash/invert_spec.rb +0 -12
  661. data/spec/rubyspec/core/hash/keep_if_spec.rb +0 -18
  662. data/spec/rubyspec/core/hash/key_spec.rb +0 -24
  663. data/spec/rubyspec/core/hash/keys_spec.rb +0 -10
  664. data/spec/rubyspec/core/hash/length_spec.rb +0 -10
  665. data/spec/rubyspec/core/hash/member_spec.rb +0 -24
  666. data/spec/rubyspec/core/hash/merge_spec.rb +0 -37
  667. data/spec/rubyspec/core/hash/new_spec.rb +0 -19
  668. data/spec/rubyspec/core/hash/rassoc_spec.rb +0 -34
  669. data/spec/rubyspec/core/hash/reject_spec.rb +0 -18
  670. data/spec/rubyspec/core/hash/replace_spec.rb +0 -7
  671. data/spec/rubyspec/core/hash/select_spec.rb +0 -52
  672. data/spec/rubyspec/core/hash/shift_spec.rb +0 -19
  673. data/spec/rubyspec/core/hash/size_spec.rb +0 -10
  674. data/spec/rubyspec/core/hash/to_a_spec.rb +0 -13
  675. data/spec/rubyspec/core/hash/to_json_spec.rb +0 -11
  676. data/spec/rubyspec/core/hash/update_spec.rb +0 -17
  677. data/spec/rubyspec/core/hash/value_spec.rb +0 -12
  678. data/spec/rubyspec/core/hash/values_at_spec.rb +0 -9
  679. data/spec/rubyspec/core/hash/values_spec.rb +0 -7
  680. data/spec/rubyspec/core/kernel/eql_spec.rb +0 -15
  681. data/spec/rubyspec/core/kernel/equal_spec.rb +0 -12
  682. data/spec/rubyspec/core/kernel/tap_spec.rb +0 -10
  683. data/spec/rubyspec/core/kernel/to_s_spec.rb +0 -5
  684. data/spec/rubyspec/core/matchdata/to_a_spec.rb +0 -5
  685. data/spec/rubyspec/core/nil/and_spec.rb +0 -11
  686. data/spec/rubyspec/core/nil/dup_spec.rb +0 -7
  687. data/spec/rubyspec/core/nil/inspect_spec.rb +0 -7
  688. data/spec/rubyspec/core/nil/nil_spec.rb +0 -7
  689. data/spec/rubyspec/core/nil/or_spec.rb +0 -11
  690. data/spec/rubyspec/core/nil/to_a_spec.rb +0 -7
  691. data/spec/rubyspec/core/nil/to_f_spec.rb +0 -11
  692. data/spec/rubyspec/core/nil/to_h_spec.rb +0 -10
  693. data/spec/rubyspec/core/nil/to_i_spec.rb +0 -11
  694. data/spec/rubyspec/core/nil/to_s_spec.rb +0 -7
  695. data/spec/rubyspec/core/nil/xor_spec.rb +0 -11
  696. data/spec/rubyspec/core/numeric/to_s_spec.rb +0 -8
  697. data/spec/rubyspec/core/range/begin_spec.rb +0 -9
  698. data/spec/rubyspec/core/range/case_compare_spec.rb +0 -15
  699. data/spec/rubyspec/core/range/end_spec.rb +0 -9
  700. data/spec/rubyspec/core/regexp/match_spec.rb +0 -95
  701. data/spec/rubyspec/core/string/capitalize_spec.rb +0 -10
  702. data/spec/rubyspec/core/string/casecmp_spec.rb +0 -16
  703. data/spec/rubyspec/core/string/center_spec.rb +0 -49
  704. data/spec/rubyspec/core/string/chomp_spec.rb +0 -48
  705. data/spec/rubyspec/core/string/downcase_spec.rb +0 -6
  706. data/spec/rubyspec/core/string/empty_spec.rb +0 -7
  707. data/spec/rubyspec/core/string/end_with_spec.rb +0 -16
  708. data/spec/rubyspec/core/string/include_spec.rb +0 -6
  709. data/spec/rubyspec/core/string/index_spec.rb +0 -405
  710. data/spec/rubyspec/core/string/intern_spec.rb +0 -9
  711. data/spec/rubyspec/core/string/length_spec.rb +0 -9
  712. data/spec/rubyspec/core/string/reverse_spec.rb +0 -7
  713. data/spec/rubyspec/core/string/size_spec.rb +0 -9
  714. data/spec/rubyspec/core/string/start_with_spec.rb +0 -12
  715. data/spec/rubyspec/core/string/swapcase_spec.rb +0 -13
  716. data/spec/rubyspec/core/string/to_a_spec.rb +0 -9
  717. data/spec/rubyspec/core/string/to_s_spec.rb +0 -6
  718. data/spec/rubyspec/core/string/to_str_spec.rb +0 -6
  719. data/spec/rubyspec/core/string/to_sym_spec.rb +0 -9
  720. data/spec/rubyspec/core/string/upcase_spec.rb +0 -6
  721. data/spec/rubyspec/core/struct/fixtures/classes.rb +0 -26
  722. data/spec/rubyspec/core/struct/initialize_spec.rb +0 -11
  723. data/spec/rubyspec/core/struct/new_spec.rb +0 -24
  724. data/spec/rubyspec/core/symbol/to_proc_spec.rb +0 -12
  725. data/spec/rubyspec/core/time/at_spec.rb +0 -7
  726. data/spec/rubyspec/core/time/day_spec.rb +0 -5
  727. data/spec/rubyspec/core/time/friday_spec.rb +0 -9
  728. data/spec/rubyspec/core/time/hour_spec.rb +0 -5
  729. data/spec/rubyspec/core/time/min_spec.rb +0 -5
  730. data/spec/rubyspec/core/time/monday_spec.rb +0 -9
  731. data/spec/rubyspec/core/time/month_spec.rb +0 -5
  732. data/spec/rubyspec/core/time/now_spec.rb +0 -5
  733. data/spec/rubyspec/core/time/saturday_spec.rb +0 -9
  734. data/spec/rubyspec/core/true/and_spec.rb +0 -11
  735. data/spec/rubyspec/core/true/inspect_spec.rb +0 -7
  736. data/spec/rubyspec/core/true/or_spec.rb +0 -11
  737. data/spec/rubyspec/core/true/to_s_spec.rb +0 -7
  738. data/spec/rubyspec/core/true/xor_spec.rb +0 -11
  739. data/spec/rubyspec/language/alias_spec.rb +0 -160
  740. data/spec/rubyspec/language/and_spec.rb +0 -66
  741. data/spec/rubyspec/language/array_spec.rb +0 -117
  742. data/spec/rubyspec/language/break_spec.rb +0 -332
  743. data/spec/rubyspec/language/case_spec.rb +0 -310
  744. data/spec/rubyspec/language/class_spec.rb +0 -190
  745. data/spec/rubyspec/language/class_variable_spec.rb +0 -56
  746. data/spec/rubyspec/language/def_spec.rb +0 -551
  747. data/spec/rubyspec/language/defined_spec.rb +0 -107
  748. data/spec/rubyspec/language/ensure_spec.rb +0 -104
  749. data/spec/rubyspec/language/execution_spec.rb +0 -15
  750. data/spec/rubyspec/language/for_spec.rb +0 -192
  751. data/spec/rubyspec/language/hash_spec.rb +0 -65
  752. data/spec/rubyspec/language/if_spec.rb +0 -356
  753. data/spec/rubyspec/language/literal_lambda_spec.rb +0 -1
  754. data/spec/rubyspec/language/loop_spec.rb +0 -67
  755. data/spec/rubyspec/language/metaclass_spec.rb +0 -159
  756. data/spec/rubyspec/language/module_spec.rb +0 -56
  757. data/spec/rubyspec/language/next_spec.rb +0 -469
  758. data/spec/rubyspec/language/not_spec.rb +0 -55
  759. data/spec/rubyspec/language/or_spec.rb +0 -90
  760. data/spec/rubyspec/language/order_spec.rb +0 -77
  761. data/spec/rubyspec/language/precedence_spec.rb +0 -483
  762. data/spec/rubyspec/language/redo_spec.rb +0 -65
  763. data/spec/rubyspec/language/rescue_spec.rb +0 -121
  764. data/spec/rubyspec/language/retry_spec.rb +0 -56
  765. data/spec/rubyspec/language/return_spec.rb +0 -281
  766. data/spec/rubyspec/language/singleton_class_spec.rb +0 -32
  767. data/spec/rubyspec/language/super_spec.rb +0 -284
  768. data/spec/rubyspec/language/undef_spec.rb +0 -16
  769. data/spec/rubyspec/language/unless_spec.rb +0 -45
  770. data/spec/rubyspec/language/until_spec.rb +0 -234
  771. data/spec/rubyspec/language/while_spec.rb +0 -238
  772. data/spec/rubyspec/language/yield_spec.rb +0 -128
  773. data/spec/rubyspec/library/date/new_spec.rb +0 -10
  774. data/spec/rubyspec/library/date/to_s_spec.rb +0 -7
  775. data/spec/rubyspec/library/date/today_spec.rb +0 -7
  776. data/spec/rubyspec/library/erb/util/html_escape_spec.rb +0 -10
  777. data/spec/rubyspec/library/observer/add_observer_spec.rb +0 -31
  778. data/spec/rubyspec/library/observer/count_observers_spec.rb +0 -33
  779. data/spec/rubyspec/library/observer/delete_observer_spec.rb +0 -19
  780. data/spec/rubyspec/library/observer/delete_observers_spec.rb +0 -19
  781. data/spec/rubyspec/library/observer/fixtures/classes.rb +0 -25
  782. data/spec/rubyspec/library/observer/notify_observers_spec.rb +0 -31
  783. data/spec/rubyspec/library/rbconfig/config_spec.rb +0 -47
  784. data/spec/rubyspec/library/singleton/clone_spec.rb +0 -8
  785. data/spec/rubyspec/library/singleton/dup_spec.rb +0 -8
  786. data/spec/rubyspec/library/singleton/fixtures/classes.rb +0 -18
  787. data/spec/rubyspec/library/singleton/instance_spec.rb +0 -30
  788. data/spec/rubyspec/library/stringscanner/element_reference_spec.rb +0 -29
  789. data/spec/rubyspec/library/stringscanner/pos_spec.rb +0 -20
  790. data/spec/rubyspec/spec_helper.rb +0 -96
  791. data/stdlib/fileutils.rb +0 -0
  792. data/stdlib/iconv.rb +0 -0
  793. data/stdlib/opal-browser/local_storage.rb +0 -27
  794. data/stdlib/opal-browser/script_loader.rb +0 -35
  795. data/stdlib/opal-parser.js.erb +0 -13
  796. data/stdlib/yaml.rb +0 -0
@@ -0,0 +1,4 @@
1
+ opal_filter "BasicObject" do
2
+ fails "BasicObject#instance_eval evaluates strings"
3
+ fails "BasicObject#instance_exec passes arguments to the block"
4
+ end
@@ -0,0 +1,4 @@
1
+ opal_filter "Class" do
2
+ fails "Class.new raises a TypeError if passed a metaclass"
3
+ fails "Class#new passes the block to #initialize"
4
+ end
@@ -0,0 +1,58 @@
1
+ opal_filter "Enumerable" do
2
+ fails "Enumerable#drop passed a number n as an argument tries to convert n to an Integer using #to_int"
3
+
4
+ fails "Enumerable#drop_while passes elements to the block until the first false"
5
+
6
+ fails "Enumerable#each_slice raises an Argument Error if there is not a single parameter > 0"
7
+
8
+ fails "Enumerable#each_with_index provides each element to the block"
9
+ fails "Enumerable#each_with_index provides each element to the block and its index"
10
+ fails "Enumerable#each_with_index binds splat arguments properly"
11
+ fails "Enumerable#each_with_index passes extra parameters to each"
12
+
13
+ fails "Enumerable#entries passes arguments to each"
14
+
15
+ fails "Enumerable#first when passed an argument consumes only what is needed"
16
+ fails "Enumerable#first when passed an argument raises a TypeError if the passed argument is not numeric"
17
+ fails "Enumerable#first when passed an argument tries to convert the passed argument to an Integer using #to_int"
18
+ fails "Enumerable#first when passed an argument raises an ArgumentError when count is negative"
19
+
20
+ fails "Enumerable#grep can use $~ in the block when used with a Regexp"
21
+
22
+ fails "Enumerable#group_by returns a hash without default_proc"
23
+ fails "Enumerable#group_by gathers whole arrays as elements when each yields multiple"
24
+
25
+ fails "Enumerable#include? returns true if any element == argument for numbers"
26
+ fails "Enumerable#include? gathers whole arrays as elements when each yields multiple"
27
+
28
+ fails "Enumerable#inject returns nil when fails(legacy rubycon)"
29
+ fails "Enumerable#inject without inject arguments(legacy rubycon)"
30
+ fails "Enumerable#inject can take a symbol argument"
31
+ fails "Enumerable#inject ignores the block if two arguments"
32
+ fails "Enumerable#inject can take two argument"
33
+
34
+ fails "Enumerable#max raises an ArgumentError for incomparable elements"
35
+ fails "Enumerable#max gathers whole arrays as elements when each yields multiple"
36
+
37
+ fails "Enumerable#member? returns true if any element == argument for numbers"
38
+ fails "Enumerable#member? gathers whole arrays as elements when each yields multiple"
39
+
40
+ fails "Enumerable#min raises an ArgumentError for incomparable elements"
41
+ fails "Enumerable#min gathers whole arrays as elements when each yields multiple"
42
+
43
+ fails "Enumerable#reduce returns nil when fails(legacy rubycon)"
44
+ fails "Enumerable#reduce without inject arguments(legacy rubycon)"
45
+ fails "Enumerable#reduce can take a symbol argument"
46
+ fails "Enumerable#reduce ignores the block if two arguments"
47
+ fails "Enumerable#reduce can take two argument"
48
+
49
+ fails "Enumerable#select passes through the values yielded by #each_with_index"
50
+ fails "Enumerable#select returns an enumerator when no block given"
51
+
52
+ fails "Enumerable#take when passed an argument consumes only what is needed"
53
+ fails "Enumerable#take when passed an argument raises a TypeError if the passed argument is not numeric"
54
+ fails "Enumerable#take when passed an argument tries to convert the passed argument to an Integer using #to_int"
55
+ fails "Enumerable#take when passed an argument raises an ArgumentError when count is negative"
56
+
57
+ fails "Enumerable#to_a passes arguments to each"
58
+ end
@@ -0,0 +1,6 @@
1
+ opal_filter "Enumerator" do
2
+ fails "Enumerator.new accepts a block"
3
+ fails "Enumerator.new ignores block if arg given"
4
+ fails "Enumerator#rewind works with peek to reset the position"
5
+ fails "Enumerator#rewind calls the enclosed object's rewind method if one exists"
6
+ end
@@ -0,0 +1,146 @@
1
+ opal_filter "Hash" do
2
+ fails "Hash includes Enumerable"
3
+
4
+ fails "Hash#assoc only returns the first matching key-value pair for identity hashes"
5
+
6
+ fails "Hash.[] creates a Hash; values can be provided as a list of value-pairs in an array"
7
+ fails "Hash.[] coerces a single argument which responds to #to_ary"
8
+ fails "Hash.[] ignores elements that are not arrays"
9
+ fails "Hash.[] raises an ArgumentError for arrays of more than 2 elements"
10
+ fails "Hash.[] raises an ArgumentError when passed a list of value-invalid-pairs in an array"
11
+ fails "Hash.[] raises an ArgumentError when passed an odd number of arguments"
12
+ fails "Hash.[] calls to_hash"
13
+ fails "Hash.[] returns an instance of a subclass when passed an Array"
14
+ fails "Hash.[] returns instances of subclasses"
15
+ fails "Hash.[] returns an instance of the class it's called on"
16
+ fails "Hash.[] does not call #initialize on the subclass instance"
17
+ fails "Hash.[] passed an array treats elements that are 2 element arrays as key and value"
18
+ fails "Hash.[] passed an array treats elements that are 1 element arrays as keys with value nil"
19
+ fails "Hash.[] passed a single argument which responds to #to_hash coerces it and returns a copy"
20
+
21
+ fails "Hash#default_proc= uses :to_proc on its argument"
22
+ fails "Hash#default_proc= overrides the static default"
23
+ fails "Hash#default_proc= raises an error if passed stuff not convertible to procs"
24
+ fails "Hash#default_proc= raises a TypeError if passed a lambda with an arity other than 2"
25
+
26
+ fails "Hash#default uses the default proc to compute a default value, passing given key"
27
+ fails "Hash#default= unsets the default proc"
28
+
29
+ fails "Hash#delete calls supplied block if the key is not found"
30
+
31
+ fails "Hash#each properly expands (or not) child class's 'each'-yielded args"
32
+ fails "Hash#each yields the key only to a block expecting |key,|"
33
+
34
+ fails "Hash#each_pair properly expands (or not) child class's 'each'-yielded args"
35
+ fails "Hash#each_pair yields the key only to a block expecting |key,|"
36
+
37
+ fails "Hash#== compares the values in self to values in other hash"
38
+ fails "Hash#== returns true iff other Hash has the same number of keys and each key-value pair matches"
39
+ fails "Hash#== compares keys with matching hash codes via eql?"
40
+ fails "Hash#== compares keys with eql? semantics"
41
+ fails "Hash#== computes equality for recursive hashes & arrays"
42
+ fails "Hash#== computes equality for complex recursive hashes"
43
+ fails "Hash#== does not compare keys with different hash codes via eql?"
44
+ fails "Hash#== first compares keys via hash"
45
+ fails "Hash#== does not compare values when keys don't match"
46
+
47
+ fails "Hash#eql? compares the values in self to values in other hash"
48
+ fails "Hash#eql? returns true iff other Hash has the same number of keys and each key-value pair matches"
49
+ fails "Hash#eql? compares keys with matching hash codes via eql?"
50
+ fails "Hash#eql? compares keys with eql? semantics"
51
+ fails "Hash#eql? computes equality for recursive hashes & arrays"
52
+ fails "Hash#eql? computes equality for complex recursive hashes"
53
+ fails "Hash#eql? does not compare keys with different hash codes via eql?"
54
+ fails "Hash#eql? first compares keys via hash"
55
+ fails "Hash#eql? does not compare values when keys don't match"
56
+
57
+ fails "Hash#[] calls subclass implementations of default"
58
+ fails "Hash#[] does not create copies of the immediate default value"
59
+ fails "Hash#[] compares keys with eql? semantics"
60
+ fails "Hash#[] compares key via hash"
61
+ fails "Hash#[] does not compare keys with different #hash values via #eql?"
62
+ fails "Hash#[] compares keys with the same #hash value via #eql?"
63
+ fails "Hash#[] finds a value via an identical key even when its #eql? isn't reflexive"
64
+
65
+ fails "Hash#[]= stores unequal keys that hash to the same value"
66
+ fails "Hash#[]= associates the key with the value and return the value"
67
+
68
+ fails "Hash#fetch raises an ArgumentError when not passed one or two arguments"
69
+
70
+ fails "Hash#flatten recursively flattens Array values to the given depth"
71
+ fails "Hash#flatten raises an TypeError if given a non-Integer argument"
72
+
73
+ fails "Hash#has_key? compares keys with the same #hash value via #eql?"
74
+ fails "Hash#has_key? returns true if argument is a key"
75
+
76
+ fails "Hash#hash returns the same hash for recursive hashes through arrays"
77
+ fails "Hash#hash returns the same hash for recursive hashes"
78
+ fails "Hash#hash generates a hash for recursive hash structures"
79
+ fails "Hash#hash returns a value which doesn't depend on the hash order"
80
+
81
+ fails "Hash#include? compares keys with the same #hash value via #eql?"
82
+ fails "Hash#include? returns true if argument is a key"
83
+
84
+ fails "Hash#invert compares new keys with eql? semantics"
85
+
86
+ fails "Hash#initialize_copy does not transfer default values"
87
+ fails "Hash#initialize_copy calls to_hash on hash subclasses"
88
+ fails "Hash#initialize_copy tries to convert the passed argument to a hash using #to_hash"
89
+ fails "Hash#initialize_copy replaces the contents of self with other"
90
+
91
+ fails "Hash#inspect handles hashes with recursive values"
92
+
93
+ fails "Hash#key? compares keys with the same #hash value via #eql?"
94
+ fails "Hash#key? returns true if argument is a key"
95
+
96
+ fails "Hash#member? compares keys with the same #hash value via #eql?"
97
+ fails "Hash#member? returns true if argument is a key"
98
+
99
+ fails "Hash#merge tries to convert the passed argument to a hash using #to_hash"
100
+ fails "Hash#merge returns subclass instance for subclasses"
101
+
102
+ fails "Hash#merge! tries to convert the passed argument to a hash using #to_hash"
103
+
104
+ fails "Hash.new raises an ArgumentError if more than one argument is passed"
105
+ fails "Hash.new raises an ArgumentError if passed both default argument and default block"
106
+
107
+ fails "Hash#rassoc uses #== to compare the argument to the values"
108
+
109
+ fails "Hash#rehash reorganizes the hash by recomputing all key hash codes"
110
+
111
+ fails "Hash#reject returns subclass instance for subclasses"
112
+ fails "Hash#reject processes entries with the same order as reject!"
113
+ fails "Hash#reject! removes keys from self for which the block yields true"
114
+ fails "Hash#reject! is equivalent to delete_if if changes are made"
115
+ fails "Hash#reject! returns nil if no changes were made"
116
+ fails "Hash#reject! processes entries with the same order as delete_if"
117
+ fails "Hash#reject! returns an Enumerator if called on a non-empty hash without a block"
118
+ fails "Hash#reject! returns an Enumerator if called on an empty hash without a block"
119
+
120
+ fails "Hash#replace tries to convert the passed argument to a hash using #to_hash"
121
+ fails "Hash#replace does not transfer default values"
122
+
123
+ fails "Hash#select returns a Hash of entries for which block is true"
124
+
125
+ fails "Hash#shift returns (computed) default for empty hashes"
126
+
127
+ fails "Hash#store stores unequal keys that hash to the same value"
128
+ fails "Hash#store associates the key with the value and return the value"
129
+
130
+ fails "Hash#sort converts self to a nested array of [key, value] arrays and sort with Array#sort"
131
+ fails "Hash#sort works when some of the keys are themselves arrays"
132
+ fails "Hash#sort uses block to sort array if passed a block"
133
+
134
+ fails "Hash#to_s handles hashes with recursive values"
135
+
136
+ fails "Hash.try_convert does not rescue exceptions raised by #to_hash"
137
+ fails "Hash.try_convert sends #to_hash to the argument and raises TypeError if it's not a kind of Hash"
138
+ fails "Hash.try_convert sends #to_hash to the argument and returns the result if it's a kind of Hash"
139
+ fails "Hash.try_convert sends #to_hash to the argument and returns the result if it's a Hash"
140
+ fails "Hash.try_convert sends #to_hash to the argument and returns the result if it's nil"
141
+ fails "Hash.try_convert returns nil when the argument does not respond to #to_hash"
142
+ fails "Hash.try_convert returns the argument if it's a kind of Hash"
143
+ fails "Hash.try_convert returns the argument if it's a Hash"
144
+
145
+ fails "Hash#update tries to convert the passed argument to a hash using #to_hash"
146
+ end
@@ -0,0 +1,10 @@
1
+ opal_filter "Kernel" do
2
+ fails "Kernel.rand returns a float if no argument is passed"
3
+ fails "Kernel.rand returns an integer for an integer argument"
4
+
5
+ fails "Kernel#<=> returns 0 if self is == to the argument"
6
+ fails "Kernel#<=> returns nil if self is eql? but not == to the argument"
7
+ fails "Kernel#<=> returns nil if self.==(arg) returns nil"
8
+
9
+ fails "Kernel#equal? returns true only if obj and other are the same object"
10
+ end
@@ -0,0 +1,366 @@
1
+ opal_filter "language" do
2
+ fails "The alias keyword operates on methods with splat arguments defined in a superclass"
3
+ fails "The alias keyword operates on the object's metaclass when used in instance_eval"
4
+ fails "The alias keyword operates on methods defined via attr, attr_reader, and attr_accessor"
5
+ fails "The alias keyword operates on methods with splat arguments defined in a superclass using text block for class eval"
6
+ fails "The alias keyword is not allowed against Fixnum or String instances"
7
+ fails "The alias keyword adds the new method to the list of public methods"
8
+ fails "The alias keyword adds the new method to the list of methods"
9
+
10
+ fails "The unpacking splat operator (*) when applied to a non-Array value attempts to coerce it to Array if the object respond_to?(:to_a)"
11
+ fails "The unpacking splat operator (*) returns a new array containing the same values when applied to an array inside an empty array"
12
+ fails "The unpacking splat operator (*) unpacks the start and count arguments in an array slice assignment"
13
+ fails "The unpacking splat operator (*) unpacks arguments as if they were listed statically"
14
+
15
+ fails "A block arguments with _ assigns the first variable named"
16
+ fails "A block arguments with _ extracts arguments with _"
17
+ fails "A block taking |*a| arguments does not call #to_ary to convert a single yielded object to an Array"
18
+ fails "A block taking |*| arguments does not call #to_ary to convert a single yielded object to an Array"
19
+ fails "A block allows for a leading space before the arguments"
20
+ fails "A block taking |a, b| arguments assigns 'nil' and 'nil' to the arguments when a single, empty Array is yielded"
21
+ fails "A block taking |a, b| arguments assigns the element of a single element Array to the first argument"
22
+ fails "A block taking |a, b| arguments destructures a single Array value yielded"
23
+ fails "A block taking |a, b| arguments calls #to_ary to convert a single yielded object to an Array"
24
+ fails "A block taking |a, b| arguments does not call #to_ary if the single yielded object is an Array"
25
+ fails "A block taking |a, b| arguments raises an TypeError if #to_ary does not return an Array"
26
+ fails "A block taking |a, *b| arguments assigns 'nil' and '[]' to the arguments when a single, empty Array is yielded"
27
+ fails "A block taking |a, *b| arguments assigns the element of a single element Array to the first argument"
28
+ fails "A block taking |a, *b| arguments destructures a single Array value assigning the remaining values to the rest argument"
29
+ fails "A block taking |a, *b| arguments calls #to_ary to convert a single yielded object to an Array"
30
+ fails "A block taking |a, *b| arguments does not call #to_ary if the single yielded object is an Array"
31
+ fails "A block taking |a, *b| arguments raises an TypeError if #to_ary does not return an Array"
32
+ fails "A block taking |*| arguments does not raise an exception when no values are yielded"
33
+ fails "A block taking |*| arguments does not raise an exception when values are yielded"
34
+ fails "A block taking |*| arguments does not call #to_ary if the single yielded object is an Array"
35
+ fails "A block taking |*| arguments does not call #to_ary if the object does not respond to #to_ary"
36
+ fails "A block taking |*a| arguments does not call #to_ary if the single yielded object is an Array"
37
+ fails "A block taking |a, | arguments assigns nil to the argument when no values are yielded"
38
+ fails "A block taking |a, | arguments assgins the argument a single value yielded"
39
+ fails "A block taking |a, | arguments assigns the argument the first value yielded"
40
+ fails "A block taking |a, | arguments assigns the argument the first of several values yielded when it is an Array"
41
+ fails "A block taking |a, | arguments assigns nil to the argument when passed an empty Array"
42
+ fails "A block taking |a, | arguments assigns the argument the first element of the Array when passed a single Array"
43
+ fails "A block taking |a, | arguments calls #to_ary to convert a single yielded object to an Array"
44
+ fails "A block taking |a, | arguments does not call #to_ary if the single yielded object is an Array"
45
+ fails "A block taking |a, | arguments does not call #to_ary if the object does not respond to #to_ary"
46
+ fails "A block taking |a, | arguments raises an TypeError if #to_ary does not return an Array"
47
+ fails "A block taking |(a, b)| arguments calls #to_ary to convert a single yielded object to an Array"
48
+ fails "A block taking |(a, b)| arguments does not call #to_ary if the single yielded object is an Array"
49
+ fails "A block taking |(a, b)| arguments raises an TypeError if #to_ary does not return an Array"
50
+ fails "A block taking |(a, b), c| arguments assigns nil to the arguments when yielded no values"
51
+ fails "A block taking |(a, b), c| arguments destructures a single one-level Array value yielded"
52
+ fails "A block taking |(a, b), c| arguments destructures a single multi-level Array value yielded"
53
+ fails "A block taking |(a, b), c| arguments calls #to_ary to convert a single yielded object to an Array"
54
+ fails "A block taking |(a, b), c| arguments does not call #to_ary if the single yielded object is an Array"
55
+ fails "A block taking |(a, b), c| arguments does not call #to_ary if the object does not respond to #to_ary"
56
+ fails "A block taking |(a, b), c| arguments raises an TypeError if #to_ary does not return an Array"
57
+ fails "A block taking nested |a, (b, (c, d))| assigns nil to the arguments when yielded no values"
58
+ fails "A block taking nested |a, (b, (c, d))| destructures separate yielded values"
59
+ fails "A block taking nested |a, (b, (c, d))| destructures a single multi-level Array value yielded"
60
+ fails "A block taking nested |a, (b, (c, d))| destructures a single multi-level Array value yielded"
61
+ fails "A block taking nested |a, ((b, c), d)| assigns nil to the arguments when yielded no values"
62
+ fails "A block taking nested |a, ((b, c), d)| destructures separate yielded values"
63
+ fails "A block taking nested |a, ((b, c), d)| destructures a single multi-level Array value yielded"
64
+ fails "A block taking nested |a, ((b, c), d)| destructures a single multi-level Array value yielded"
65
+
66
+ fails "Break inside a while loop with a splat wraps a non-Array in an Array"
67
+ 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"
68
+ 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"
69
+ 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"
70
+ fails "The break statement in a captured block from a scope that has returned raises a LocalJumpError when calling the block from a method"
71
+ fails "The break statement in a captured block from a scope that has returned raises a LocalJumpError when yielding to the block"
72
+ 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"
73
+ 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"
74
+ fails "Executing break from within a block returns from the original invoking method even in case of chained calls"
75
+
76
+ fails "The 'case'-construct lets you define a method after the case statement"
77
+ fails "The 'case'-construct with no target expression evaluates true as only 'true' when true is the first clause"
78
+
79
+ fails "A class variable can be accessed from a subclass"
80
+ fails "A class variable is set in the superclass"
81
+ fails "A class variable defined in a module can be accessed from classes that extend the module"
82
+ fails "A class variable defined in a module is not defined in these classes"
83
+ fails "A class variable defined in a module is only updated in the module a method defined in the module is used"
84
+ fails "A class variable defined in a module is updated in the class when a Method defined in the class is used"
85
+ fails "A class variable defined in a module can be accessed inside the class using the module methods"
86
+ fails "A class variable defined in a module can be accessed from modules that extend the module"
87
+ fails "A class variable defined in a module is defined in the extended module"
88
+ fails "A class variable defined in a module is not defined in the extending module"
89
+
90
+ fails "A class definition raises TypeError if the constant qualifying the class is nil"
91
+ fails "A class definition raises TypeError if any constant qualifying the class is not a Module"
92
+ fails "A class definition allows using self as the superclass if self is a class"
93
+ fails "A class definition raises TypeError if constant given as class name exists and is not a Module"
94
+ fails "A class definition raises a TypeError if inheriting from a metaclass"
95
+ fails "A class definition extending an object (sclass) raises a TypeError when trying to extend numbers"
96
+ fails "A class definition extending an object (sclass) allows accessing the block of the original scope"
97
+ fails "A class definition extending an object (sclass) can use return to cause the enclosing method to return"
98
+ fails "An outer class definition contains the inner classes"
99
+ fails "An outer class definition contains the inner classes"
100
+ fails "A class definition stores instance variables defined in the class body in the class object"
101
+ fails "Reopening a class adds new methods to subclasses"
102
+
103
+ fails "The def keyword within a closure looks outside the closure for the visibility"
104
+ fails "a method definition that sets more than one default parameter all to the same value treats the argument after the multi-parameter normally"
105
+ fails "a method definition that sets more than one default parameter all to the same value only allows overriding the default value of the first such parameter in each set"
106
+ fails "A method definition in an eval creates a singleton method"
107
+ fails "A method definition in an eval creates a class method"
108
+ fails "A method definition in an eval creates an instance method"
109
+ fails "A method definition inside an instance_eval creates a class method when the receiver is a class"
110
+ fails "A method definition inside a metaclass scope raises RuntimeError if frozen"
111
+ fails "A singleton method defined with extreme default arguments may use a lambda as a default"
112
+ fails "A singleton method defined with extreme default arguments may use preceding arguments as defaults"
113
+ fails "A singleton method defined with extreme default arguments evaluates the defaults in the singleton scope"
114
+ fails "A singleton method defined with extreme default arguments may use an fcall as a default"
115
+ fails "A singleton method defined with extreme default arguments may use a method definition as a default"
116
+ fails "A method defined with extreme default arguments may use an fcall as a default"
117
+ fails "A method defined with extreme default arguments can redefine itself when the default is evaluated"
118
+ fails "Redefining a singleton method does not inherit a previously set visibility "
119
+ fails "Redefining a singleton method does not inherit a previously set visibility "
120
+ fails "A singleton method definition raises RuntimeError if frozen"
121
+ fails "A singleton method definition can be declared for a class variable"
122
+ fails "A singleton method definition can be declared for a global variable"
123
+ fails "A singleton method definition can be declared for an instance variable"
124
+ fails "A singleton method definition can be declared for a local variable"
125
+
126
+ fails "The defined? keyword for a scoped constant returns nil when an undefined constant is scoped to a defined constant"
127
+ fails "The defined? keyword for a top-level scoped constant returns nil when an undefined constant is scoped to a defined constant"
128
+
129
+ fails "An ensure block inside a begin block is executed even when a symbol is thrown in it's corresponding begin block"
130
+ fails "An ensure block inside a method is executed even when a symbol is thrown in the method"
131
+
132
+ fails "`` returns the output of the executed sub-process"
133
+ fails "%x is the same as ``"
134
+
135
+ fails "The for expression repeats current iteration with 'redo'"
136
+ fails "The for expression starts the next iteration with 'next'"
137
+ fails "The for expression allows 'break' to have an argument which becomes the value of the for expression"
138
+ fails "The for expression breaks out of a loop upon 'break', returning nil"
139
+ fails "The for expression returns expr"
140
+ fails "The for expression executes code in containing variable scope with 'do'"
141
+ fails "The for expression executes code in containing variable scope"
142
+ fails "The for expression allows body begin on the same line if do is used"
143
+ fails "The for expression optionally takes a 'do' after the expression"
144
+ fails "The for expression yields only as many values as there are arguments"
145
+ fails "The for expression allows a constant as an iterator name"
146
+ fails "The for expression allows a class variable as an iterator name"
147
+ fails "The for expression allows an instance variable as an iterator name"
148
+ fails "The for expression iterates over any object responding to 'each'"
149
+ fails "The for expression iterates over an Hash passing each key-value pair to the block"
150
+ fails "The for expression iterates over an Enumerable passing each element to the block"
151
+
152
+ fails "The if expression with a boolean range ('flip-flop' operator) keeps flip-flops from interfering"
153
+ fails "The if expression with a boolean range ('flip-flop' operator) scopes state by flip-flop"
154
+ fails "The if expression with a boolean range ('flip-flop' operator) evaluates the second conditions lazily with exclusive-end range"
155
+ fails "The if expression with a boolean range ('flip-flop' operator) evaluates the second conditions lazily with inclusive-end range"
156
+ fails "The if expression with a boolean range ('flip-flop' operator) evaluates the first conditions lazily with exclusive-end range"
157
+ fails "The if expression with a boolean range ('flip-flop' operator) evaluates the first conditions lazily with inclusive-end range"
158
+ fails "The if expression with a boolean range ('flip-flop' operator) allows combining two flip-flops"
159
+ fails "The if expression with a boolean range ('flip-flop' operator) mimics a sed conditional with a many-element exclusive-end range"
160
+ fails "The if expression with a boolean range ('flip-flop' operator) mimics a sed conditional with a zero-element exclusive-end range"
161
+ fails "The if expression with a boolean range ('flip-flop' operator) mimics an awk conditional with a many-element inclusive-end range"
162
+ fails "The if expression with a boolean range ('flip-flop' operator) mimics an awk conditional with a single-element inclusive-end range"
163
+
164
+ fails "calling methods on the metaclass calls a method defined on the metaclass of the metaclass"
165
+ fails "calling methods on the metaclass calls a method in deeper chains of metaclasses"
166
+ fails "A constant on a metaclass is preserved when the object is cloned"
167
+ fails "A constant on a metaclass is not preserved when the object is duped"
168
+ fails "A constant on a metaclass does not appear in the object's class constant list"
169
+ fails "A constant on a metaclass appears in the metaclass constant list"
170
+ fails "A constant on a metaclass raises a NameError for anonymous_module::CONST"
171
+ fails "A constant on a metaclass cannot be accessed via object::CONST"
172
+ fails "A constant on a metaclass is not defined in the metaclass opener's scope"
173
+ fails "A constant on a metaclass is not defined on the object's class"
174
+ fails "self in a metaclass body (class << obj) raises a TypeError for symbols"
175
+ fails "self in a metaclass body (class << obj) raises a TypeError for numbers"
176
+
177
+ fails "The module keyword raises a TypeError if the constant in nil"
178
+ fails "The module keyword creates a new module with a variable qualified constant name"
179
+ fails "The module keyword creates a new module with a qualified constant name"
180
+ fails "The module keyword creates a new module with a non-qualified constant name"
181
+
182
+ fails "Assignment via next assigns splatted objects"
183
+
184
+ fails "The or operator has a lower precedence than 'next' in 'next true or false'"
185
+
186
+ fails "A method call evaluates block pass after arguments"
187
+ fails "A method call evaluates arguments after receiver"
188
+
189
+ fails "Operators or/and have higher precedence than if unless while until modifiers"
190
+ fails "Operators = %= /= -= += |= &= >>= <<= *= &&= ||= **= have higher precedence than defined? operator"
191
+ fails "Operators = %= /= -= += |= &= >>= <<= *= &&= ||= **= are right-associative"
192
+ fails "Operators rescue has higher precedence than ="
193
+ fails "Operators + - have higher precedence than >> <<"
194
+ fails "Operators + - are left-associative"
195
+ fails "Operators * / % are left-associative"
196
+
197
+ fails "A Proc taking |(a, b)| arguments raises an TypeError if #to_ary does not return an Array"
198
+ fails "A Proc taking |(a, b)| arguments calls #to_ary to convert a single passed object to an Array"
199
+ fails "A Proc taking |(a, b)| arguments destructures a single Array value yielded"
200
+ fails "A Proc taking |(a, b)| arguments raises an ArgumentError when passed no values"
201
+ fails "A Proc taking |a, | arguments does not call #to_ary to convert a single passed object to an Array"
202
+ fails "A Proc taking |a, | arguments does not destructure when passed a single Array"
203
+ fails "A Proc taking |a, | arguments assigns the argument the value passed"
204
+ fails "A Proc taking |a, | arguments raises an ArgumentError when passed more than one value"
205
+ fails "A Proc taking |a, | arguments raises an ArgumentError when passed no values"
206
+ fails "A Proc taking |*a| arguments does not call #to_ary to convert a single passed object to an Array"
207
+ fails "A Proc taking |*| arguments does not call #to_ary to convert a single passed object to an Array"
208
+ fails "A Proc taking |*| arguments does not raise an exception when passed multiple values"
209
+ fails "A Proc taking |*| arguments does not raise an exception when passed no values"
210
+ fails "A Proc taking |a, *b| arguments does not call #to_ary to convert a single passed object to an Array"
211
+ fails "A Proc taking |a, *b| arguments raises an ArgumentError if passed no values"
212
+ fails "A Proc taking |a, b| arguments does not call #to_ary to convert a single passed object to an Array"
213
+ fails "A Proc taking |a, b| arguments raises an ArgumentError if passed one value"
214
+ fails "A Proc taking |a, b| arguments raises an ArgumentError if passed no values"
215
+ fails "A Proc taking |a| arguments raises an ArgumentError if no value is passed"
216
+ fails "A Proc taking |a| arguments does not call #to_ary to convert a single passed object to an Array"
217
+ fails "A Proc taking || arguments raises an ArgumentError if a value is passed"
218
+ fails "A Proc taking zero arguments raises an ArgumentErro if a value is passed"
219
+
220
+ fails "The rescue keyword parses 'a += b rescue c' as 'a += (b rescue c)'"
221
+ fails "The rescue keyword will not rescue errors raised in an else block in the rescue block above it"
222
+ fails "The rescue keyword will not execute an else block if an exception was raised"
223
+ fails "The rescue keyword will execute an else block only if no exceptions were raised"
224
+ fails "The rescue keyword will only rescue the specified exceptions when doing a splat rescue"
225
+ fails "The rescue keyword can rescue a splatted list of exceptions"
226
+ fails "The rescue keyword can rescue multiple raised exceptions with a single rescue block"
227
+
228
+ fails "The retry statement re-executes the closest block"
229
+ fails "The retry statement raises a SyntaxError when used outside of a begin statement"
230
+ fails "The retry keyword inside a begin block's rescue block causes the begin block to be executed again"
231
+
232
+ fails "The return keyword within a begin returns last value returned in nested ensures"
233
+ fails "The return keyword within a begin executes nested ensures before returning"
234
+ fails "The return keyword when passed a splat calls 'to_a' on the splatted value first"
235
+ fails "The return keyword when passed a splat returns an array when used as a splat"
236
+ fails "The return keyword in a Thread raises a LocalJumpError if used to exit a thread"
237
+
238
+ fails "Invoking a method with manditory and optional arguments raises an ArgumentError if too many values are passed"
239
+ fails "Invoking a method with optional arguments raises ArgumentError if extra arguments are passed"
240
+ fails "Invoking a method raises a SyntaxError with both a literal block and an object as block"
241
+ fails "Invoking a method with an object as a block uses 'to_proc' for coercion"
242
+
243
+ fails "Instantiating a singleton class raises a TypeError when allocate is called"
244
+ fails "Instantiating a singleton class raises a TypeError when new is called"
245
+ fails "Class methods of a singleton class for a singleton class include class methods of the singleton class of Class"
246
+ fails "Class methods of a singleton class for a class include instance methods of the singleton class of Class"
247
+ fails "Class methods of a singleton class for a class include class methods of Class"
248
+ fails "Instance methods of a singleton class for a singleton class includes instance methods of the singleton class of Class"
249
+ fails "Defining instance methods on a singleton class define public methods"
250
+ fails "A constant on a singleton class is preserved when the object is cloned"
251
+ fails "A constant on a singleton class is not preserved when the object is duped"
252
+ fails "A constant on a singleton class does not appear in the object's class constant list"
253
+ fails "A constant on a singleton class raises a NameError for anonymous_module::CONST"
254
+ fails "A constant on a singleton class cannot be accessed via object::CONST"
255
+ fails "A constant on a singleton class is not defined in the singleton class opener's scope"
256
+ fails "A constant on a singleton class is not defined on the object's class"
257
+ fails "A singleton class doesn't have singleton class"
258
+ fails "A singleton class for BasicObject has the proper level of superclass for Class"
259
+ fails "A singleton class for BasicObject has Class as it's superclass"
260
+ fails "A singleton class is a subclass of the same level of superclass's singleton class"
261
+ fails "A singleton class is a subclass of a superclass's singleton class"
262
+ fails "A singleton class is a subclass of the same level of Class's singleton class"
263
+ fails "A singleton class is a subclass of Class's singleton class"
264
+ fails "A singleton class inherits from Class for classes"
265
+ fails "A singleton class is a singleton Class instance"
266
+ fails "A singleton class raises a TypeError for symbols"
267
+ fails "A singleton class raises a TypeError for Fixnum's"
268
+
269
+ fails "The super keyword searches class methods including modules"
270
+ fails "The super keyword calls the correct method when the method visibility is modified"
271
+ fails "The super keyword passes along modified rest args when they were originally empty"
272
+ fails "The super keyword passes along modified rest args when they weren't originally empty"
273
+ fails "The super keyword sees the included version of a module a method is alias from"
274
+ fails "The super keyword can't be used with implicit arguments from a method defined with define_method"
275
+ fails "The super keyword raises an error error when super method does not exist"
276
+ fails "The super keyword calls the correct method when the superclass argument list is different from the subclass"
277
+ fails "The super keyword respects the original module a method is aliased from"
278
+
279
+ fails "The until modifier with begin .. end block restart the current iteration without reevaluting condition with redo"
280
+ fails "The until modifier with begin .. end block skips to end of body with next"
281
+ fails "The until modifier with begin .. end block evaluates condition after block execution"
282
+ fails "The until modifier with begin .. end block runs block at least once (even if the expression is true)"
283
+ fails "The until modifier restarts the current iteration without reevaluating condition with redo"
284
+ fails "The until expression restarts the current iteration without reevaluating condition with redo"
285
+
286
+ fails "Multiple assignment, array-style returns an array of all rhs values"
287
+ fails "Multiple assignment has the proper return value"
288
+ fails "Multiple assignments with grouping supports multiple levels of nested groupings"
289
+ fails "Multiple assignments with grouping A group on the lhs is considered one position and treats its corresponding rhs position like an Array"
290
+ fails "Operator assignment 'obj[idx] op= expr' returns result of rhs not result of []="
291
+ fails "Operator assignment 'obj[idx] op= expr' handles splat index (idx) arguments with normal arguments"
292
+ fails "Operator assignment 'obj[idx] op= expr' handles multiple splat index (idx) arguments"
293
+ fails "Operator assignment 'obj[idx] op= expr' handles single splat index (idx) arguments"
294
+ fails "Operator assignment 'obj[idx] op= expr' handles empty splat index (idx) arguments"
295
+ fails "Operator assignment 'obj[idx] op= expr' handles complex index (idx) arguments"
296
+ fails "Operator assignment 'obj[idx] op= expr' handles empty index (idx) arguments"
297
+ fails "Conditional operator assignment 'obj[idx] op= expr' uses short-circuit arg evaluation"
298
+ fails "Conditional operator assignment 'obj[idx] op= expr' may not assign at all, depending on the truthiness of lhs"
299
+ fails "Conditional operator assignment 'obj[idx] op= expr' is equivalent to 'obj[idx] op obj[idx] = expr'"
300
+ fails "Unconditional operator assignment 'obj[idx] op= expr' is equivalent to 'obj[idx] = obj[idx] op expr'"
301
+ fails "Conditional operator assignment 'obj.meth op= expr' uses short-circuit arg evaluation"
302
+ fails "Conditional operator assignment 'obj.meth op= expr' may not assign at all, depending on the truthiness of lhs"
303
+ fails "Conditional operator assignment 'var op= expr' uses short-circuit arg evaluation"
304
+ fails "Conditional operator assignment 'var op= expr' may not assign at all, depending on the truthiness of lhs"
305
+ fails "Assigning multiple values allows complex parallel assignment"
306
+ fails "Assigning multiple values calls #to_ary on RHS arg if the corresponding LHS var is a splat"
307
+ fails "Assigning multiple values returns the rhs values used for assignment as an array"
308
+ fails "Basic multiple assignment with a splatted single RHS value does not call #to_ary on an object"
309
+ fails "Basic multiple assignment with a splatted single RHS value calls #to_a on an object if #to_ary is not defined"
310
+ fails "Basic multiple assignment with a splatted single RHS value does not call #to_a on an Array subclass instance"
311
+ fails "Basic multiple assignment with a splatted single RHS value does not call #to_ary on an Array subclass instance"
312
+ fails "Basic multiple assignment with a splatted single RHS value does not call #to_a on an Array instance"
313
+ fails "Basic multiple assignment with a splatted single RHS value does not call #to_ary on an Array instance"
314
+ fails "Basic multiple assignment with a single RHS value does not call #to_a on an object if #to_ary is not defined"
315
+ fails "Basic multiple assignment with a single RHS value calls #to_ary on an object"
316
+ fails "Basic multiple assignment with a single RHS value does not call #to_a on an Array subclass instance"
317
+ fails "Basic multiple assignment with a single RHS value does not call #to_ary on an Array subclass instance"
318
+ fails "Basic multiple assignment with a single RHS value does not call #to_a on an Array instance"
319
+ fails "Basic multiple assignment with a single RHS value does not call #to_ary on an Array instance"
320
+ fails "Basic assignment allows the assignment of the rhs to the lhs using the rhs splat operator"
321
+ fails "Multiple assignments with splats * on the LHS has to be applied to any parameter"
322
+
323
+ fails "The while modifier with begin .. end block runs block at least once (even if the expression is false)"
324
+ fails "The while modifier with begin .. end block evaluates condition after block execution"
325
+ fails "The while modifier with begin .. end block skips to end of body with next"
326
+ fails "The while modifier with begin .. end block restarts the current iteration without reevaluting condition with redo"
327
+
328
+ fails "The yield call taking no arguments ignores assignment to the explicit block argument and calls the passed block"
329
+ fails "The yield call taking a single splatted argument passes no values when give nil as an argument"
330
+ fails "The yield call taking multiple arguments with a splat does not pass an argument value if the splatted argument is nil"
331
+
332
+ fails "The defined? keyword when called with a method name without a receiver returns nil if the method is not defined"
333
+ fails "The defined? keyword when called with a method name having a module as receiver returns nil if the method is not defined"
334
+ fails "The defined? keyword when called with a method name having a module as receiver returns nil if the class is not defined"
335
+ fails "The defined? keyword when called with a method name having a module as receiver returns nil if the subclass is not defined"
336
+ fails "The defined? keyword when called with a method name having a local variable as receiver returns nil if the variable does not exist"
337
+ fails "The defined? keyword when called with a method name having a global variable as receiver returns nil if the variable does not exist"
338
+ 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"
339
+ fails "The defined? keyword for an expression returns nil for an expression with == and an undefined method"
340
+ fails "The defined? keyword for an expression returns nil for an expression with != and an undefined method"
341
+ fails "The defined? keyword for an expression returns nil for an expression with !~ and an undefined method"
342
+ fails "The defined? keyword for an expression with logical connectives returns nil for an expression with '!' and an undefined method"
343
+ fails "The defined? keyword for an expression with logical connectives returns nil for an expression with 'not' and an undefined method"
344
+ fails "The defined? keyword for an expression with logical connectives does not propagate an exception raised by a method in a 'not' expression"
345
+ fails "The defined? keyword for an expression with logical connectives calls a method in a 'not' expression and returns 'method'"
346
+ fails "The defined? keyword for variables when a String matches a Regexp returns nil for non-captures"
347
+ fails "The defined? keyword for variables when a Regexp matches a String returns nil for non-captures"
348
+ fails "The defined? keyword for a simple constant returns 'constant' when the constant is defined"
349
+ fails "The defined? keyword for a simple constant returns nil when the constant is not defined"
350
+ fails "The defined? keyword for a simple constant does not call Object.const_missing if the constant is not defined"
351
+ fails "The defined? keyword for a simple constant returns 'constant' for an included module"
352
+ fails "The defined? keyword for a simple constant returns 'constant' for a constant defined in an included module"
353
+ fails "The defined? keyword for a scoped constant does not call .const_missing if the constant is not defined"
354
+ fails "The defined? keyword for yield returns nil if no block is passed to a method not taking a block parameter"
355
+ fails "The defined? keyword for yield returns nil if no block is passed to a method taking a block parameter"
356
+ fails "The defined? keyword for super returns nil when a superclass undef's the method"
357
+ fails "The defined? keyword for super for a method taking no arguments returns nil when no superclass method exists"
358
+ fails "The defined? keyword for super for a method taking no arguments returns nil from a block when no superclass method exists"
359
+ fails "The defined? keyword for super for a method taking arguments returns nil when no superclass method exists"
360
+ fails "The defined? keyword for super for a method taking arguments returns nil from a block when no superclass method exists"
361
+
362
+ fails "The defined? keyword for super for a method taking no arguments returns nil from a #define_method when no superclass method exists"
363
+ fails "The defined? keyword for super for a method taking no arguments returns nil from a block in a #define_method when no superclass method exists"
364
+ fails "The defined? keyword for super for a method taking arguments returns nil from a #define_method when no superclass method exists"
365
+ fails "The defined? keyword for super for a method taking arguments returns nil from a block in a #define_method when no superclass method exists"
366
+ end