opal 0.10.6 → 0.11.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (450) hide show
  1. checksums.yaml +5 -5
  2. data/.codeclimate.yml +19 -0
  3. data/.gitmodules +1 -1
  4. data/.jshintrc +1 -2
  5. data/.travis.yml +26 -18
  6. data/CHANGELOG.md +89 -23
  7. data/{CODE_OF_CONDUCT.md → CONDUCT.md} +0 -0
  8. data/Gemfile +19 -21
  9. data/HACKING.md +2 -0
  10. data/README.md +7 -6
  11. data/Rakefile +1 -1
  12. data/appveyor.yml +21 -4
  13. data/benchmark-ips/bm_case.rb +33 -0
  14. data/benchmark-ips/bm_constants_lookup.rb +13 -0
  15. data/benchmark-ips/bm_is_number.rb +29 -0
  16. data/benchmark-ips/bm_symbol_to_proc.rb +19 -0
  17. data/benchmark/bm_constant_lookup_big.rb +799 -0
  18. data/benchmark/bm_constant_lookup_small.rb +59 -0
  19. data/benchmark/bm_module_definition_big.rb +400 -0
  20. data/benchmark/bm_module_definition_small.rb +30 -0
  21. data/bin/opal-repl +23 -1
  22. data/docs/compiled_ruby.md +16 -14
  23. data/docs/faq.md +3 -3
  24. data/docs/rspec.md +2 -1
  25. data/docs/unsupported_features.md +6 -4
  26. data/examples/rack/Gemfile +1 -0
  27. data/examples/rack/app/application.rb +14 -3
  28. data/examples/rack/app/user.rb +2 -0
  29. data/examples/rack/config.ru +1 -1
  30. data/examples/rack/index.html.erb +1 -0
  31. data/lib/opal.rb +6 -1
  32. data/lib/opal/ast/builder.rb +17 -0
  33. data/lib/opal/ast/node.rb +30 -0
  34. data/lib/opal/builder.rb +14 -3
  35. data/lib/opal/builder_processors.rb +1 -0
  36. data/lib/opal/cli.rb +45 -59
  37. data/lib/opal/cli_options.rb +11 -7
  38. data/lib/opal/cli_runners.rb +1 -0
  39. data/lib/opal/cli_runners/applescript.rb +3 -3
  40. data/lib/opal/cli_runners/nashorn.rb +1 -0
  41. data/lib/opal/cli_runners/nodejs.rb +4 -1
  42. data/lib/opal/cli_runners/phantom.js +1 -2
  43. data/lib/opal/cli_runners/phantomjs.rb +3 -2
  44. data/lib/opal/cli_runners/server.rb +1 -0
  45. data/lib/opal/compiler.rb +145 -94
  46. data/lib/opal/config.rb +1 -0
  47. data/lib/opal/deprecations.rb +18 -0
  48. data/lib/opal/erb.rb +1 -0
  49. data/lib/opal/errors.rb +1 -0
  50. data/lib/opal/fragment.rb +1 -0
  51. data/lib/opal/hike_path_finder.rb +1 -0
  52. data/lib/opal/nodes.rb +3 -0
  53. data/lib/opal/nodes/arglist.rb +2 -1
  54. data/lib/opal/nodes/args/initialize_kwargs.rb +1 -0
  55. data/lib/opal/nodes/args/kwarg.rb +7 -7
  56. data/lib/opal/nodes/args/kwoptarg.rb +6 -7
  57. data/lib/opal/nodes/args/kwrestarg.rb +5 -5
  58. data/lib/opal/nodes/args/mlhsarg.rb +3 -2
  59. data/lib/opal/nodes/args/normarg.rb +6 -7
  60. data/lib/opal/nodes/args/optarg.rb +5 -7
  61. data/lib/opal/nodes/args/post_args.rb +6 -5
  62. data/lib/opal/nodes/args/post_kwargs.rb +1 -0
  63. data/lib/opal/nodes/args/restarg.rb +7 -7
  64. data/lib/opal/nodes/array.rb +1 -0
  65. data/lib/opal/nodes/base.rb +24 -3
  66. data/lib/opal/nodes/call.rb +167 -155
  67. data/lib/opal/nodes/call_special.rb +31 -217
  68. data/lib/opal/nodes/case.rb +36 -22
  69. data/lib/opal/nodes/class.rb +4 -3
  70. data/lib/opal/nodes/constants.rb +28 -48
  71. data/lib/opal/nodes/csend.rb +25 -0
  72. data/lib/opal/nodes/def.rb +49 -16
  73. data/lib/opal/nodes/defined.rb +170 -60
  74. data/lib/opal/nodes/definitions.rb +40 -133
  75. data/lib/opal/nodes/defs.rb +29 -0
  76. data/lib/opal/nodes/for.rb +52 -25
  77. data/lib/opal/nodes/hash.rb +12 -35
  78. data/lib/opal/nodes/helpers.rb +27 -54
  79. data/lib/opal/nodes/if.rb +21 -32
  80. data/lib/opal/nodes/inline_args.rb +12 -13
  81. data/lib/opal/nodes/iter.rb +61 -36
  82. data/lib/opal/nodes/literal.rb +189 -116
  83. data/lib/opal/nodes/logic.rb +20 -25
  84. data/lib/opal/nodes/masgn.rb +20 -18
  85. data/lib/opal/nodes/module.rb +10 -11
  86. data/lib/opal/nodes/node_with_args.rb +14 -17
  87. data/lib/opal/nodes/rescue.rb +37 -70
  88. data/lib/opal/nodes/runtime_helpers.rb +8 -3
  89. data/lib/opal/nodes/scope.rb +9 -5
  90. data/lib/opal/nodes/singleton_class.rb +4 -3
  91. data/lib/opal/nodes/super.rb +115 -87
  92. data/lib/opal/nodes/top.rb +7 -2
  93. data/lib/opal/nodes/variables.rb +46 -35
  94. data/lib/opal/nodes/while.rb +11 -1
  95. data/lib/opal/nodes/yield.rb +1 -17
  96. data/lib/opal/parser.rb +28 -770
  97. data/lib/opal/path_reader.rb +5 -1
  98. data/lib/opal/paths.rb +10 -4
  99. data/lib/opal/regexp_anchors.rb +1 -0
  100. data/lib/opal/rewriter.rb +60 -0
  101. data/lib/opal/rewriters/base.rb +60 -0
  102. data/lib/opal/rewriters/binary_operator_assignment.rb +144 -0
  103. data/lib/opal/rewriters/block_to_iter.rb +17 -0
  104. data/lib/opal/rewriters/break_finder.rb +34 -0
  105. data/lib/opal/rewriters/dot_js_syntax.rb +60 -0
  106. data/lib/opal/rewriters/explicit_writer_return.rb +58 -0
  107. data/lib/opal/rewriters/js_reserved_words.rb +111 -0
  108. data/lib/opal/rewriters/logical_operator_assignment.rb +155 -0
  109. data/lib/opal/rewriters/opal_engine_check.rb +42 -0
  110. data/lib/opal/rewriters/rubyspec/filters_rewriter.rb +67 -0
  111. data/lib/opal/server.rb +4 -0
  112. data/lib/opal/simple_server.rb +100 -0
  113. data/lib/opal/source_map.rb +1 -1
  114. data/lib/opal/util.rb +5 -5
  115. data/lib/opal/version.rb +2 -1
  116. data/lib/tilt/opal.rb +1 -0
  117. data/opal.gemspec +8 -7
  118. data/opal/README.md +1 -1
  119. data/opal/corelib/array.rb +137 -83
  120. data/opal/corelib/basic_object.rb +6 -6
  121. data/opal/corelib/class.rb +14 -11
  122. data/opal/corelib/complex.rb +5 -1
  123. data/opal/corelib/constants.rb +3 -3
  124. data/opal/corelib/enumerable.rb +129 -11
  125. data/opal/corelib/error.rb +35 -17
  126. data/opal/corelib/file.rb +65 -170
  127. data/opal/corelib/hash.rb +128 -13
  128. data/opal/corelib/helpers.rb +12 -15
  129. data/opal/corelib/io.rb +1 -0
  130. data/opal/corelib/kernel.rb +40 -21
  131. data/opal/corelib/marshal/read_buffer.rb +1 -1
  132. data/opal/corelib/method.rb +33 -13
  133. data/opal/corelib/module.rb +133 -81
  134. data/opal/corelib/number.rb +141 -25
  135. data/opal/corelib/numeric.rb +0 -8
  136. data/opal/corelib/process.rb +44 -4
  137. data/opal/corelib/random.rb +117 -0
  138. data/opal/corelib/random/seedrandom.js.rb +15 -0
  139. data/opal/corelib/range.rb +133 -10
  140. data/opal/corelib/regexp.rb +37 -9
  141. data/opal/corelib/runtime.js +601 -390
  142. data/opal/corelib/string.rb +39 -8
  143. data/opal/corelib/string/encoding.rb +51 -7
  144. data/opal/corelib/struct.rb +20 -0
  145. data/opal/corelib/time.rb +3 -3
  146. data/opal/corelib/variables.rb +1 -1
  147. data/opal/opal.rb +1 -0
  148. data/spec/filters/bugs/array.rb +5 -1
  149. data/spec/filters/bugs/basicobject.rb +2 -5
  150. data/spec/filters/bugs/bigdecimal.rb +8 -22
  151. data/spec/filters/bugs/class.rb +2 -1
  152. data/spec/filters/bugs/comparable.rb +5 -0
  153. data/spec/filters/bugs/date.rb +3 -3
  154. data/spec/filters/bugs/enumerable.rb +4 -11
  155. data/spec/filters/bugs/enumerator.rb +2 -4
  156. data/spec/filters/bugs/exception.rb +16 -2
  157. data/spec/filters/bugs/file.rb +8 -0
  158. data/spec/filters/bugs/float.rb +7 -1
  159. data/spec/filters/bugs/hash.rb +6 -2
  160. data/spec/filters/bugs/integer.rb +2 -0
  161. data/spec/filters/bugs/io.rb +8 -0
  162. data/spec/filters/bugs/kernel.rb +9 -138
  163. data/spec/filters/bugs/language.rb +89 -174
  164. data/spec/filters/bugs/marshal.rb +33 -35
  165. data/spec/filters/bugs/method.rb +0 -24
  166. data/spec/filters/bugs/module.rb +19 -55
  167. data/spec/filters/bugs/numeric.rb +0 -119
  168. data/spec/filters/bugs/pathname.rb +2 -0
  169. data/spec/filters/bugs/proc.rb +5 -4
  170. data/spec/filters/bugs/random.rb +7 -0
  171. data/spec/filters/bugs/range.rb +12 -120
  172. data/spec/filters/bugs/rational.rb +1 -1
  173. data/spec/filters/bugs/regexp.rb +2 -40
  174. data/spec/filters/bugs/set.rb +0 -1
  175. data/spec/filters/bugs/string.rb +5 -8
  176. data/spec/filters/bugs/stringscanner.rb +11 -19
  177. data/spec/filters/bugs/time.rb +7 -1
  178. data/spec/filters/bugs/unboundmethod.rb +1 -11
  179. data/spec/filters/unsupported/array.rb +5 -1
  180. data/spec/filters/unsupported/basicobject.rb +1 -1
  181. data/spec/filters/unsupported/bignum.rb +4 -1
  182. data/spec/filters/unsupported/class.rb +1 -1
  183. data/spec/filters/unsupported/delegator.rb +1 -1
  184. data/spec/filters/unsupported/enumerable.rb +1 -1
  185. data/spec/filters/unsupported/enumerator.rb +1 -1
  186. data/spec/filters/unsupported/file.rb +4 -0
  187. data/spec/filters/unsupported/fixnum.rb +1 -1
  188. data/spec/filters/unsupported/float.rb +4 -1
  189. data/spec/filters/unsupported/freeze.rb +27 -5
  190. data/spec/filters/unsupported/hash.rb +7 -15
  191. data/spec/filters/unsupported/integer.rb +1 -1
  192. data/spec/filters/unsupported/kernel.rb +2 -1
  193. data/spec/filters/unsupported/language.rb +6 -1
  194. data/spec/filters/unsupported/marshal.rb +1 -1
  195. data/spec/filters/unsupported/matchdata.rb +4 -1
  196. data/spec/filters/unsupported/math.rb +1 -1
  197. data/spec/filters/unsupported/pathname.rb +1 -1
  198. data/spec/filters/unsupported/privacy.rb +141 -9
  199. data/spec/filters/unsupported/proc.rb +1 -1
  200. data/spec/filters/unsupported/random.rb +4 -0
  201. data/spec/filters/unsupported/range.rb +7 -0
  202. data/spec/filters/unsupported/regexp.rb +25 -15
  203. data/spec/filters/unsupported/set.rb +1 -1
  204. data/spec/filters/unsupported/singleton.rb +1 -1
  205. data/spec/filters/unsupported/string.rb +110 -101
  206. data/spec/filters/unsupported/struct.rb +1 -1
  207. data/spec/filters/unsupported/symbol.rb +2 -1
  208. data/spec/filters/unsupported/taint.rb +22 -7
  209. data/spec/filters/unsupported/thread.rb +1 -1
  210. data/spec/filters/unsupported/time.rb +1 -1
  211. data/spec/lib/builder_spec.rb +17 -0
  212. data/spec/lib/cli_spec.rb +37 -8
  213. data/spec/lib/compiler/call_spec.rb +98 -66
  214. data/spec/lib/compiler_spec.rb +39 -30
  215. data/spec/lib/dependency_resolver_spec.rb +2 -2
  216. data/spec/lib/deprecations_spec.rb +16 -0
  217. data/spec/lib/fixtures/source_location_test.rb +7 -0
  218. data/spec/lib/rewriters/binary_operator_assignment_spec.rb +151 -0
  219. data/spec/lib/rewriters/block_to_iter_spec.rb +28 -0
  220. data/spec/lib/rewriters/dot_js_syntax_spec.rb +108 -0
  221. data/spec/lib/rewriters/explicit_writer_return_spec.rb +186 -0
  222. data/spec/lib/rewriters/js_reserved_words_spec.rb +116 -0
  223. data/spec/lib/rewriters/logical_operator_assignment_spec.rb +202 -0
  224. data/spec/lib/rewriters/opal_engine_check_spec.rb +82 -0
  225. data/spec/lib/rewriters/rubyspec/filters_rewriter_spec.rb +53 -0
  226. data/spec/lib/simple_server_spec.rb +54 -0
  227. data/spec/mspec-opal/formatters.rb +65 -17
  228. data/spec/mspec-opal/runner.rb +47 -67
  229. data/spec/opal/core/date_spec.rb +14 -0
  230. data/spec/opal/core/exception_spec.rb +10 -0
  231. data/spec/opal/core/hash/internals_spec.rb +10 -10
  232. data/spec/opal/core/kernel/rand_spec.rb +0 -4
  233. data/spec/opal/core/kernel/respond_to_spec.rb +5 -2
  234. data/spec/opal/core/language/constant_lookup_spec.rb +38 -0
  235. data/spec/opal/core/language/predefined_spec.rb +1 -1
  236. data/spec/opal/core/language/safe_navigator_spec.rb +7 -0
  237. data/spec/opal/core/language/send_spec.rb +1 -9
  238. data/spec/opal/core/language/string_spec.rb +8 -8
  239. data/spec/opal/core/language/versions/def_2_0_spec.rb +0 -4
  240. data/spec/opal/core/language_spec.rb +32 -0
  241. data/spec/opal/core/module/const_get_spec.rb +1 -1
  242. data/spec/opal/core/runtime/is_a_spec.rb +36 -0
  243. data/spec/opal/core/runtime/rescue_spec.rb +35 -0
  244. data/spec/opal/core/runtime_spec.rb +4 -4
  245. data/spec/opal/core/string_spec.rb +8 -8
  246. data/spec/opal/core/time_spec.rb +26 -17
  247. data/spec/opal/stdlib/erb/quoted.opalerb +1 -1
  248. data/spec/opal/stdlib/json/parse_spec.rb +4 -0
  249. data/spec/opal/stdlib/native/hash_spec.rb +16 -0
  250. data/spec/ruby_specs +2 -1
  251. data/spec/spec_helper.rb +1 -0
  252. data/spec/support/rewriters_helper.rb +24 -0
  253. data/stdlib/base64.rb +4 -2
  254. data/stdlib/bigdecimal/bignumber.js.rb +1 -1
  255. data/stdlib/date.rb +18 -19
  256. data/stdlib/json.rb +16 -4
  257. data/stdlib/nashorn/file.rb +15 -0
  258. data/stdlib/native.rb +21 -12
  259. data/stdlib/nodejs/dir.rb +1 -1
  260. data/stdlib/nodejs/file.rb +49 -20
  261. data/stdlib/nodejs/io.rb +22 -1
  262. data/stdlib/nodejs/{node_modules/js-yaml/dist/js-yaml.js → js-yaml-3-6-1.js} +815 -626
  263. data/stdlib/nodejs/kernel.rb +3 -1
  264. data/stdlib/nodejs/package.json +0 -1
  265. data/stdlib/nodejs/stacktrace.rb +163 -0
  266. data/stdlib/nodejs/yaml.rb +2 -1
  267. data/stdlib/opal-platform.rb +15 -0
  268. data/stdlib/opal/platform.rb +5 -13
  269. data/stdlib/pathname.rb +1 -1
  270. data/stdlib/strscan.rb +15 -1
  271. data/stdlib/yaml.rb +1 -1
  272. data/tasks/benchmarking.rake +9 -0
  273. data/tasks/building.rake +24 -20
  274. data/tasks/linting.rake +24 -13
  275. data/tasks/testing.rake +322 -205
  276. data/tasks/testing/mspec_special_calls.rb +44 -15
  277. data/tasks/testing/opal_rspec_smoketest.Gemfile +13 -0
  278. data/test/nodejs/fixtures/hello.rb +1 -0
  279. data/test/nodejs/test_file.rb +57 -0
  280. data/test/nodejs/test_io.rb +18 -0
  281. data/test/nodejs/test_opal_builder.rb +12 -0
  282. data/test/opal/unsupported_and_bugs.rb +9 -0
  283. metadata +127 -240
  284. data/lib/opal/parser/grammar.rb +0 -6157
  285. data/lib/opal/parser/grammar.y +0 -2011
  286. data/lib/opal/parser/keywords.rb +0 -66
  287. data/lib/opal/parser/lexer.rb +0 -1352
  288. data/lib/opal/parser/parser_scope.rb +0 -28
  289. data/lib/opal/parser/sexp.rb +0 -90
  290. data/lib/opal/sprockets.rb +0 -77
  291. data/lib/opal/sprockets/environment.rb +0 -23
  292. data/lib/opal/sprockets/erb.rb +0 -28
  293. data/lib/opal/sprockets/path_reader.rb +0 -36
  294. data/lib/opal/sprockets/processor.rb +0 -173
  295. data/lib/opal/sprockets/server.rb +0 -133
  296. data/lib/opal/sprockets/source_map_header_patch.rb +0 -41
  297. data/lib/opal/sprockets/source_map_server.rb +0 -117
  298. data/spec/filters/bugs/compiler_opal.rb +0 -5
  299. data/spec/filters/bugs/language_opal.rb +0 -88
  300. data/spec/filters/unsupported/module.rb +0 -8
  301. data/spec/lib/compiler/pre_processed_conditionals_spec.rb +0 -87
  302. data/spec/lib/lexer_spec.rb +0 -110
  303. data/spec/lib/parser/alias_spec.rb +0 -26
  304. data/spec/lib/parser/and_spec.rb +0 -13
  305. data/spec/lib/parser/aref_spec.rb +0 -10
  306. data/spec/lib/parser/attrasgn_spec.rb +0 -28
  307. data/spec/lib/parser/begin_spec.rb +0 -42
  308. data/spec/lib/parser/block_spec.rb +0 -12
  309. data/spec/lib/parser/break_spec.rb +0 -17
  310. data/spec/lib/parser/call_spec.rb +0 -201
  311. data/spec/lib/parser/class_spec.rb +0 -35
  312. data/spec/lib/parser/comments_spec.rb +0 -11
  313. data/spec/lib/parser/def_spec.rb +0 -109
  314. data/spec/lib/parser/if_spec.rb +0 -26
  315. data/spec/lib/parser/iter_spec.rb +0 -59
  316. data/spec/lib/parser/lambda_spec.rb +0 -219
  317. data/spec/lib/parser/literal_spec.rb +0 -118
  318. data/spec/lib/parser/masgn_spec.rb +0 -37
  319. data/spec/lib/parser/module_spec.rb +0 -27
  320. data/spec/lib/parser/not_spec.rb +0 -21
  321. data/spec/lib/parser/op_asgn1_spec.rb +0 -23
  322. data/spec/lib/parser/op_asgn2_spec.rb +0 -23
  323. data/spec/lib/parser/op_asgn_spec.rb +0 -17
  324. data/spec/lib/parser/or_spec.rb +0 -13
  325. data/spec/lib/parser/return_spec.rb +0 -22
  326. data/spec/lib/parser/sclass_spec.rb +0 -21
  327. data/spec/lib/parser/string_spec.rb +0 -286
  328. data/spec/lib/parser/super_spec.rb +0 -20
  329. data/spec/lib/parser/unary_spec.rb +0 -52
  330. data/spec/lib/parser/undef_spec.rb +0 -19
  331. data/spec/lib/parser/unless_spec.rb +0 -13
  332. data/spec/lib/parser/variables_spec.rb +0 -112
  333. data/spec/lib/parser/while_spec.rb +0 -15
  334. data/spec/lib/parser/yield_spec.rb +0 -20
  335. data/spec/lib/sprockets/erb_spec.rb +0 -38
  336. data/spec/lib/sprockets/path_reader_spec.rb +0 -41
  337. data/spec/lib/sprockets/processor_spec.rb +0 -79
  338. data/spec/lib/sprockets/server_spec.rb +0 -102
  339. data/spec/lib/sprockets_spec.rb +0 -39
  340. data/spec/lib/tilt/opal_spec.rb +0 -37
  341. data/spec/opal/core/language/block_spec.rb +0 -538
  342. data/spec/opal/core/language/proc_spec.rb +0 -263
  343. data/spec/opal/core/language/variables_spec.rb +0 -1366
  344. data/spec/opal/core/runtime/block_send_spec.rb +0 -28
  345. data/spec/opal/core/runtime/send_spec.rb +0 -34
  346. data/spec/support/parser_helpers.rb +0 -37
  347. data/stdlib/nodejs/node_modules/js-yaml/HISTORY.md +0 -277
  348. data/stdlib/nodejs/node_modules/js-yaml/LICENSE +0 -21
  349. data/stdlib/nodejs/node_modules/js-yaml/README.md +0 -288
  350. data/stdlib/nodejs/node_modules/js-yaml/bin/js-yaml.js +0 -140
  351. data/stdlib/nodejs/node_modules/js-yaml/bower.json +0 -23
  352. data/stdlib/nodejs/node_modules/js-yaml/dist/js-yaml.min.js +0 -3
  353. data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.js +0 -102
  354. data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.yml +0 -18
  355. data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.js +0 -31
  356. data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.json +0 -22
  357. data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.js +0 -18
  358. data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.yml +0 -197
  359. data/stdlib/nodejs/node_modules/js-yaml/index.js +0 -7
  360. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml.js +0 -39
  361. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/common.js +0 -62
  362. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/dumper.js +0 -554
  363. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/exception.js +0 -25
  364. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/loader.js +0 -1581
  365. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/mark.js +0 -78
  366. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema.js +0 -103
  367. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/core.js +0 -18
  368. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +0 -25
  369. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +0 -28
  370. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +0 -17
  371. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/json.js +0 -25
  372. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type.js +0 -61
  373. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/binary.js +0 -133
  374. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/bool.js +0 -37
  375. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/float.js +0 -110
  376. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/int.js +0 -183
  377. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/function.js +0 -85
  378. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +0 -84
  379. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +0 -27
  380. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/map.js +0 -8
  381. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/merge.js +0 -12
  382. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/null.js +0 -36
  383. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/omap.js +0 -56
  384. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/pairs.js +0 -61
  385. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/seq.js +0 -8
  386. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/set.js +0 -33
  387. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/str.js +0 -8
  388. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +0 -98
  389. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/HISTORY.md +0 -115
  390. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/LICENSE +0 -21
  391. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/README.md +0 -239
  392. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/arguments.js +0 -36
  393. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/choice.js +0 -22
  394. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/constants.js +0 -59
  395. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/help.js +0 -13
  396. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/nargs.js +0 -33
  397. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/parents.js +0 -28
  398. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/prefix_chars.js +0 -23
  399. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sub_commands.js +0 -49
  400. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sum.js +0 -35
  401. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/testformatters.js +0 -270
  402. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/index.js +0 -1
  403. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action.js +0 -146
  404. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append.js +0 -55
  405. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append/constant.js +0 -47
  406. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/count.js +0 -40
  407. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/help.js +0 -48
  408. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store.js +0 -50
  409. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/constant.js +0 -43
  410. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/false.js +0 -27
  411. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/true.js +0 -26
  412. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/subparsers.js +0 -148
  413. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/version.js +0 -50
  414. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action_container.js +0 -481
  415. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argparse.js +0 -14
  416. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/error.js +0 -50
  417. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/exclusive.js +0 -54
  418. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/group.js +0 -75
  419. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument_parser.js +0 -1168
  420. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/const.js +0 -18
  421. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/added_formatters.js +0 -88
  422. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/formatter.js +0 -798
  423. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/namespace.js +0 -77
  424. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.npmignore +0 -2
  425. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.travis.yml +0 -8
  426. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/README.markdown +0 -825
  427. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/bower.json +0 -33
  428. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/component.json +0 -11
  429. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/foo.js +0 -10
  430. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/gulpfile.js +0 -26
  431. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/lib/underscore.string.js +0 -673
  432. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/libpeerconnection.log +0 -0
  433. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/package.json +0 -107
  434. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/LICENSE +0 -23
  435. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/README.md +0 -22
  436. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/package.json +0 -69
  437. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore-min.js +0 -6
  438. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore.js +0 -1415
  439. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/package.json +0 -62
  440. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/README.md +0 -73
  441. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esparse.js +0 -117
  442. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js +0 -177
  443. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/esprima.js +0 -3908
  444. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/package.json +0 -69
  445. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/compat.js +0 -239
  446. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/reflect.js +0 -422
  447. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/run.js +0 -66
  448. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/runner.js +0 -387
  449. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/test.js +0 -20238
  450. data/stdlib/nodejs/node_modules/js-yaml/package.json +0 -83
@@ -1,3 +1,3 @@
1
- opal_filter "Integer" do
1
+ opal_unsupported_filter "Integer" do
2
2
  fails "Integer#even? returns true for a Bignum when it is an even number"
3
3
  end
@@ -1,4 +1,4 @@
1
- opal_filter "Kernel" do
1
+ opal_unsupported_filter "Kernel" do
2
2
  fails "Kernel has private instance method Array()"
3
3
  fails "Kernel has private instance method Hash()"
4
4
  fails "Kernel#Float is a private method"
@@ -28,4 +28,5 @@ opal_filter "Kernel" do
28
28
  fails "Kernel#dup raises a TypeError for Symbol"
29
29
  fails "Kernel.fail is a private method"
30
30
  fails "Kernel#raise is a private method"
31
+ fails "Kernel#inspect returns an untrusted string if self is untrusted"
31
32
  end
@@ -1,4 +1,4 @@
1
- opal_filter "language" do
1
+ opal_unsupported_filter "language" do
2
2
  fails "Magic comment can be after the shebang"
3
3
  fails "Magic comment can take Emacs style"
4
4
  fails "Magic comment can take vim style"
@@ -14,4 +14,9 @@ opal_filter "language" do
14
14
  fails "The private keyword changes visiblity of previously called methods with same send/call site"
15
15
  fails "The private keyword is overridden when a new class is opened"
16
16
  fails "The private keyword marks following methods as being private"
17
+ fails "Ruby String literals with a magic frozen comment produce different objects for literals with the same content in different files if the other file doesn't have the comment"
18
+ fails "Ruby String literals with a magic frozen comment produce different objects for literals with the same content in different files if they have different encodings"
19
+ fails "Ruby String literals with a magic frozen comment produce the same object each time"
20
+ fails "Ruby String literals with a magic frozen comment produce the same object for literals with the same content"
21
+ fails "Ruby String literals with a magic frozen comment produce the same object for literals with the same content in different files"
17
22
  end
@@ -1,4 +1,4 @@
1
- opal_filter "Marshal" do
1
+ opal_unsupported_filter "Marshal" do
2
2
  # Marshal.load
3
3
  fails "Marshal.load loads a Random" # depends on the reading from the filesystem
4
4
  fails "Marshal.load when source is tainted returns a tainted object"
@@ -1,4 +1,4 @@
1
- opal_filter "MatchData" do
1
+ opal_unsupported_filter "MatchData" do
2
2
  fails "MatchData#begin returns nil when the nth match isn't found"
3
3
  fails "MatchData#begin returns the offset for multi byte strings"
4
4
  fails "MatchData#begin returns the offset of the start of the nth element"
@@ -27,4 +27,7 @@ opal_filter "MatchData" do
27
27
  fails "MatchData#[Symbol] returns the corresponding named match when given a Symbol"
28
28
  fails "MatchData#[Symbol] returns the last match when multiple named matches exist with the same name"
29
29
  fails "MatchData#[Symbol] returns the matching version of multiple corresponding named match"
30
+ fails "MatchData#begin returns the offset for multi byte strings with unicode regexp"
31
+ fails "MatchData#end returns the offset for multi byte strings with unicode regexp"
32
+ fails "MatchData#offset returns the offset for multi byte strings with unicode regexp"
30
33
  end
@@ -1,3 +1,3 @@
1
- opal_filter "Math" do
1
+ opal_unsupported_filter "Math" do
2
2
  fails "Math#atanh is a private instance method"
3
3
  end
@@ -1,3 +1,3 @@
1
- opal_filter "Pathname" do
1
+ opal_unsupported_filter "Pathname" do
2
2
  fails "Pathname.new is tainted if path is tainted"
3
3
  end
@@ -1,10 +1,111 @@
1
- opal_filter "private" do
1
+ opal_unsupported_filter "private" do
2
2
  fails "BasicObject#initialize is a private instance method"
3
3
  fails "BasicObject#method_missing for a Class raises a NoMethodError when an undefined method is called"
4
4
  fails "BasicObject#method_missing is a private method"
5
5
  fails "BasicObject#singleton_method_added is a private method"
6
6
  fails "BasicObject#singleton_method_removed is a private method"
7
7
  fails "BasicObject#singleton_method_undefined is a private method"
8
+ fails "Defining a 'respond_to_missing?' method sets the method's visibility to private"
9
+ fails "Defining a method at the top-level defines it on Object with private visibility by default"
10
+ fails "Defining an 'initialize' method sets the method's visibility to private"
11
+ fails "Defining an 'initialize_clone' method sets the method's visibility to private"
12
+ fails "Defining an 'initialize_copy' method sets the method's visibility to private"
13
+ fails "Defining an 'initialize_dup' method sets the method's visibility to private"
14
+ fails "Enumerator#initialize is a private method"
15
+ fails "Invoking a private getter method does not permit self as a receiver"
16
+ fails "Kernel#block_given? is a private method"
17
+ fails "Kernel#eval is a private method"
18
+ fails "Kernel#iterator? is a private method"
19
+ fails "Kernel#local_variables is a private method"
20
+ fails "Kernel#methods returns private singleton methods defined by obj.meth"
21
+ fails "Kernel#methods returns singleton methods defined in 'class << self' when it follows 'private'"
22
+ fails "Kernel#p is a private method"
23
+ fails "Kernel#print is a private method"
24
+ fails "Kernel#printf is a private method"
25
+ fails "Kernel#private_methods returns a list of the names of privately accessible methods in the object and its ancestors and mixed-in modules"
26
+ fails "Kernel#private_methods returns a list of the names of privately accessible methods in the object"
27
+ fails "Kernel#private_methods returns private methods mixed in to the metaclass"
28
+ fails "Kernel#private_methods when not passed an argument returns a unique list for a class including a module"
29
+ fails "Kernel#private_methods when not passed an argument returns a unique list for a subclass of a class that includes a module"
30
+ fails "Kernel#private_methods when not passed an argument returns a unique list for an object extended by a module"
31
+ fails "Kernel#private_methods when passed false returns a list of private methods in without its ancestors"
32
+ fails "Kernel#private_methods when passed nil returns a list of private methods in without its ancestors"
33
+ fails "Kernel#private_methods when passed true returns a unique list for a class including a module"
34
+ fails "Kernel#private_methods when passed true returns a unique list for a subclass of a class that includes a module"
35
+ fails "Kernel#private_methods when passed true returns a unique list for an object extended by a module"
36
+ fails "Kernel#protected_methods returns a list of the names of protected methods accessible in the object and from its ancestors and mixed-in modules"
37
+ fails "Kernel#protected_methods returns a list of the names of protected methods accessible in the object"
38
+ fails "Kernel#protected_methods returns methods mixed in to the metaclass"
39
+ fails "Kernel#protected_methods when not passed an argument returns a unique list for a class including a module"
40
+ fails "Kernel#protected_methods when not passed an argument returns a unique list for a subclass of a class that includes a module"
41
+ fails "Kernel#protected_methods when not passed an argument returns a unique list for an object extended by a module"
42
+ fails "Kernel#protected_methods when passed false returns a list of protected methods in without its ancestors"
43
+ fails "Kernel#protected_methods when passed nil returns a list of protected methods in without its ancestors"
44
+ fails "Kernel#protected_methods when passed true returns a unique list for a class including a module"
45
+ fails "Kernel#protected_methods when passed true returns a unique list for a subclass of a class that includes a module"
46
+ fails "Kernel#protected_methods when passed true returns a unique list for an object extended by a module"
47
+ fails "Kernel#public_send called from own public method raises a NoMethodError if the method is private"
48
+ fails "Kernel#public_send called from own public method raises a NoMethodError if the method is protected"
49
+ fails "Kernel#public_send raises a NoMethodError if the method is protected"
50
+ fails "Kernel#public_send raises a NoMethodError if the named method is an alias of a private method"
51
+ fails "Kernel#public_send raises a NoMethodError if the named method is an alias of a protected method"
52
+ fails "Kernel#public_send raises a NoMethodError if the named method is private"
53
+ fails "Kernel#puts is a private method"
54
+ fails "Kernel#respond_to? does not change method visibility when finding private method"
55
+ fails "Kernel#respond_to? returns false even if obj responds to the given private method (include_private = false)"
56
+ fails "Kernel#respond_to? returns false if obj responds to the given private method"
57
+ fails "Kernel#respond_to? returns false if obj responds to the given protected method (include_private = false)"
58
+ fails "Kernel#respond_to? returns false if obj responds to the given protected method"
59
+ fails "Kernel#respond_to_missing? is a private method"
60
+ fails "Kernel#respond_to_missing? is called when obj responds to the given private method, include_private = false"
61
+ fails "Kernel#respond_to_missing? is called when obj responds to the given protected method, include_private = false"
62
+ fails "Kernel#respond_to_missing? isn't called when obj responds to the given private method, include_private = true"
63
+ fails "Kernel#respond_to_missing? isn't called when obj responds to the given protected method, include_private = true"
64
+ fails "Kernel#respond_to_missing? isn't called when obj responds to the given public method, include_private = true"
65
+ fails "Kernel#singleton_methods when not passed an argument does not return private class methods for a class"
66
+ fails "Kernel#singleton_methods when not passed an argument does not return private inherited singleton methods for a class including a module"
67
+ fails "Kernel#singleton_methods when not passed an argument does not return private inherited singleton methods for a module including a module"
68
+ fails "Kernel#singleton_methods when not passed an argument does not return private inherited singleton methods for a subclass including a module"
69
+ fails "Kernel#singleton_methods when not passed an argument does not return private inherited singleton methods for a subclass of a class including a module"
70
+ fails "Kernel#singleton_methods when not passed an argument does not return private inherited singleton methods for a subclass of a class that includes a module, where the subclass also includes a module"
71
+ fails "Kernel#singleton_methods when not passed an argument does not return private inherited singleton methods for a subclass"
72
+ fails "Kernel#singleton_methods when not passed an argument does not return private module methods for a module"
73
+ fails "Kernel#singleton_methods when not passed an argument does not return private singleton methods for a class extended with a module"
74
+ fails "Kernel#singleton_methods when not passed an argument does not return private singleton methods for an object extended with a module"
75
+ fails "Kernel#singleton_methods when not passed an argument does not return private singleton methods for an object extended with two modules"
76
+ fails "Kernel#singleton_methods when not passed an argument does not return private singleton methods for an object extented with a module including a module"
77
+ fails "Kernel#singleton_methods when passed false does not return private class methods for a class"
78
+ fails "Kernel#singleton_methods when passed false does not return private inherited singleton methods for a class including a module"
79
+ fails "Kernel#singleton_methods when passed false does not return private inherited singleton methods for a module including a module"
80
+ fails "Kernel#singleton_methods when passed false does not return private inherited singleton methods for a subclass including a module"
81
+ fails "Kernel#singleton_methods when passed false does not return private inherited singleton methods for a subclass of a class including a module"
82
+ fails "Kernel#singleton_methods when passed false does not return private inherited singleton methods for a subclass of a class that includes a module, where the subclass also includes a module"
83
+ fails "Kernel#singleton_methods when passed false does not return private inherited singleton methods for a subclass"
84
+ fails "Kernel#singleton_methods when passed false does not return private module methods for a module"
85
+ fails "Kernel#singleton_methods when passed false does not return private singleton methods for a class extended with a module"
86
+ fails "Kernel#singleton_methods when passed false does not return private singleton methods for an object extended with a module"
87
+ fails "Kernel#singleton_methods when passed false does not return private singleton methods for an object extended with two modules"
88
+ fails "Kernel#singleton_methods when passed false does not return private singleton methods for an object extented with a module including a module"
89
+ fails "Kernel#singleton_methods when passed true does not return private class methods for a class"
90
+ fails "Kernel#singleton_methods when passed true does not return private inherited singleton methods for a class including a module"
91
+ fails "Kernel#singleton_methods when passed true does not return private inherited singleton methods for a module including a module"
92
+ fails "Kernel#singleton_methods when passed true does not return private inherited singleton methods for a subclass including a module"
93
+ fails "Kernel#singleton_methods when passed true does not return private inherited singleton methods for a subclass of a class including a module"
94
+ fails "Kernel#singleton_methods when passed true does not return private inherited singleton methods for a subclass of a class that includes a module, where the subclass also includes a module"
95
+ fails "Kernel#singleton_methods when passed true does not return private inherited singleton methods for a subclass"
96
+ fails "Kernel#singleton_methods when passed true does not return private module methods for a module"
97
+ fails "Kernel#singleton_methods when passed true does not return private singleton methods for a class extended with a module"
98
+ fails "Kernel#singleton_methods when passed true does not return private singleton methods for an object extended with a module"
99
+ fails "Kernel#singleton_methods when passed true does not return private singleton methods for an object extended with two modules"
100
+ fails "Kernel#singleton_methods when passed true does not return private singleton methods for an object extented with a module including a module"
101
+ fails "Kernel.global_variables is a private method"
102
+ fails "Kernel.lambda is a private method"
103
+ fails "Kernel.loop is a private method"
104
+ fails "Kernel.proc is a private method"
105
+ fails "Kernel.rand is a private method"
106
+ fails "Kernel.srand is a private method"
107
+ fails "Method#== missing methods calls respond_to_missing? with true to include private methods"
108
+ fails "Method#eql? missing methods calls respond_to_missing? with true to include private methods"
8
109
  fails "Module#alias_method aliasing special methods keeps initialize private when aliasing"
9
110
  fails "Module#alias_method aliasing special methods keeps initialize_clone private when aliasing"
10
111
  fails "Module#alias_method aliasing special methods keeps initialize_copy private when aliasing"
@@ -16,13 +117,18 @@ opal_filter "private" do
16
117
  fails "Module#attr_accessor is a private method"
17
118
  fails "Module#attr_reader is a private method"
18
119
  fails "Module#attr_writer is a private method"
19
- fails "Module#define_method when name is not a special private name given an UnboundMethod sets the visibility of the method to the current visibility"
120
+ fails "Module#define_method is private"
121
+ fails "Module#define_method when given an UnboundMethod sets the new method's visibility to the current frame's visibility" # Expected NoMethodError but no exception was raised ("piggy" was returned)
122
+ fails "Module#define_method when name is :initialize given an UnboundMethod sets the visibility to private when method is named :initialize"
123
+ fails "Module#define_method when name is :initialize passed a block sets visibility to private when method name is :initialize"
20
124
  fails "Module#define_method when name is not a special private name given an UnboundMethod and called from the target module sets the visibility of the method to the current visibility"
125
+ fails "Module#define_method when name is not a special private name given an UnboundMethod sets the visibility of the method to the current visibility"
21
126
  fails "Module#define_method when name is not a special private name passed a block and called from the target module sets the visibility of the method to the current visibility"
22
127
  fails "Module#extend_object is a private method"
23
128
  fails "Module#extend_object is called even when private"
24
129
  fails "Module#extended is private in its default implementation"
25
130
  fails "Module#included is private in its default implementation"
131
+ fails "Module#instance_methods makes a private Object instance method public in Kernel"
26
132
  fails "Module#method_added is a private instance method"
27
133
  fails "Module#method_removed is a private instance method"
28
134
  fails "Module#method_undefined is a private instance method"
@@ -45,6 +151,7 @@ opal_filter "private" do
45
151
  fails "Module#private without arguments does not affect module_evaled method definitions when itself is outside the eval"
46
152
  fails "Module#private without arguments sets visibility to following method definitions"
47
153
  fails "Module#private without arguments stops setting visibility if the body encounters other visibility setters without arguments"
154
+ fails "Module#private without arguments within a closure sets the visibility outside the closure"
48
155
  fails "Module#private_class_method accepts more than one method at a time"
49
156
  fails "Module#private_class_method makes a class method private"
50
157
  fails "Module#private_class_method makes an existing class method private up the inheritance tree"
@@ -55,6 +162,25 @@ opal_filter "private" do
55
162
  fails "Module#private_constant accepts multiple names"
56
163
  fails "Module#private_constant accepts strings as constant names"
57
164
  fails "Module#private_constant can only be passed constant names defined in the target (self) module"
165
+ fails "Module#private_constant marked constants in Object cannot be accessed using ::Const form"
166
+ fails "Module#private_constant marked constants in Object is not defined? using ::Const form"
167
+ fails "Module#private_constant marked constants in a class can be accessed from lexical scope"
168
+ fails "Module#private_constant marked constants in a class can be accessed from the class itself"
169
+ fails "Module#private_constant marked constants in a class cannot be accessed from outside the class"
170
+ fails "Module#private_constant marked constants in a class cannot be reopened as a class"
171
+ fails "Module#private_constant marked constants in a class cannot be reopened as a module"
172
+ fails "Module#private_constant marked constants in a class is defined? from lexical scope"
173
+ fails "Module#private_constant marked constants in a class is not defined? with A::B form"
174
+ fails "Module#private_constant marked constants in a module can be accessed from lexical scope"
175
+ fails "Module#private_constant marked constants in a module can be accessed from the module itself"
176
+ fails "Module#private_constant marked constants in a module cannot be accessed from outside the module"
177
+ fails "Module#private_constant marked constants in a module cannot be reopened as a class from scope where constant would be private" # Expected NameError but no exception was raised (nil was returned)
178
+ fails "Module#private_constant marked constants in a module cannot be reopened as a class"
179
+ fails "Module#private_constant marked constants in a module cannot be reopened as a module from scope where constant would be private" # Exception: Cannot read property '$pretty_inspect' of undefined
180
+ fails "Module#private_constant marked constants in a module cannot be reopened as a module"
181
+ fails "Module#private_constant marked constants in a module is defined? from lexical scope"
182
+ fails "Module#private_constant marked constants in a module is not defined? with A::B form"
183
+ fails "Module#private_constant marked constants remain private even when updated"
58
184
  fails "Module#private_instance_methods returns a list of private methods in module and its ancestors"
59
185
  fails "Module#private_instance_methods when not passed an argument returns a unique list for a class including a module"
60
186
  fails "Module#private_instance_methods when not passed an argument returns a unique list for a subclass"
@@ -83,6 +209,7 @@ opal_filter "private" do
83
209
  fails "Module#protected without arguments does not affect module_evaled method definitions when itself is outside the eval"
84
210
  fails "Module#protected without arguments sets visibility to following method definitions"
85
211
  fails "Module#protected without arguments stops setting visibility if the body encounters other visibility setters without arguments"
212
+ fails "Module#protected without arguments within a closure sets the visibility outside the closure"
86
213
  fails "Module#protected_instance_methods default list should be the same as passing true as an argument"
87
214
  fails "Module#protected_instance_methods returns a list of protected methods in module and its ancestors"
88
215
  fails "Module#protected_instance_methods when not passed an argument returns a unique list for a class including a module"
@@ -116,6 +243,11 @@ opal_filter "private" do
116
243
  fails "Module#public_class_method raises a NameError when the given name is not a method"
117
244
  fails "Module#public_constant accepts multiple names"
118
245
  fails "Module#public_constant accepts strings as constant names"
246
+ fails "Module#public_constant can only be passed constant names defined in the target (self) module"
247
+ fails "Module#public_constant marked constants in a class can be accessed from outside the class"
248
+ fails "Module#public_constant marked constants in a class is defined? with A::B form" # Exception: Opal.TypeError is not a constructor
249
+ fails "Module#public_constant marked constants in a module can be accessed from outside the module"
250
+ fails "Module#public_constant marked constants in a module is defined? with A::B form" # Exception: Opal.TypeError is not a constructor
119
251
  fails "Module#public_instance_method is a public method"
120
252
  fails "Module#public_instance_method raises a TypeError when given a name is not Symbol or String"
121
253
  fails "Module#public_instance_method requires an argument"
@@ -133,15 +265,15 @@ opal_filter "private" do
133
265
  fails "Module#remove_const is a private method"
134
266
  fails "Module#remove_method is a private method"
135
267
  fails "Module#undef_method is a private method"
268
+ fails "NoMethodError#message for an protected method match /protected method/"
269
+ fails "NoMethodError#message for private method match /private method/"
136
270
  fails "OpenStruct#initialize is private"
137
271
  fails "OpenStruct#new_ostruct_member is protected"
138
272
  fails "OpenStruct#table is protected"
139
- fails "Defining a method at the top-level defines it on Object with private visibility by default"
140
- fails "Defining an 'initialize' method sets the method's visibility to private"
141
- fails "Defining an 'initialize_copy' method sets the method's visibility to private"
142
- fails "Defining an 'initialize_dup' method sets the method's visibility to private"
143
- fails "Defining an 'initialize_clone' method sets the method's visibility to private"
144
- fails "Defining a 'respond_to_missing?' method sets the method's visibility to private"
145
- fails "Redefining a singleton method does not inherit a previously set visibility"
273
+ fails "Rational#marshal_dump is a private method"
146
274
  fails "Redefining a singleton method does not inherit a previously set visibility"
275
+ fails "Regexp#initialize is a private method"
276
+ fails "Set#flatten_merge is protected"
277
+ fails "String#+@ returns mutable copy despite freeze-magic-comment in file" # NoMethodError: undefined method `tmp' for #<Object:0x3bdc>
278
+ fails "StringScanner#initialize is a private method"
147
279
  end
@@ -1,3 +1,3 @@
1
- opal_filter "Proc" do
1
+ opal_unsupported_filter "Proc" do
2
2
  fails "Proc#hash returns an Integer"
3
3
  end
@@ -0,0 +1,4 @@
1
+ opal_unsupported_filter "Random" do
2
+ fails "Random#bytes returns the same numeric output for a given seed accross all implementations and platforms"
3
+ fails "Random#bytes returns the same numeric output for a given huge seed accross all implementations and platforms"
4
+ end
@@ -0,0 +1,7 @@
1
+ opal_unsupported_filter "Range" do
2
+ fails "Range#initialize is private"
3
+ fails "Range#inspect returns a tainted string if either end is tainted"
4
+ fails "Range#inspect returns a untrusted string if either end is untrusted"
5
+ fails "Range#to_s returns a tainted string if either end is tainted"
6
+ fails "Range#to_s returns a untrusted string if either end is untrusted"
7
+ end
@@ -1,22 +1,26 @@
1
- opal_filter "Regexp" do
1
+ opal_unsupported_filter "Regexp" do
2
+ fails "Regexp with character classes doesn't match non-ASCII characters with [[:ascii:]]"
2
3
  fails "Regexp#options does not include Regexp::FIXEDENCODING for a Regexp literal with the 'n' option"
3
4
  fails "Regexp#options includes Regexp::FIXEDENCODING for a Regexp literal with the 'e' option"
4
5
  fails "Regexp#options includes Regexp::FIXEDENCODING for a Regexp literal with the 's' option"
5
6
  fails "Regexp#options includes Regexp::FIXEDENCODING for a Regexp literal with the 'u' option"
6
7
  fails "Regexp#options includes Regexp::NOENCODING for a Regexp literal with the 'n' option"
8
+ fails "Regexp#source has US-ASCII encoding when created from an ASCII-only \\u{} literal"
9
+ fails "Regexp#source has UTF-8 encoding when created from a non-ASCII-only \\u{} literal"
10
+ fails "Regexp#to_s deals properly with uncaptured groups"
11
+ fails "Regexp#to_s displays groups with options"
12
+ fails "Regexp#to_s displays options if included"
13
+ fails "Regexp#to_s displays single group with same options as main regex as the main regex"
14
+ fails "Regexp#to_s handles abusive option groups"
7
15
  fails "Regexp.escape sets the encoding of the result to ASCII-8BIT if any non-US-ASCII characters are present in an input String with invalid encoding"
8
- fails "Regexp.escape sets the encoding of the result to the encoding of the String if any non-US-ASCII characters are present in an input String with valid encoding"
9
16
  fails "Regexp.escape sets the encoding of the result to US-ASCII if there are only US-ASCII characters present in the input String"
17
+ fails "Regexp.escape sets the encoding of the result to the encoding of the String if any non-US-ASCII characters are present in an input String with valid encoding"
10
18
  fails "Regexp.new given a String accepts a Fixnum of two or more options ORed together as the second argument"
11
19
  fails "Regexp.new given a String ignores the third argument if it is 'e' or 'euc' (case-insensitive)"
12
20
  fails "Regexp.new given a String ignores the third argument if it is 's' or 'sjis' (case-insensitive)"
13
21
  fails "Regexp.new given a String ignores the third argument if it is 'u' or 'utf8' (case-insensitive)"
14
22
  fails "Regexp.new given a String uses ASCII_8BIT encoding if third argument is 'n' or 'none' (case insensitive) and non-ascii characters"
15
23
  fails "Regexp.new given a String uses US_ASCII encoding if third argument is 'n' or 'none' (case insensitive) and only ascii characters"
16
- fails "Regexp.new given a String with escaped characters accepts a combination of escaped octal and hexadecimal digits and \\u{HHHH}"
17
- fails "Regexp.new given a String with escaped characters accepts characters followed by \\u{HHHH}"
18
- fails "Regexp.new given a String with escaped characters accepts escaped hexadecimal digits followed by \\u{HHHH}"
19
- fails "Regexp.new given a String with escaped characters accepts escaped octal digits followed by \\u{HHHH}"
20
24
  fails "Regexp.new given a String with escaped characters accepts \\u{HHHHHH} for a single Unicode codepoint"
21
25
  fails "Regexp.new given a String with escaped characters accepts \\u{HHHHH} for a single Unicode codepoint"
22
26
  fails "Regexp.new given a String with escaped characters accepts \\u{HHHH} followed by characters"
@@ -24,21 +28,26 @@ opal_filter "Regexp" do
24
28
  fails "Regexp.new given a String with escaped characters accepts \\u{HHH} for a single Unicode codepoint"
25
29
  fails "Regexp.new given a String with escaped characters accepts \\u{HH} for a single Unicode codepoint"
26
30
  fails "Regexp.new given a String with escaped characters accepts \\u{H} for a single Unicode codepoint"
31
+ fails "Regexp.new given a String with escaped characters accepts a combination of escaped octal and hexadecimal digits and \\u{HHHH}"
32
+ fails "Regexp.new given a String with escaped characters accepts characters followed by \\u{HHHH}"
33
+ fails "Regexp.new given a String with escaped characters accepts escaped hexadecimal digits followed by \\u{HHHH}"
34
+ fails "Regexp.new given a String with escaped characters accepts escaped octal digits followed by \\u{HHHH}"
27
35
  fails "Regexp.new given a String with escaped characters raises a RegexpError if less than four digits are given for \\uHHHH"
28
36
  fails "Regexp.new given a String with escaped characters raises a RegexpError if the \\u{} escape is empty"
29
- fails "Regexp.new given a String with escaped characters returns a Regexp with source String having the input String's encoding"
30
- fails "Regexp.new given a String with escaped characters returns a Regexp with source String having US-ASCII encoding if only 7-bit ASCII characters are present regardless of the input String's encoding"
37
+ fails "Regexp.new given a String with escaped characters returns a Regexp with US-ASCII encoding if UTF-8 escape sequences using only 7-bit ASCII are present"
38
+ fails "Regexp.new given a String with escaped characters returns a Regexp with US-ASCII encoding if only 7-bit ASCII characters are present regardless of the input String's encoding"
39
+ fails "Regexp.new given a String with escaped characters returns a Regexp with UTF-8 encoding if any UTF-8 escape sequences outside 7-bit ASCII are present"
31
40
  fails "Regexp.new given a String with escaped characters returns a Regexp with source String having US-ASCII encoding if UTF-8 escape sequences using only 7-bit ASCII are present"
41
+ fails "Regexp.new given a String with escaped characters returns a Regexp with source String having US-ASCII encoding if only 7-bit ASCII characters are present regardless of the input String's encoding"
32
42
  fails "Regexp.new given a String with escaped characters returns a Regexp with source String having UTF-8 encoding if any UTF-8 escape sequences outside 7-bit ASCII are present"
43
+ fails "Regexp.new given a String with escaped characters returns a Regexp with source String having the input String's encoding"
33
44
  fails "Regexp.new given a String with escaped characters returns a Regexp with the input String's encoding"
34
- fails "Regexp.new given a String with escaped characters returns a Regexp with US-ASCII encoding if only 7-bit ASCII characters are present regardless of the input String's encoding"
35
- fails "Regexp.new given a String with escaped characters returns a Regexp with US-ASCII encoding if UTF-8 escape sequences using only 7-bit ASCII are present"
36
- fails "Regexp.new given a String with escaped characters returns a Regexp with UTF-8 encoding if any UTF-8 escape sequences outside 7-bit ASCII are present"
37
45
  fails "Regexp.quote sets the encoding of the result to ASCII-8BIT if any non-US-ASCII characters are present in an input String with invalid encoding"
38
- fails "Regexp.quote sets the encoding of the result to the encoding of the String if any non-US-ASCII characters are present in an input String with valid encoding"
39
46
  fails "Regexp.quote sets the encoding of the result to US-ASCII if there are only US-ASCII characters present in the input String"
40
- fails "Regexp.union raises ArgumentError if the arguments include a fixed encoding Regexp and a String containing non-ASCII-compatible characters in a different encoding"
47
+ fails "Regexp.quote sets the encoding of the result to the encoding of the String if any non-US-ASCII characters are present in an input String with valid encoding"
48
+ fails "Regexp.try_convert returns the argument if given a Regexp"
41
49
  fails "Regexp.union raises ArgumentError if the arguments include a String containing non-ASCII-compatible characters and a fixed encoding Regexp in a different encoding"
50
+ fails "Regexp.union raises ArgumentError if the arguments include a fixed encoding Regexp and a String containing non-ASCII-compatible characters in a different encoding"
42
51
  fails "Regexp.union raises ArgumentError if the arguments include an ASCII-incompatible Regexp and a Regexp containing non-ASCII-compatible characters in a different encoding"
43
52
  fails "Regexp.union raises ArgumentError if the arguments include an ASCII-incompatible Regexp and a String containing non-ASCII-compatible characters in a different encoding"
44
53
  fails "Regexp.union raises ArgumentError if the arguments include an ASCII-incompatible Regexp and an ASCII-only Regexp"
@@ -48,12 +57,13 @@ opal_filter "Regexp" do
48
57
  fails "Regexp.union raises ArgumentError if the arguments include an ASCII-incompatible String and an ASCII-only Regexp"
49
58
  fails "Regexp.union raises ArgumentError if the arguments include an ASCII-incompatible String and an ASCII-only String"
50
59
  fails "Regexp.union raises ArgumentError if the arguments include conflicting ASCII-incompatible Regexps"
60
+ fails "Regexp.union raises ArgumentError if the arguments include conflicting ASCII-incompatible Strings" # Expected ArgumentError but no exception was raised (/a|b/ was returned)
51
61
  fails "Regexp.union raises ArgumentError if the arguments include conflicting fixed encoding Regexps"
62
+ fails "Regexp.union returns a Regexp with US-ASCII encoding if all arguments are ASCII-only"
63
+ fails "Regexp.union returns a Regexp with UTF-8 if one part is UTF-8"
52
64
  fails "Regexp.union returns a Regexp with the encoding of a String containing non-ASCII-compatible characters and another ASCII-only String"
53
65
  fails "Regexp.union returns a Regexp with the encoding of a String containing non-ASCII-compatible characters"
54
66
  fails "Regexp.union returns a Regexp with the encoding of an ASCII-incompatible String argument"
55
67
  fails "Regexp.union returns a Regexp with the encoding of multiple non-conflicting ASCII-incompatible String arguments"
56
68
  fails "Regexp.union returns a Regexp with the encoding of multiple non-conflicting Strings containing non-ASCII-compatible characters"
57
- fails "Regexp.union returns a Regexp with US-ASCII encoding if all arguments are ASCII-only"
58
- fails "Regexp.union returns a Regexp with UTF-8 if one part is UTF-8"
59
69
  end
@@ -1,4 +1,4 @@
1
- opal_filter "Set" do
1
+ opal_unsupported_filter "Set" do
2
2
  fails "Set#eql? returns true when the passed argument is a Set and contains the same elements"
3
3
  fails "Set#initialize is private"
4
4
  end
@@ -1,4 +1,4 @@
1
- opal_filter "Singleton" do
1
+ opal_unsupported_filter "Singleton" do
2
2
  fails "Singleton#_dump returns an empty string from a singleton subclass"
3
3
  fails "Singleton#_dump returns an empty string"
4
4
  fails "Singleton.allocate is a private method"
@@ -1,5 +1,18 @@
1
- opal_filter "String" do
1
+ opal_unsupported_filter "String" do
2
2
  fails "BasicObject#__id__ returns a different value for two String literals"
3
+ fails "Ruby character strings Unicode escaping can be done with \\u{} and one to six hex digits"
4
+ fails "Ruby character strings Unicode escaping with ASCII_8BIT source encoding produces a UTF-8-encoded string when escaping non-ASCII characters via \\u" # Expected #<Encoding:UTF-16LE> to equal #<Encoding:UTF-8>
5
+ fails "Ruby character strings Unicode escaping with ASCII_8BIT source encoding produces a UTF-8-encoded string when escaping non-ASCII characters via \\u{}" # Expected #<Encoding:UTF-16LE> to equal #<Encoding:UTF-8>
6
+ fails "Ruby character strings Unicode escaping with ASCII_8BIT source encoding produces an ASCII string when escaping ASCII characters via \\u" # Expected #<Encoding:UTF-16LE> to equal #<Encoding:ASCII-8BIT>
7
+ fails "Ruby character strings Unicode escaping with ASCII_8BIT source encoding produces an ASCII string when escaping ASCII characters via \\u{}" # Expected #<Encoding:UTF-16LE> to equal #<Encoding:ASCII-8BIT>
8
+ fails "Ruby character strings Unicode escaping with US-ASCII source encoding produces a UTF-8-encoded string when escaping non-ASCII characters via \\u"
9
+ fails "Ruby character strings Unicode escaping with US-ASCII source encoding produces a UTF-8-encoded string when escaping non-ASCII characters via \\u{}"
10
+ fails "Ruby character strings Unicode escaping with US-ASCII source encoding produces an ASCII string when escaping ASCII characters via \\u"
11
+ fails "Ruby character strings Unicode escaping with US-ASCII source encoding produces an ASCII string when escaping ASCII characters via \\u{}"
12
+ fails "Ruby character strings are produced from control character shortcuts"
13
+ fails "Ruby character strings backslashes follow the same rules as interpolation"
14
+ fails "Ruby character strings taints the result of interpolation when an interpolated value is tainted"
15
+ fails "Ruby character strings untrusts the result of interpolation when an interpolated value is untrusted"
3
16
  fails "String#% always taints the result when the format string is tainted"
4
17
  fails "String#% supports negative bignums with %u or %d"
5
18
  fails "String#% taints result for %p when argument.inspect is tainted"
@@ -42,9 +55,9 @@ opal_filter "String" do
42
55
  fails "String#<< when the argument is in an ASCII-incompatible encoding incompatible with self's encoding uses the argument's encoding if self is empty"
43
56
  fails "String#<< with Integer concatencates the argument interpreted as a codepoint"
44
57
  fails "String#<< with Integer doesn't call to_int on its argument"
45
- fails "String#<< with Integer raises a RuntimeError when self is frozen"
46
58
  fails "String#<< with Integer raises RangeError if the argument is an invalid codepoint for self's encoding"
47
59
  fails "String#<< with Integer raises RangeError if the argument is negative"
60
+ fails "String#<< with Integer raises a RuntimeError when self is frozen"
48
61
  fails "String#<< with Integer returns a ASCII-8BIT string if self is US-ASCII and the argument is between 128-255 (inclusive)"
49
62
  fails "String#<=> with String compares the indices of the encodings when the strings have identical non-ASCII-compatible bytes"
50
63
  fails "String#<=> with String ignores encoding difference"
@@ -57,6 +70,62 @@ opal_filter "String" do
57
70
  fails "String#=== considers encoding compatibility"
58
71
  fails "String#=== considers encoding difference of incompatible string"
59
72
  fails "String#=== ignores encoding difference of compatible string"
73
+ fails "String#[] with Range always taints resulting strings when self is tainted"
74
+ fails "String#[] with Regexp, index always taints resulting strings when self or regexp is tainted"
75
+ fails "String#[] with String taints resulting strings when other is tainted"
76
+ fails "String#[] with Symbol raises TypeError"
77
+ fails "String#[] with index, length always taints resulting strings when self is tainted"
78
+ fails "String#[]= with Fixnum index allows assignment to the zero'th element of an empty String"
79
+ fails "String#[]= with Fixnum index calls #to_str to convert other to a String"
80
+ fails "String#[]= with Fixnum index calls to_int on index"
81
+ fails "String#[]= with Fixnum index raises IndexError if the string index doesn't match a position in the string"
82
+ fails "String#[]= with Fixnum index raises a RuntimeError when self is frozen"
83
+ fails "String#[]= with Fixnum index raises a TypeError if other_str can't be converted to a String"
84
+ fails "String#[]= with Fixnum index raises an IndexError without changing self if idx is outside of self"
85
+ fails "String#[]= with Fixnum index replaces the char at idx with other_str"
86
+ fails "String#[]= with Fixnum index taints self if other_str is tainted"
87
+ fails "String#[]= with Fixnum index, count appends other_str to the end of the string if idx == the length of the string"
88
+ fails "String#[]= with Fixnum index, count calls #to_int to convert the index and count objects"
89
+ fails "String#[]= with Fixnum index, count calls #to_str to convert the replacement object"
90
+ fails "String#[]= with Fixnum index, count counts negative idx values from end of the string"
91
+ fails "String#[]= with Fixnum index, count deletes characters if other_str is an empty string"
92
+ fails "String#[]= with Fixnum index, count deletes characters up to the maximum length of the existing string"
93
+ fails "String#[]= with Fixnum index, count overwrites and deletes characters if count is more than the length of other_str"
94
+ fails "String#[]= with Fixnum index, count raises a TypeError if #to_int for count does not return an Integer"
95
+ fails "String#[]= with Fixnum index, count raises a TypeError if #to_int for index does not return an Integer"
96
+ fails "String#[]= with Fixnum index, count raises a TypeError if other_str is a type other than String"
97
+ fails "String#[]= with Fixnum index, count raises a TypeError of #to_str does not return a String"
98
+ fails "String#[]= with Fixnum index, count raises an IndexError if count < 0"
99
+ fails "String#[]= with Fixnum index, count raises an IndexError if |idx| is greater than the length of the string"
100
+ fails "String#[]= with Fixnum index, count starts at idx and overwrites count characters before inserting the rest of other_str"
101
+ fails "String#[]= with Fixnum index, count taints self if other_str is tainted"
102
+ fails "String#[]= with String index raises an IndexError if the search String is not found"
103
+ fails "String#[]= with String index replaces characters with no characters"
104
+ fails "String#[]= with String index replaces fewer characters with more characters"
105
+ fails "String#[]= with String index replaces more characters with fewer characters"
106
+ fails "String#[]= with a Range index raises a RangeError if negative Range begin is out of range"
107
+ fails "String#[]= with a Range index raises a RangeError if positive Range begin is greater than String size"
108
+ fails "String#[]= with a Range index replaces a partial string"
109
+ fails "String#[]= with a Range index replaces the contents with a longer String"
110
+ fails "String#[]= with a Range index replaces the contents with a shorter String"
111
+ fails "String#[]= with a Range index treats a negative out-of-range Range end with a negative Range begin as a zero count"
112
+ fails "String#[]= with a Range index treats a negative out-of-range Range end with a positive Range begin as a zero count"
113
+ fails "String#[]= with a Range index uses the Range end as an index rather than a count"
114
+ fails "String#[]= with a Range index with an empty replacement does not replace a character with a zero exclude-end range"
115
+ fails "String#[]= with a Range index with an empty replacement does not replace a character with a zero-index, zero exclude-end range"
116
+ fails "String#[]= with a Range index with an empty replacement replaces a character with a zero non-exclude-end range"
117
+ fails "String#[]= with a Range index with an empty replacement replaces a character with zero-index, zero non-exclude-end range"
118
+ fails "String#[]= with a Regexp index calls #to_str to convert the replacement"
119
+ fails "String#[]= with a Regexp index checks the match before calling #to_str to convert the replacement"
120
+ fails "String#[]= with a Regexp index raises IndexError if the regexp index doesn't match a position in the string"
121
+ fails "String#[]= with a Regexp index replaces the matched text with the rhs"
122
+ fails "String#[]= with a Regexp index with 3 arguments allows the specified capture to be negative and count from the end"
123
+ fails "String#[]= with a Regexp index with 3 arguments calls #to_int to convert the second object"
124
+ fails "String#[]= with a Regexp index with 3 arguments checks the match index before calling #to_str to convert the replacement"
125
+ fails "String#[]= with a Regexp index with 3 arguments raises IndexError if the specified capture isn't available"
126
+ fails "String#[]= with a Regexp index with 3 arguments raises a TypeError if #to_int does not return a Fixnum"
127
+ fails "String#[]= with a Regexp index with 3 arguments uses the 2nd of 3 arguments as which capture should be replaced"
128
+ fails "String#[]= with a Regexp index with 3 arguments when the optional capture does not match raises an IndexError before setting the replacement"
60
129
  fails "String#capitalize is locale insensitive (only upcases a-z and only downcases A-Z)"
61
130
  fails "String#capitalize taints resulting string when self is tainted"
62
131
  fails "String#capitalize! capitalizes self in place"
@@ -142,9 +211,9 @@ opal_filter "String" do
142
211
  fails "String#concat when the argument is in an ASCII-incompatible encoding incompatible with self's encoding uses the argument's encoding if self is empty"
143
212
  fails "String#concat with Integer concatencates the argument interpreted as a codepoint"
144
213
  fails "String#concat with Integer doesn't call to_int on its argument"
145
- fails "String#concat with Integer raises a RuntimeError when self is frozen"
146
214
  fails "String#concat with Integer raises RangeError if the argument is an invalid codepoint for self's encoding"
147
215
  fails "String#concat with Integer raises RangeError if the argument is negative"
216
+ fails "String#concat with Integer raises a RuntimeError when self is frozen"
148
217
  fails "String#concat with Integer returns a ASCII-8BIT string if self is US-ASCII and the argument is between 128-255 (inclusive)"
149
218
  fails "String#count returns the number of occurrences of a multi-byte character"
150
219
  fails "String#delete taints result when self is tainted"
@@ -156,6 +225,7 @@ opal_filter "String" do
156
225
  fails "String#downcase! modifies self in place"
157
226
  fails "String#downcase! raises a RuntimeError when self is frozen"
158
227
  fails "String#downcase! returns nil if no modifications were made"
228
+ fails "String#dump untrusts the result if self is untrusted"
159
229
  fails "String#dup does not modify the original string when changing dupped string"
160
230
  fails "String#each_char is unicode aware"
161
231
  fails "String#each_line does not care if the string is modified while substituting"
@@ -164,29 +234,22 @@ opal_filter "String" do
164
234
  fails "String#eql? considers encoding compatibility"
165
235
  fails "String#eql? considers encoding difference of incompatible string"
166
236
  fails "String#eql? ignores encoding difference of compatible string"
167
- fails "String#gsub with pattern and block raises an Encoding::CompatibilityError if the encodings are not compatible"
168
- fails "String#gsub with pattern and block replaces the incompatible part properly even if the encodings are not compatible"
169
- fails "String#gsub with pattern and block untrusts the result if the original string or replacement is untrusted"
170
- fails "String#gsub with pattern and block uses the compatible encoding if they are compatible"
171
237
  fails "String#gsub with pattern and Hash ignores non-String keys"
172
238
  fails "String#gsub with pattern and Hash taints the result if a hash value is tainted"
173
239
  fails "String#gsub with pattern and Hash taints the result if the original string is tainted"
174
240
  fails "String#gsub with pattern and Hash untrusts the result if a hash value is untrusted"
175
241
  fails "String#gsub with pattern and Hash untrusts the result if the original string is untrusted"
242
+ fails "String#gsub with pattern and block raises an ArgumentError if encoding is not valid"
243
+ fails "String#gsub with pattern and block raises an Encoding::CompatibilityError if the encodings are not compatible"
244
+ fails "String#gsub with pattern and block replaces the incompatible part properly even if the encodings are not compatible"
245
+ fails "String#gsub with pattern and block untrusts the result if the original string or replacement is untrusted"
246
+ fails "String#gsub with pattern and block uses the compatible encoding if they are compatible"
176
247
  fails "String#gsub with pattern and replacement doesn't freak out when replacing ^" #Only fails "Text\nFoo".gsub(/^/, ' ').should == " Text\n Foo"
177
248
  fails "String#gsub with pattern and replacement replaces \\k named backreferences with the regexp's corresponding capture"
178
249
  fails "String#gsub with pattern and replacement returns a copy of self with all occurrences of pattern replaced with replacement" #Only fails str.gsub(/\Ah\S+\s*/, "huh? ").should == "huh? homely world. hah!"
179
250
  fails "String#gsub with pattern and replacement supports \\G which matches at the beginning of the remaining (non-matched) string"
180
251
  fails "String#gsub with pattern and replacement taints the result if the original string or replacement is tainted"
181
252
  fails "String#gsub with pattern and replacement untrusts the result if the original string or replacement is untrusted"
182
- fails "String#gsub! with pattern and block modifies self in place and returns self"
183
- fails "String#gsub! with pattern and block raises a RuntimeError when self is frozen"
184
- fails "String#gsub! with pattern and block raises an Encoding::CompatibilityError if the encodings are not compatible"
185
- fails "String#gsub! with pattern and block replaces the incompatible part properly even if the encodings are not compatible"
186
- fails "String#gsub! with pattern and block returns nil if no modifications were made"
187
- fails "String#gsub! with pattern and block taints self if block's result is tainted"
188
- fails "String#gsub! with pattern and block untrusts self if block's result is untrusted"
189
- fails "String#gsub! with pattern and block uses the compatible encoding if they are compatible"
190
253
  fails "String#gsub! with pattern and Hash coerces the hash values with #to_s"
191
254
  fails "String#gsub! with pattern and Hash doesn't interpolate special sequences like \\1 for the block's return value"
192
255
  fails "String#gsub! with pattern and Hash ignores keys that don't correspond to matches"
@@ -201,12 +264,21 @@ opal_filter "String" do
201
264
  fails "String#gsub! with pattern and Hash uses a key's value as many times as needed"
202
265
  fails "String#gsub! with pattern and Hash uses the hash's default value for missing keys"
203
266
  fails "String#gsub! with pattern and Hash uses the hash's value set from default_proc for missing keys"
267
+ fails "String#gsub! with pattern and block modifies self in place and returns self"
268
+ fails "String#gsub! with pattern and block raises a RuntimeError when self is frozen"
269
+ fails "String#gsub! with pattern and block raises an ArgumentError if encoding is not valid"
270
+ fails "String#gsub! with pattern and block raises an Encoding::CompatibilityError if the encodings are not compatible"
271
+ fails "String#gsub! with pattern and block replaces the incompatible part properly even if the encodings are not compatible"
272
+ fails "String#gsub! with pattern and block returns nil if no modifications were made"
273
+ fails "String#gsub! with pattern and block taints self if block's result is tainted"
274
+ fails "String#gsub! with pattern and block untrusts self if block's result is untrusted"
275
+ fails "String#gsub! with pattern and block uses the compatible encoding if they are compatible"
204
276
  fails "String#gsub! with pattern and replacement modifies self in place and returns self"
277
+ fails "String#gsub! with pattern and replacement modifies self in place with multi-byte characters and returns self"
205
278
  fails "String#gsub! with pattern and replacement raises a RuntimeError when self is frozen"
206
279
  fails "String#gsub! with pattern and replacement returns nil if no modifications were made"
207
280
  fails "String#gsub! with pattern and replacement taints self if replacement is tainted"
208
281
  fails "String#gsub! with pattern and replacement untrusts self if replacement is untrusted"
209
- fails "String#gsub! with pattern and replacement modifies self in place with multi-byte characters and returns self"
210
282
  fails "String#gsub! with pattern and without replacement and block returned Enumerator size should return nil"
211
283
  fails "String#gsub! with pattern and without replacement and block returns an enumerator"
212
284
  fails "String#index raises a TypeError if passed a Symbol"
@@ -233,8 +305,8 @@ opal_filter "String" do
233
305
  fails "String#insert with index, other raises a TypeError if other can't be converted to string"
234
306
  fails "String#insert with index, other raises an IndexError if the index is beyond string"
235
307
  fails "String#insert with index, other taints self if string to insert is tainted"
236
- fails "String#inspect returns a string with non-printing characters replaced by \\x notation"
237
308
  fails "String#inspect returns a string with a NUL character replaced by \\x notation"
309
+ fails "String#inspect returns a string with non-printing characters replaced by \\x notation"
238
310
  fails "String#inspect taints the result if self is tainted"
239
311
  fails "String#inspect untrusts the result if self is untrusted"
240
312
  fails "String#lines does not care if the string is modified while substituting"
@@ -273,6 +345,7 @@ opal_filter "String" do
273
345
  fails "String#reverse! raises a RuntimeError on a frozen instance that is modified"
274
346
  fails "String#reverse! raises a RuntimeError on a frozen instance that would not be modified"
275
347
  fails "String#reverse! reverses self in place and always returns self"
348
+ fails "String#rindex with Regexp supports \\G which matches at the given start offset"
276
349
  fails "String#rjust with length, padding taints result when self or padstr is tainted"
277
350
  fails "String#rjust with length, padding when padding is tainted and self is untainted returns a tainted string if and only if length is longer than self"
278
351
  fails "String#rstrip taints the result when self is tainted"
@@ -304,11 +377,11 @@ opal_filter "String" do
304
377
  fails "String#setbyte regards a negative index as counting from the end of the String"
305
378
  fails "String#setbyte returns an Integer"
306
379
  fails "String#setbyte sets a byte at an index greater than String size"
307
- fails "String#slice with index, length always taints resulting strings when self is tainted"
308
380
  fails "String#slice with Range always taints resulting strings when self is tainted"
309
381
  fails "String#slice with Regexp, index always taints resulting strings when self or regexp is tainted"
310
382
  fails "String#slice with String taints resulting strings when other is tainted"
311
383
  fails "String#slice with Symbol raises TypeError"
384
+ fails "String#slice with index, length always taints resulting strings when self is tainted"
312
385
  fails "String#slice! Range always taints resulting strings when self is tainted"
313
386
  fails "String#slice! Range calls to_int on range arguments"
314
387
  fails "String#slice! Range deletes and return the substring given by the offsets of the range"
@@ -317,16 +390,6 @@ opal_filter "String" do
317
390
  fails "String#slice! Range returns nil if the given range is out of self"
318
391
  fails "String#slice! Range returns subclass instances"
319
392
  fails "String#slice! Range works with Range subclasses"
320
- fails "String#slice! with index calls to_int on index"
321
- fails "String#slice! with index deletes and return the char at the given position"
322
- fails "String#slice! with index raises a RuntimeError if self is frozen"
323
- fails "String#slice! with index returns nil if idx is outside of self"
324
- fails "String#slice! with index, length always taints resulting strings when self is tainted"
325
- fails "String#slice! with index, length calls to_int on idx and length"
326
- fails "String#slice! with index, length deletes and returns the substring at idx and the given length"
327
- fails "String#slice! with index, length raises a RuntimeError if self is frozen"
328
- fails "String#slice! with index, length returns nil if the length is negative"
329
- fails "String#slice! with index, length returns subclass instances"
330
393
  fails "String#slice! with Regexp always taints resulting strings when self or regexp is tainted"
331
394
  fails "String#slice! with Regexp deletes and returns the first match from self"
332
395
  fails "String#slice! with Regexp doesn't taint self when regexp is tainted"
@@ -352,6 +415,16 @@ opal_filter "String" do
352
415
  fails "String#slice! with String returns a subclass instance when given a subclass instance"
353
416
  fails "String#slice! with String returns nil if self does not contain other"
354
417
  fails "String#slice! with String taints resulting strings when other is tainted"
418
+ fails "String#slice! with index calls to_int on index"
419
+ fails "String#slice! with index deletes and return the char at the given position"
420
+ fails "String#slice! with index raises a RuntimeError if self is frozen"
421
+ fails "String#slice! with index returns nil if idx is outside of self"
422
+ fails "String#slice! with index, length always taints resulting strings when self is tainted"
423
+ fails "String#slice! with index, length calls to_int on idx and length"
424
+ fails "String#slice! with index, length deletes and returns the substring at idx and the given length"
425
+ fails "String#slice! with index, length raises a RuntimeError if self is frozen"
426
+ fails "String#slice! with index, length returns nil if the length is negative"
427
+ fails "String#slice! with index, length returns subclass instances"
355
428
  fails "String#split with Regexp doesn't taints the resulting strings if the Regexp is tainted"
356
429
  fails "String#split with Regexp respects the encoding of the regexp when splitting between characters"
357
430
  fails "String#split with Regexp retains the encoding of the source string"
@@ -371,21 +444,16 @@ opal_filter "String" do
371
444
  fails "String#strip! raises a RuntimeError on a frozen instance that is modified"
372
445
  fails "String#strip! raises a RuntimeError on a frozen instance that would not be modified"
373
446
  fails "String#strip! returns nil if no modifications where made"
374
- fails "String#sub with pattern and block doesn't raise a RuntimeError if the string is modified while substituting"
375
- fails "String#sub with pattern and block taints the result if the original string or replacement is tainted"
376
447
  fails "String#sub with pattern and Hash ignores non-String keys"
377
448
  fails "String#sub with pattern and Hash taints the result if a hash value is tainted"
378
449
  fails "String#sub with pattern and Hash taints the result if the original string is tainted"
379
450
  fails "String#sub with pattern and Hash untrusts the result if a hash value is untrusted"
380
451
  fails "String#sub with pattern and Hash untrusts the result if the original string is untrusted"
452
+ fails "String#sub with pattern and block doesn't raise a RuntimeError if the string is modified while substituting"
453
+ fails "String#sub with pattern and block taints the result if the original string or replacement is tainted"
454
+ fails "String#sub with pattern, replacement raises a TypeError when pattern is a Symbol"
381
455
  fails "String#sub with pattern, replacement supports \\G which matches at the beginning of the string"
382
456
  fails "String#sub with pattern, replacement taints the result if the original string or replacement is tainted"
383
- fails "String#sub! with pattern and block modifies self in place and returns self"
384
- fails "String#sub! with pattern and block raises a RuntimeError if the string is modified while substituting"
385
- fails "String#sub! with pattern and block raises a RuntimeError when self is frozen"
386
- fails "String#sub! with pattern and block returns nil if no modifications were made"
387
- fails "String#sub! with pattern and block sets $~ for access from the block"
388
- fails "String#sub! with pattern and block taints self if block's result is tainted"
389
457
  fails "String#sub! with pattern and Hash coerces the hash values with #to_s"
390
458
  fails "String#sub! with pattern and Hash doesn't interpolate special sequences like \\1 for the block's return value"
391
459
  fails "String#sub! with pattern and Hash ignores non-String keys"
@@ -399,6 +467,12 @@ opal_filter "String" do
399
467
  fails "String#sub! with pattern and Hash uses a key's value only a single time"
400
468
  fails "String#sub! with pattern and Hash uses the hash's default value for missing keys"
401
469
  fails "String#sub! with pattern and Hash uses the hash's value set from default_proc for missing keys"
470
+ fails "String#sub! with pattern and block modifies self in place and returns self"
471
+ fails "String#sub! with pattern and block raises a RuntimeError if the string is modified while substituting"
472
+ fails "String#sub! with pattern and block raises a RuntimeError when self is frozen"
473
+ fails "String#sub! with pattern and block returns nil if no modifications were made"
474
+ fails "String#sub! with pattern and block sets $~ for access from the block"
475
+ fails "String#sub! with pattern and block taints self if block's result is tainted"
402
476
  fails "String#sub! with pattern and without replacement and block raises a ArgumentError"
403
477
  fails "String#sub! with pattern, replacement modifies self in place and returns self"
404
478
  fails "String#sub! with pattern, replacement raises a RuntimeError when self is frozen"
@@ -464,74 +538,9 @@ opal_filter "String" do
464
538
  fails "String#upcase! raises a RuntimeError when self is frozen"
465
539
  fails "String#upcase! returns nil if no modifications were made"
466
540
  fails "String#upto does not work with symbols"
467
- fails "String#[] with index, length always taints resulting strings when self is tainted"
468
- fails "String#[] with Range always taints resulting strings when self is tainted"
469
- fails "String#[] with Regexp, index always taints resulting strings when self or regexp is tainted"
470
- fails "String#[] with String taints resulting strings when other is tainted"
471
- fails "String#[] with Symbol raises TypeError"
472
- fails "String#[]= with a Range index raises a RangeError if negative Range begin is out of range"
473
- fails "String#[]= with a Range index raises a RangeError if positive Range begin is greater than String size"
474
- fails "String#[]= with a Range index replaces a partial string"
475
- fails "String#[]= with a Range index replaces the contents with a longer String"
476
- fails "String#[]= with a Range index replaces the contents with a shorter String"
477
- fails "String#[]= with a Range index treats a negative out-of-range Range end with a negative Range begin as a zero count"
478
- fails "String#[]= with a Range index treats a negative out-of-range Range end with a positive Range begin as a zero count"
479
- fails "String#[]= with a Range index uses the Range end as an index rather than a count"
480
- fails "String#[]= with a Range index with an empty replacement does not replace a character with a zero exclude-end range"
481
- fails "String#[]= with a Range index with an empty replacement does not replace a character with a zero-index, zero exclude-end range"
482
- fails "String#[]= with a Range index with an empty replacement replaces a character with a zero non-exclude-end range"
483
- fails "String#[]= with a Range index with an empty replacement replaces a character with zero-index, zero non-exclude-end range"
484
- fails "String#[]= with a Regexp index calls #to_str to convert the replacement"
485
- fails "String#[]= with a Regexp index checks the match before calling #to_str to convert the replacement"
486
- fails "String#[]= with a Regexp index raises IndexError if the regexp index doesn't match a position in the string"
487
- fails "String#[]= with a Regexp index replaces the matched text with the rhs"
488
- fails "String#[]= with a Regexp index with 3 arguments allows the specified capture to be negative and count from the end"
489
- fails "String#[]= with a Regexp index with 3 arguments calls #to_int to convert the second object"
490
- fails "String#[]= with a Regexp index with 3 arguments checks the match index before calling #to_str to convert the replacement"
491
- fails "String#[]= with a Regexp index with 3 arguments raises a TypeError if #to_int does not return a Fixnum"
492
- fails "String#[]= with a Regexp index with 3 arguments raises IndexError if the specified capture isn't available"
493
- fails "String#[]= with a Regexp index with 3 arguments uses the 2nd of 3 arguments as which capture should be replaced"
494
- fails "String#[]= with a Regexp index with 3 arguments when the optional capture does not match raises an IndexError before setting the replacement"
495
- fails "String#[]= with Fixnum index allows assignment to the zero'th element of an empty String"
496
- fails "String#[]= with Fixnum index calls #to_str to convert other to a String"
497
- fails "String#[]= with Fixnum index calls to_int on index"
498
- fails "String#[]= with Fixnum index raises a RuntimeError when self is frozen"
499
- fails "String#[]= with Fixnum index raises a TypeError if other_str can't be converted to a String"
500
- fails "String#[]= with Fixnum index raises an IndexError without changing self if idx is outside of self"
501
- fails "String#[]= with Fixnum index raises IndexError if the string index doesn't match a position in the string"
502
- fails "String#[]= with Fixnum index replaces the char at idx with other_str"
503
- fails "String#[]= with Fixnum index taints self if other_str is tainted"
504
- fails "String#[]= with Fixnum index, count appends other_str to the end of the string if idx == the length of the string"
505
- fails "String#[]= with Fixnum index, count calls #to_int to convert the index and count objects"
506
- fails "String#[]= with Fixnum index, count calls #to_str to convert the replacement object"
507
- fails "String#[]= with Fixnum index, count counts negative idx values from end of the string"
508
- fails "String#[]= with Fixnum index, count deletes characters if other_str is an empty string"
509
- fails "String#[]= with Fixnum index, count deletes characters up to the maximum length of the existing string"
510
- fails "String#[]= with Fixnum index, count overwrites and deletes characters if count is more than the length of other_str"
511
- fails "String#[]= with Fixnum index, count raises a TypeError if #to_int for count does not return an Integer"
512
- fails "String#[]= with Fixnum index, count raises a TypeError if #to_int for index does not return an Integer"
513
- fails "String#[]= with Fixnum index, count raises a TypeError if other_str is a type other than String"
514
- fails "String#[]= with Fixnum index, count raises a TypeError of #to_str does not return a String"
515
- fails "String#[]= with Fixnum index, count raises an IndexError if count < 0"
516
- fails "String#[]= with Fixnum index, count raises an IndexError if |idx| is greater than the length of the string"
517
- fails "String#[]= with Fixnum index, count starts at idx and overwrites count characters before inserting the rest of other_str"
518
- fails "String#[]= with Fixnum index, count taints self if other_str is tainted"
519
- fails "String#[]= with String index raises an IndexError if the search String is not found"
520
- fails "String#[]= with String index replaces characters with no characters"
521
- fails "String#[]= with String index replaces fewer characters with more characters"
522
- fails "String#[]= with String index replaces more characters with fewer characters"
523
541
  fails "String.allocate returns a binary String"
524
542
  fails "String.allocate returns a fully-formed String"
525
543
  fails "String.new returns a binary String"
526
544
  fails "String.new returns a fully-formed String"
527
545
  fails "String.new returns a new string given a string argument"
528
- fails "Ruby character strings taints the result of interpolation when an interpolated value is tainted"
529
- fails "Ruby character strings untrusts the result of interpolation when an interpolated value is untrusted"
530
- fails "Ruby character strings backslashes follow the same rules as interpolation"
531
- fails "Ruby character strings are produced from control character shortcuts"
532
- fails "Ruby character strings Unicode escaping can be done with \\u{} and one to six hex digits"
533
- fails "Ruby character strings Unicode escaping with US-ASCII source encoding produces an ASCII string when escaping ASCII characters via \\u"
534
- fails "Ruby character strings Unicode escaping with US-ASCII source encoding produces an ASCII string when escaping ASCII characters via \\u{}"
535
- fails "Ruby character strings Unicode escaping with US-ASCII source encoding produces a UTF-8-encoded string when escaping non-ASCII characters via \\u"
536
- fails "Ruby character strings Unicode escaping with US-ASCII source encoding produces a UTF-8-encoded string when escaping non-ASCII characters via \\u{}"
537
546
  end