opal 1.6.1 → 1.7.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (212) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +17 -0
  3. data/Gemfile +1 -0
  4. data/HACKING.md +47 -26
  5. data/UNRELEASED.md +28 -0
  6. data/benchmark/benchmarks +415 -103
  7. data/benchmark/bm_call_overhead.yml +28 -0
  8. data/benchmark/run.rb +61 -40
  9. data/docs/cdp_common.json +3364 -0
  10. data/docs/cdp_common.md +18 -0
  11. data/docs/{headless_chrome.md → headless_browsers.md} +31 -12
  12. data/lib/opal/ast/builder.rb +1 -1
  13. data/lib/opal/builder.rb +6 -1
  14. data/lib/opal/builder_processors.rb +5 -3
  15. data/lib/opal/cache.rb +1 -7
  16. data/lib/opal/cli_options.rb +72 -58
  17. data/lib/opal/cli_runners/chrome.rb +47 -9
  18. data/lib/opal/cli_runners/chrome_cdp_interface.rb +238 -112
  19. data/lib/opal/cli_runners/compiler.rb +146 -13
  20. data/lib/opal/cli_runners/deno.rb +32 -0
  21. data/lib/opal/cli_runners/firefox.rb +350 -0
  22. data/lib/opal/cli_runners/firefox_cdp_interface.rb +212 -0
  23. data/lib/opal/cli_runners/node_modules/.bin/chrome-remote-interface.cmd +17 -0
  24. data/lib/opal/cli_runners/node_modules/.bin/chrome-remote-interface.ps1 +28 -0
  25. data/lib/opal/cli_runners/node_modules/.package-lock.json +41 -0
  26. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/LICENSE +1 -1
  27. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/README.md +322 -182
  28. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/bin/client.js +99 -114
  29. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/chrome-remote-interface.js +1 -11
  30. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/index.js +16 -11
  31. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/api.js +41 -33
  32. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/chrome.js +224 -214
  33. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/devtools.js +71 -191
  34. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/external-request.js +26 -6
  35. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/protocol.json +20788 -9049
  36. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/websocket-wrapper.js +10 -3
  37. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/package.json +59 -123
  38. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/webpack.config.js +25 -32
  39. data/lib/opal/cli_runners/node_modules/commander/History.md +298 -0
  40. data/lib/opal/cli_runners/node_modules/commander/LICENSE +22 -0
  41. data/lib/opal/cli_runners/node_modules/commander/Readme.md +217 -61
  42. data/lib/opal/cli_runners/node_modules/commander/index.js +431 -145
  43. data/lib/opal/cli_runners/node_modules/commander/package.json +16 -79
  44. data/lib/opal/cli_runners/node_modules/ws/README.md +334 -98
  45. data/lib/opal/cli_runners/node_modules/ws/browser.js +8 -0
  46. data/lib/opal/cli_runners/node_modules/ws/index.js +5 -10
  47. data/lib/opal/cli_runners/node_modules/ws/lib/buffer-util.js +129 -0
  48. data/lib/opal/cli_runners/node_modules/ws/lib/constants.js +10 -0
  49. data/lib/opal/cli_runners/node_modules/ws/lib/event-target.js +184 -0
  50. data/lib/opal/cli_runners/node_modules/ws/lib/extension.js +223 -0
  51. data/lib/opal/cli_runners/node_modules/ws/lib/limiter.js +55 -0
  52. data/lib/opal/cli_runners/node_modules/ws/lib/permessage-deflate.js +518 -0
  53. data/lib/opal/cli_runners/node_modules/ws/lib/receiver.js +607 -0
  54. data/lib/opal/cli_runners/node_modules/ws/lib/sender.js +409 -0
  55. data/lib/opal/cli_runners/node_modules/ws/lib/stream.js +180 -0
  56. data/lib/opal/cli_runners/node_modules/ws/lib/validation.js +104 -0
  57. data/lib/opal/cli_runners/node_modules/ws/lib/websocket-server.js +447 -0
  58. data/lib/opal/cli_runners/node_modules/ws/lib/websocket.js +1195 -0
  59. data/lib/opal/cli_runners/node_modules/ws/package.json +40 -106
  60. data/lib/opal/cli_runners/package-lock.json +62 -0
  61. data/lib/opal/cli_runners/package.json +1 -1
  62. data/lib/opal/cli_runners.rb +26 -4
  63. data/lib/opal/nodes/args/prepare_post_args.rb +2 -2
  64. data/lib/opal/nodes/def.rb +8 -8
  65. data/lib/opal/nodes/iter.rb +12 -12
  66. data/lib/opal/nodes/logic.rb +1 -1
  67. data/lib/opal/nodes/masgn.rb +2 -2
  68. data/lib/opal/parser/with_ruby_lexer.rb +1 -1
  69. data/lib/opal/paths.rb +14 -0
  70. data/lib/opal/rewriter.rb +2 -0
  71. data/lib/opal/rewriters/forward_args.rb +52 -4
  72. data/lib/opal/rewriters/targeted_patches.rb +94 -0
  73. data/lib/opal/version.rb +1 -1
  74. data/opal/corelib/basic_object.rb +1 -1
  75. data/opal/corelib/boolean.rb +2 -2
  76. data/opal/corelib/class.rb +11 -0
  77. data/opal/corelib/constants.rb +3 -3
  78. data/opal/corelib/enumerable.rb +4 -0
  79. data/opal/corelib/enumerator.rb +1 -1
  80. data/opal/corelib/hash.rb +2 -2
  81. data/opal/corelib/helpers.rb +1 -1
  82. data/opal/corelib/kernel.rb +3 -3
  83. data/opal/corelib/method.rb +1 -1
  84. data/opal/corelib/module.rb +29 -8
  85. data/opal/corelib/proc.rb +7 -5
  86. data/opal/corelib/runtime.js +141 -78
  87. data/opal/corelib/set.rb +252 -0
  88. data/opal/corelib/string.rb +2 -1
  89. data/opal/corelib/time.rb +2 -2
  90. data/opal/opal.rb +1 -0
  91. data/opal.gemspec +1 -0
  92. data/spec/filters/bugs/array.rb +22 -13
  93. data/spec/filters/bugs/base64.rb +5 -5
  94. data/spec/filters/bugs/basicobject.rb +16 -8
  95. data/spec/filters/bugs/bigdecimal.rb +161 -160
  96. data/spec/filters/bugs/binding.rb +10 -10
  97. data/spec/filters/bugs/class.rb +8 -8
  98. data/spec/filters/bugs/complex.rb +2 -1
  99. data/spec/filters/bugs/date.rb +79 -81
  100. data/spec/filters/bugs/datetime.rb +29 -29
  101. data/spec/filters/bugs/delegate.rb +1 -3
  102. data/spec/filters/bugs/encoding.rb +69 -69
  103. data/spec/filters/bugs/enumerable.rb +22 -20
  104. data/spec/filters/bugs/enumerator.rb +88 -85
  105. data/spec/filters/bugs/exception.rb +46 -40
  106. data/spec/filters/bugs/file.rb +32 -32
  107. data/spec/filters/bugs/float.rb +26 -21
  108. data/spec/filters/bugs/freeze.rb +88 -0
  109. data/spec/filters/bugs/hash.rb +39 -38
  110. data/spec/filters/bugs/integer.rb +57 -44
  111. data/spec/filters/bugs/io.rb +1 -1
  112. data/spec/filters/bugs/kernel.rb +349 -269
  113. data/spec/filters/bugs/language.rb +220 -188
  114. data/spec/filters/bugs/main.rb +5 -3
  115. data/spec/filters/bugs/marshal.rb +38 -38
  116. data/spec/filters/bugs/math.rb +2 -1
  117. data/spec/filters/bugs/method.rb +73 -62
  118. data/spec/filters/bugs/module.rb +163 -143
  119. data/spec/filters/bugs/numeric.rb +6 -6
  120. data/spec/filters/bugs/objectspace.rb +16 -16
  121. data/spec/filters/bugs/openstruct.rb +1 -1
  122. data/spec/filters/bugs/pack_unpack.rb +51 -51
  123. data/spec/filters/bugs/pathname.rb +7 -7
  124. data/spec/filters/bugs/proc.rb +63 -63
  125. data/spec/filters/bugs/random.rb +7 -6
  126. data/spec/filters/bugs/range.rb +12 -9
  127. data/spec/filters/bugs/rational.rb +8 -7
  128. data/spec/filters/bugs/regexp.rb +49 -48
  129. data/spec/filters/bugs/ruby-32.rb +56 -0
  130. data/spec/filters/bugs/set.rb +30 -30
  131. data/spec/filters/bugs/singleton.rb +4 -4
  132. data/spec/filters/bugs/string.rb +187 -99
  133. data/spec/filters/bugs/stringio.rb +7 -0
  134. data/spec/filters/bugs/stringscanner.rb +68 -68
  135. data/spec/filters/bugs/struct.rb +11 -9
  136. data/spec/filters/bugs/symbol.rb +1 -1
  137. data/spec/filters/bugs/time.rb +78 -63
  138. data/spec/filters/bugs/trace_point.rb +4 -4
  139. data/spec/filters/bugs/unboundmethod.rb +32 -17
  140. data/spec/filters/bugs/warnings.rb +8 -12
  141. data/spec/filters/unsupported/array.rb +24 -107
  142. data/spec/filters/unsupported/basicobject.rb +12 -12
  143. data/spec/filters/unsupported/bignum.rb +27 -52
  144. data/spec/filters/unsupported/class.rb +1 -2
  145. data/spec/filters/unsupported/delegator.rb +3 -3
  146. data/spec/filters/unsupported/enumerable.rb +2 -9
  147. data/spec/filters/unsupported/enumerator.rb +2 -11
  148. data/spec/filters/unsupported/file.rb +1 -1
  149. data/spec/filters/unsupported/float.rb +28 -47
  150. data/spec/filters/unsupported/hash.rb +8 -14
  151. data/spec/filters/unsupported/integer.rb +75 -91
  152. data/spec/filters/unsupported/kernel.rb +17 -35
  153. data/spec/filters/unsupported/language.rb +11 -19
  154. data/spec/filters/unsupported/marshal.rb +22 -41
  155. data/spec/filters/unsupported/matchdata.rb +28 -52
  156. data/spec/filters/unsupported/math.rb +1 -1
  157. data/spec/filters/unsupported/privacy.rb +229 -285
  158. data/spec/filters/unsupported/range.rb +1 -5
  159. data/spec/filters/unsupported/regexp.rb +40 -66
  160. data/spec/filters/unsupported/set.rb +2 -2
  161. data/spec/filters/unsupported/singleton.rb +4 -4
  162. data/spec/filters/unsupported/string.rb +305 -508
  163. data/spec/filters/unsupported/struct.rb +3 -4
  164. data/spec/filters/unsupported/symbol.rb +15 -18
  165. data/spec/filters/unsupported/thread.rb +1 -7
  166. data/spec/filters/unsupported/time.rb +159 -202
  167. data/spec/filters/unsupported/usage_of_files.rb +170 -259
  168. data/spec/lib/builder_spec.rb +4 -4
  169. data/spec/lib/rewriters/forward_args_spec.rb +32 -12
  170. data/spec/mspec-opal/runner.rb +2 -0
  171. data/spec/ruby_specs +4 -0
  172. data/stdlib/deno/base.rb +28 -0
  173. data/stdlib/deno/file.rb +340 -0
  174. data/stdlib/{headless_chrome.rb → headless_browser/base.rb} +1 -1
  175. data/stdlib/headless_browser/file.rb +15 -0
  176. data/stdlib/headless_browser.rb +4 -0
  177. data/stdlib/native.rb +1 -1
  178. data/stdlib/nodejs/file.rb +5 -0
  179. data/stdlib/opal/platform.rb +8 -6
  180. data/stdlib/opal-platform.rb +14 -8
  181. data/stdlib/set.rb +1 -258
  182. data/tasks/benchmarking.rake +62 -19
  183. data/tasks/performance.rake +1 -1
  184. data/tasks/testing.rake +5 -3
  185. data/test/nodejs/test_file.rb +29 -10
  186. data/test/opal/http_server.rb +28 -11
  187. data/test/opal/unsupported_and_bugs.rb +2 -1
  188. metadata +91 -52
  189. data/lib/opal/cli_runners/node_modules/ultron/LICENSE +0 -22
  190. data/lib/opal/cli_runners/node_modules/ultron/index.js +0 -138
  191. data/lib/opal/cli_runners/node_modules/ultron/package.json +0 -112
  192. data/lib/opal/cli_runners/node_modules/ws/SECURITY.md +0 -33
  193. data/lib/opal/cli_runners/node_modules/ws/lib/BufferUtil.fallback.js +0 -56
  194. data/lib/opal/cli_runners/node_modules/ws/lib/BufferUtil.js +0 -15
  195. data/lib/opal/cli_runners/node_modules/ws/lib/ErrorCodes.js +0 -28
  196. data/lib/opal/cli_runners/node_modules/ws/lib/EventTarget.js +0 -158
  197. data/lib/opal/cli_runners/node_modules/ws/lib/Extensions.js +0 -69
  198. data/lib/opal/cli_runners/node_modules/ws/lib/PerMessageDeflate.js +0 -339
  199. data/lib/opal/cli_runners/node_modules/ws/lib/Receiver.js +0 -520
  200. data/lib/opal/cli_runners/node_modules/ws/lib/Sender.js +0 -438
  201. data/lib/opal/cli_runners/node_modules/ws/lib/Validation.fallback.js +0 -9
  202. data/lib/opal/cli_runners/node_modules/ws/lib/Validation.js +0 -17
  203. data/lib/opal/cli_runners/node_modules/ws/lib/WebSocket.js +0 -705
  204. data/lib/opal/cli_runners/node_modules/ws/lib/WebSocketServer.js +0 -336
  205. data/spec/filters/bugs/boolean.rb +0 -3
  206. data/spec/filters/bugs/matrix.rb +0 -3
  207. data/spec/filters/unsupported/fixnum.rb +0 -15
  208. data/spec/filters/unsupported/freeze.rb +0 -102
  209. data/spec/filters/unsupported/pathname.rb +0 -4
  210. data/spec/filters/unsupported/proc.rb +0 -4
  211. data/spec/filters/unsupported/random.rb +0 -5
  212. data/spec/filters/unsupported/taint.rb +0 -162
@@ -1,73 +1,31 @@
1
1
  # NOTE: run bin/format-filters after changing this file
2
2
  opal_unsupported_filter "String" do
3
- fails "BasicObject#__id__ returns a different value for two String literals"
4
- fails "Module#const_defined? returns true when passed a constant name with EUC-JP characters"
5
- fails "Ruby character strings taints the result of interpolation when an interpolated value is tainted"
6
- fails "Ruby character strings untrusts the result of interpolation when an interpolated value is untrusted"
7
- fails "String#% always taints the result when the format string is tainted"
8
- fails "String#% supports negative bignums with %u or %d"
9
- fails "String#% taints result for %p when argument.inspect is tainted"
10
- fails "String#% taints result for %s when argument is tainted"
11
- fails "String#* always taints the result when self is tainted"
12
- fails "String#+ taints the result when self or other is tainted"
13
- fails "String#-@ deduplicates frozen strings" # May fail randomly outside of "use strict"
14
- fails "String#-@ returns a frozen copy if the String is not frozen" # May fail randomly outside of "use strict"
15
- fails "String#<< concatenates the given argument to self and returns self"
16
- fails "String#<< converts the given argument to a String using to_str"
17
- fails "String#<< raises a RuntimeError when self is frozen"
18
- fails "String#<< raises a TypeError if the given argument can't be converted to a String"
19
- fails "String#<< returns a String when given a subclass instance"
20
- fails "String#<< returns an instance of same class when called on a subclass"
21
- fails "String#<< taints self if other is tainted"
22
- fails "String#<< untrusts self if other is untrusted"
23
- fails "String#<< when self and the argument are in different ASCII-compatible encodings raises Encoding::CompatibilityError if neither are ASCII-only"
24
- fails "String#<< when self and the argument are in different ASCII-compatible encodings uses self's encoding if both are ASCII-only"
25
- fails "String#<< when self and the argument are in different ASCII-compatible encodings uses self's encoding if the argument is ASCII-only"
26
- fails "String#<< when self and the argument are in different ASCII-compatible encodings uses the argument's encoding if self is ASCII-only"
27
- fails "String#<< when self is ASCII-8BIT and argument is US-ASCII uses ASCII-8BIT encoding"
28
- fails "String#<< when self is in an ASCII-incompatible encoding incompatible with the argument's encoding raises Encoding::CompatibilityError if neither are empty"
29
- fails "String#<< when self is in an ASCII-incompatible encoding incompatible with the argument's encoding uses self's encoding if both are empty"
30
- fails "String#<< when self is in an ASCII-incompatible encoding incompatible with the argument's encoding uses self's encoding if the argument is empty"
31
- fails "String#<< when self is in an ASCII-incompatible encoding incompatible with the argument's encoding uses the argument's encoding if self is empty"
32
- fails "String#<< when the argument is in an ASCII-incompatible encoding incompatible with self's encoding raises Encoding::CompatibilityError if neither are empty"
33
- fails "String#<< when the argument is in an ASCII-incompatible encoding incompatible with self's encoding uses self's encoding if both are empty"
34
- fails "String#<< when the argument is in an ASCII-incompatible encoding incompatible with self's encoding uses self's encoding if the argument is empty"
35
- 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"
3
+ fails "BasicObject#__id__ returns a different value for two String literals" # Expected "hello" == "hello" to be falsy but was true
4
+ fails "Module#const_defined? returns true when passed a constant name with EUC-JP characters" # ArgumentError: unknown encoding name - euc-jp
5
+ fails "String#% supports negative bignums with %u or %d" # Expected "-18446744073709552000" == "-18446744073709551621" to be truthy but was false
6
+ fails "String#<< concatenates the given argument to self and returns self" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
7
+ fails "String#<< converts the given argument to a String using to_str" # Mock 'world!' expected to receive to_str("any_args") exactly 1 times but received it 0 times
8
+ fails "String#<< raises a TypeError if the given argument can't be converted to a String" # Expected TypeError but got: NotImplementedError (String#<< not supported. Mutable String methods are not supported in Opal.)
9
+ fails "String#<< raises an ArgumentError when given the incorrect number of arguments" # Expected ArgumentError but got: NotImplementedError (String#<< not supported. Mutable String methods are not supported in Opal.)
10
+ fails "String#<< returns a String when given a subclass instance" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
11
+ fails "String#<< returns an instance of same class when called on a subclass" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
12
+ fails "String#<< when self and the argument are in different ASCII-compatible encodings raises Encoding::CompatibilityError if neither are ASCII-only" # Expected CompatibilityError but got: NotImplementedError (String#<< not supported. Mutable String methods are not supported in Opal.)
13
+ fails "String#<< when self and the argument are in different ASCII-compatible encodings uses self's encoding if both are ASCII-only" # ArgumentError: unknown encoding name - SHIFT_JIS
14
+ fails "String#<< when self and the argument are in different ASCII-compatible encodings uses self's encoding if the argument is ASCII-only" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
15
+ fails "String#<< when self and the argument are in different ASCII-compatible encodings uses the argument's encoding if self is ASCII-only" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
16
+ fails "String#<< when self is in an ASCII-incompatible encoding incompatible with the argument's encoding raises Encoding::CompatibilityError if neither are empty" # Expected CompatibilityError but got: NotImplementedError (String#<< not supported. Mutable String methods are not supported in Opal.)
17
+ fails "String#<< when self is in an ASCII-incompatible encoding incompatible with the argument's encoding uses self's encoding if both are empty" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
18
+ fails "String#<< when self is in an ASCII-incompatible encoding incompatible with the argument's encoding uses self's encoding if the argument is empty" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
19
+ fails "String#<< when self is in an ASCII-incompatible encoding incompatible with the argument's encoding uses the argument's encoding if self is empty" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
20
+ fails "String#<< when the argument is in an ASCII-incompatible encoding incompatible with self's encoding raises Encoding::CompatibilityError if neither are empty" # Expected CompatibilityError but got: NotImplementedError (String#<< not supported. Mutable String methods are not supported in Opal.)
21
+ fails "String#<< when the argument is in an ASCII-incompatible encoding incompatible with self's encoding uses self's encoding if both are empty" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
22
+ fails "String#<< when the argument is in an ASCII-incompatible encoding incompatible with self's encoding uses self's encoding if the argument is empty" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
23
+ 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" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
36
24
  fails "String#<< with Integer concatenates the argument interpreted as a codepoint" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
37
- fails "String#<< with Integer doesn't call to_int on its argument"
38
- fails "String#<< with Integer raises RangeError if the argument is an invalid codepoint for self's encoding"
39
- fails "String#<< with Integer raises RangeError if the argument is negative"
40
- fails "String#<< with Integer raises a RuntimeError when self is frozen"
41
- fails "String#<< with Integer returns a ASCII-8BIT string if self is US-ASCII and the argument is between 128-255 (inclusive)"
42
- fails "String#[] with Range always taints resulting strings when self is tainted"
43
- fails "String#[] with Regexp, index always taints resulting strings when self or regexp is tainted"
44
- fails "String#[] with String taints resulting strings when other is tainted"
45
- fails "String#[] with Symbol raises TypeError"
46
- fails "String#[] with index, length always taints resulting strings when self is tainted"
47
- fails "String#[]= with Fixnum index allows assignment to the zero'th element of an empty String"
48
- fails "String#[]= with Fixnum index calls #to_str to convert other to a String"
49
- fails "String#[]= with Fixnum index calls to_int on index"
50
- fails "String#[]= with Fixnum index raises IndexError if the string index doesn't match a position in the string"
51
- fails "String#[]= with Fixnum index raises a RuntimeError when self is frozen"
52
- fails "String#[]= with Fixnum index raises a TypeError if other_str can't be converted to a String"
53
- fails "String#[]= with Fixnum index raises an IndexError without changing self if idx is outside of self"
54
- fails "String#[]= with Fixnum index replaces the char at idx with other_str"
55
- fails "String#[]= with Fixnum index taints self if other_str is tainted"
56
- fails "String#[]= with Fixnum index, count appends other_str to the end of the string if idx == the length of the string"
57
- fails "String#[]= with Fixnum index, count calls #to_int to convert the index and count objects"
58
- fails "String#[]= with Fixnum index, count calls #to_str to convert the replacement object"
59
- fails "String#[]= with Fixnum index, count counts negative idx values from end of the string"
60
- fails "String#[]= with Fixnum index, count deletes characters if other_str is an empty string"
61
- fails "String#[]= with Fixnum index, count deletes characters up to the maximum length of the existing string"
62
- fails "String#[]= with Fixnum index, count overwrites and deletes characters if count is more than the length of other_str"
63
- fails "String#[]= with Fixnum index, count raises a TypeError if #to_int for count does not return an Integer"
64
- fails "String#[]= with Fixnum index, count raises a TypeError if #to_int for index does not return an Integer"
65
- fails "String#[]= with Fixnum index, count raises a TypeError if other_str is a type other than String"
66
- fails "String#[]= with Fixnum index, count raises a TypeError of #to_str does not return a String"
67
- fails "String#[]= with Fixnum index, count raises an IndexError if count < 0"
68
- fails "String#[]= with Fixnum index, count raises an IndexError if |idx| is greater than the length of the string"
69
- fails "String#[]= with Fixnum index, count starts at idx and overwrites count characters before inserting the rest of other_str"
70
- fails "String#[]= with Fixnum index, count taints self if other_str is tainted"
25
+ fails "String#<< with Integer doesn't call to_int on its argument" # Expected TypeError but got: NotImplementedError (String#<< not supported. Mutable String methods are not supported in Opal.)
26
+ fails "String#<< with Integer raises RangeError if the argument is an invalid codepoint for self's encoding" # Expected RangeError but got: NotImplementedError (String#<< not supported. Mutable String methods are not supported in Opal.)
27
+ fails "String#<< with Integer raises RangeError if the argument is negative" # Expected RangeError but got: NotImplementedError (String#<< not supported. Mutable String methods are not supported in Opal.)
28
+ fails "String#[] with Symbol raises TypeError" # Expected TypeError but no exception was raised ("hello" was returned)
71
29
  fails "String#[]= with Integer index allows assignment to the zero'th element of an empty String" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
72
30
  fails "String#[]= with Integer index calls #to_int to convert the index" # Mock 'string element set' expected to receive to_int("any_args") exactly 1 times but received it 0 times
73
31
  fails "String#[]= with Integer index calls #to_str to convert other to a String" # Mock '-test-' expected to receive to_str("any_args") exactly 1 times but received it 0 times
@@ -86,7 +44,7 @@ opal_unsupported_filter "String" do
86
44
  fails "String#[]= with Integer index replaces a multibyte character with a character" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
87
45
  fails "String#[]= with Integer index replaces a multibyte character with a multibyte character" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
88
46
  fails "String#[]= with Integer index replaces the char at idx with other_str" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
89
- fails "String#[]= with Integer index taints self if other_str is tainted" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
47
+ fails "String#[]= with Integer index updates the string to a compatible encoding" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
90
48
  fails "String#[]= with Integer index, count appends other_str to the end of the string if idx == the length of the string" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
91
49
  fails "String#[]= with Integer index, count calls #to_int to convert the index and count objects" # Mock 'string element set index' expected to receive to_int("any_args") exactly 1 times but received it 0 times
92
50
  fails "String#[]= with Integer index, count calls #to_str to convert the replacement object" # Mock 'string element set replacement' expected to receive to_str("any_args") exactly 1 times but received it 0 times
@@ -109,40 +67,36 @@ opal_unsupported_filter "String" do
109
67
  fails "String#[]= with Integer index, count replaces multibyte characters with characters" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
110
68
  fails "String#[]= with Integer index, count replaces multibyte characters with multibyte characters" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
111
69
  fails "String#[]= with Integer index, count starts at idx and overwrites count characters before inserting the rest of other_str" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
112
- fails "String#[]= with Integer index, count taints self if other_str is tainted" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
113
- fails "String#[]= with String index raises an IndexError if the search String is not found"
114
- fails "String#[]= with String index replaces characters with no characters"
115
- fails "String#[]= with String index replaces fewer characters with more characters"
116
- fails "String#[]= with String index replaces more characters with fewer characters"
117
- fails "String#[]= with a Range index raises a RangeError if negative Range begin is out of range"
118
- fails "String#[]= with a Range index raises a RangeError if positive Range begin is greater than String size"
119
- fails "String#[]= with a Range index replaces a partial string"
120
- fails "String#[]= with a Range index replaces the contents with a longer String"
121
- fails "String#[]= with a Range index replaces the contents with a shorter String"
122
- fails "String#[]= with a Range index treats a negative out-of-range Range end with a negative Range begin as a zero count"
123
- fails "String#[]= with a Range index treats a negative out-of-range Range end with a positive Range begin as a zero count"
124
- fails "String#[]= with a Range index uses the Range end as an index rather than a count"
125
- fails "String#[]= with a Range index with an empty replacement does not replace a character with a zero exclude-end range"
126
- fails "String#[]= with a Range index with an empty replacement does not replace a character with a zero-index, zero exclude-end range"
127
- fails "String#[]= with a Range index with an empty replacement replaces a character with a zero non-exclude-end range"
128
- fails "String#[]= with a Range index with an empty replacement replaces a character with zero-index, zero non-exclude-end range"
129
- fails "String#[]= with a Regexp index calls #to_str to convert the replacement"
130
- fails "String#[]= with a Regexp index checks the match before calling #to_str to convert the replacement"
131
- fails "String#[]= with a Regexp index raises IndexError if the regexp index doesn't match a position in the string"
132
- fails "String#[]= with a Regexp index replaces the matched text with the rhs"
133
- fails "String#[]= with a Regexp index with 3 arguments allows the specified capture to be negative and count from the end"
134
- fails "String#[]= with a Regexp index with 3 arguments calls #to_int to convert the second object"
135
- fails "String#[]= with a Regexp index with 3 arguments checks the match index before calling #to_str to convert the replacement"
136
- fails "String#[]= with a Regexp index with 3 arguments raises IndexError if the specified capture isn't available"
137
- fails "String#[]= with a Regexp index with 3 arguments raises a TypeError if #to_int does not return a Fixnum"
70
+ fails "String#[]= with String index raises an IndexError if the search String is not found" # Expected IndexError but got: NotImplementedError (String#[]= not supported. Mutable String methods are not supported in Opal.)
71
+ fails "String#[]= with String index replaces characters with no characters" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
72
+ fails "String#[]= with String index replaces fewer characters with more characters" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
73
+ fails "String#[]= with String index replaces more characters with fewer characters" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
74
+ fails "String#[]= with a Range index raises a RangeError if negative Range begin is out of range" # Expected RangeError (-4..-2 out of range) but got: NotImplementedError (String#[]= not supported. Mutable String methods are not supported in Opal.)
75
+ fails "String#[]= with a Range index raises a RangeError if positive Range begin is greater than String size" # Expected RangeError (4..2 out of range) but got: NotImplementedError (String#[]= not supported. Mutable String methods are not supported in Opal.)
76
+ fails "String#[]= with a Range index replaces a partial string" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
77
+ fails "String#[]= with a Range index replaces the contents with a longer String" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
78
+ fails "String#[]= with a Range index replaces the contents with a shorter String" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
79
+ fails "String#[]= with a Range index treats a negative out-of-range Range end with a negative Range begin as a zero count" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
80
+ fails "String#[]= with a Range index treats a negative out-of-range Range end with a positive Range begin as a zero count" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
81
+ fails "String#[]= with a Range index uses the Range end as an index rather than a count" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
82
+ fails "String#[]= with a Range index with an empty replacement does not replace a character with a zero exclude-end range" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
83
+ fails "String#[]= with a Range index with an empty replacement does not replace a character with a zero-index, zero exclude-end range" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
84
+ fails "String#[]= with a Range index with an empty replacement replaces a character with a zero non-exclude-end range" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
85
+ fails "String#[]= with a Range index with an empty replacement replaces a character with zero-index, zero non-exclude-end range" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
86
+ fails "String#[]= with a Regexp index calls #to_str to convert the replacement" # Mock 'string element set regexp' expected to receive to_str("any_args") exactly 1 times but received it 0 times
87
+ fails "String#[]= with a Regexp index checks the match before calling #to_str to convert the replacement" # Expected IndexError but got: NotImplementedError (String#[]= not supported. Mutable String methods are not supported in Opal.)
88
+ fails "String#[]= with a Regexp index raises IndexError if the regexp index doesn't match a position in the string" # Expected IndexError but got: NotImplementedError (String#[]= not supported. Mutable String methods are not supported in Opal.)
89
+ fails "String#[]= with a Regexp index replaces the matched text with the rhs" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
90
+ fails "String#[]= with a Regexp index with 3 arguments allows the specified capture to be negative and count from the end" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
91
+ fails "String#[]= with a Regexp index with 3 arguments calls #to_int to convert the second object" # Mock 'string element set regexp ref' expected to receive to_int("any_args") exactly 1 times but received it 0 times
92
+ fails "String#[]= with a Regexp index with 3 arguments checks the match index before calling #to_str to convert the replacement" # Expected IndexError but got: NotImplementedError (String#[]= not supported. Mutable String methods are not supported in Opal.)
93
+ fails "String#[]= with a Regexp index with 3 arguments raises IndexError if the specified capture isn't available" # Expected IndexError but got: NotImplementedError (String#[]= not supported. Mutable String methods are not supported in Opal.)
138
94
  fails "String#[]= with a Regexp index with 3 arguments raises a TypeError if #to_int does not return an Integer" # Expected TypeError but got: NotImplementedError (String#[]= not supported. Mutable String methods are not supported in Opal.)
139
- fails "String#[]= with a Regexp index with 3 arguments uses the 2nd of 3 arguments as which capture should be replaced"
140
- fails "String#[]= with a Regexp index with 3 arguments when the optional capture does not match raises an IndexError before setting the replacement"
141
- fails "String#capitalize taints resulting string when self is tainted"
142
- fails "String#capitalize! capitalizes self in place for all of Unicode" # NotImplementedError: String#capitalize! not supported. Mutable String methods are not supported in Opal.
143
- fails "String#capitalize! capitalizes self in place"
144
- fails "String#capitalize! does not allow invalid options" # NotImplementedError: String#capitalize! not supported. Mutable String methods are not supported in Opal.
145
- fails "String#capitalize! does not allow the :fold option for upcasing" # NotImplementedError: String#capitalize! not supported. Mutable String methods are not supported in Opal.
95
+ fails "String#[]= with a Regexp index with 3 arguments uses the 2nd of 3 arguments as which capture should be replaced" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
96
+ fails "String#[]= with a Regexp index with 3 arguments when the optional capture does not match raises an IndexError before setting the replacement" # Expected IndexError but got: NotImplementedError (String#[]= not supported. Mutable String methods are not supported in Opal.)
97
+ fails "String#capitalize! capitalizes self in place" # NotImplementedError: String#capitalize! not supported. Mutable String methods are not supported in Opal.
98
+ fails "String#capitalize! does not allow invalid options" # Expected ArgumentError but got: NotImplementedError (String#capitalize! not supported. Mutable String methods are not supported in Opal.)
99
+ fails "String#capitalize! does not allow the :fold option for upcasing" # Expected ArgumentError but got: NotImplementedError (String#capitalize! not supported. Mutable String methods are not supported in Opal.)
146
100
  fails "String#capitalize! full Unicode case mapping modifies self in place for all of Unicode with no option" # NotImplementedError: String#capitalize! not supported. Mutable String methods are not supported in Opal.
147
101
  fails "String#capitalize! full Unicode case mapping only capitalizes the first resulting character when upcasing a character produces a multi-character sequence" # NotImplementedError: String#capitalize! not supported. Mutable String methods are not supported in Opal.
148
102
  fails "String#capitalize! full Unicode case mapping updates string metadata" # NotImplementedError: String#capitalize! not supported. Mutable String methods are not supported in Opal.
@@ -151,155 +105,116 @@ opal_unsupported_filter "String" do
151
105
  fails "String#capitalize! modifies self in place for ASCII-only case mapping works for non-ascii-compatible encodings" # NotImplementedError: String#capitalize! not supported. Mutable String methods are not supported in Opal.
152
106
  fails "String#capitalize! modifies self in place for full Unicode case mapping adapted for Lithuanian allows Turkic as an extra option (and applies Turkic semantics)" # NotImplementedError: String#capitalize! not supported. Mutable String methods are not supported in Opal.
153
107
  fails "String#capitalize! modifies self in place for full Unicode case mapping adapted for Lithuanian currently works the same as full Unicode case mapping" # NotImplementedError: String#capitalize! not supported. Mutable String methods are not supported in Opal.
154
- fails "String#capitalize! modifies self in place for full Unicode case mapping adapted for Lithuanian does not allow any other additional option" # NotImplementedError: String#capitalize! not supported. Mutable String methods are not supported in Opal.
108
+ fails "String#capitalize! modifies self in place for full Unicode case mapping adapted for Lithuanian does not allow any other additional option" # Expected ArgumentError but got: NotImplementedError (String#capitalize! not supported. Mutable String methods are not supported in Opal.)
155
109
  fails "String#capitalize! modifies self in place for full Unicode case mapping adapted for Turkic languages allows Lithuanian as an extra option" # NotImplementedError: String#capitalize! not supported. Mutable String methods are not supported in Opal.
156
110
  fails "String#capitalize! modifies self in place for full Unicode case mapping adapted for Turkic languages capitalizes ASCII characters according to Turkic semantics" # NotImplementedError: String#capitalize! not supported. Mutable String methods are not supported in Opal.
157
- fails "String#capitalize! modifies self in place for full Unicode case mapping adapted for Turkic languages does not allow any other additional option" # NotImplementedError: String#capitalize! not supported. Mutable String methods are not supported in Opal.
111
+ fails "String#capitalize! modifies self in place for full Unicode case mapping adapted for Turkic languages does not allow any other additional option" # Expected ArgumentError but got: NotImplementedError (String#capitalize! not supported. Mutable String methods are not supported in Opal.)
158
112
  fails "String#capitalize! modifies self in place for non-ascii-compatible encodings" # NotImplementedError: String#capitalize! not supported. Mutable String methods are not supported in Opal.
159
- fails "String#capitalize! raises a RuntimeError when self is frozen"
160
- fails "String#capitalize! returns nil when no changes are made"
161
- fails "String#center with length, padding taints result when self or padstr is tainted"
162
- fails "String#center with length, padding when padding is tainted and self is untainted returns a tainted string if and only if length is longer than self"
163
- fails "String#chomp when passed '' taints the result if self is tainted"
164
- fails "String#chomp when passed '\\n' taints the result if self is tainted"
165
- fails "String#chomp when passed a String does not taint the result when the argument is tainted"
166
- fails "String#chomp when passed a String taints the result if self is tainted"
167
- fails "String#chomp when passed nil returns a copy of the String"
168
- fails "String#chomp when passed nil taints the result if self is tainted"
169
- fails "String#chomp when passed no argument taints the result if self is tainted"
170
- fails "String#chomp! raises a RuntimeError on a frozen instance when it is modified"
171
- fails "String#chomp! raises a RuntimeError on a frozen instance when it would not be modified"
113
+ fails "String#capitalize! returns nil when no changes are made" # NotImplementedError: String#capitalize! not supported. Mutable String methods are not supported in Opal.
114
+ fails "String#chomp when passed nil returns a copy of the String" # Expected "abc" not to be identical to "abc"
172
115
  fails "String#chomp! removes the final carriage return, newline from a multibyte String" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
173
- fails "String#chomp! removes the final carriage return, newline from a non-ASCII String when the record separator is changed" # ArgumentError: unknown encoding name - utf-32be
174
- fails "String#chomp! removes the final carriage return, newline from a non-ASCII String" # ArgumentError: unknown encoding name - utf-32be
116
+ fails "String#chomp! removes the final carriage return, newline from a non-ASCII String when the record separator is changed" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
117
+ fails "String#chomp! removes the final carriage return, newline from a non-ASCII String" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
175
118
  fails "String#chomp! returns nil when the String is not modified" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
176
- fails "String#chomp! when passed '' does not remove a final carriage return"
177
- fails "String#chomp! when passed '' removes a final carriage return, newline"
178
- fails "String#chomp! when passed '' removes a final newline"
179
- fails "String#chomp! when passed '' removes more than one trailing carriage return, newline pairs"
180
- fails "String#chomp! when passed '' removes more than one trailing newlines"
181
- fails "String#chomp! when passed '' returns nil when self is empty"
182
- fails "String#chomp! when passed '' taints the result if self is tainted"
183
- fails "String#chomp! when passed '\\n' removes one trailing carriage return"
119
+ fails "String#chomp! when passed '' does not remove a final carriage return" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
120
+ fails "String#chomp! when passed '' removes a final carriage return, newline" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
121
+ fails "String#chomp! when passed '' removes a final newline" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
122
+ fails "String#chomp! when passed '' removes more than one trailing carriage return, newline pairs" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
123
+ fails "String#chomp! when passed '' removes more than one trailing newlines" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
124
+ fails "String#chomp! when passed '' returns nil when self is empty" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
125
+ fails "String#chomp! when passed '\\n' removes one trailing carriage return" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
184
126
  fails "String#chomp! when passed '\\n' removes one trailing carriage return, newline pair" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
185
- fails "String#chomp! when passed '\\n' removes one trailing newline"
186
- fails "String#chomp! when passed '\\n' returns nil when self is empty"
187
- fails "String#chomp! when passed '\\n' taints the result if self is tainted"
188
- fails "String#chomp! when passed a String does not taint the result when the argument is tainted"
189
- fails "String#chomp! when passed a String removes the trailing characters if they match the argument"
190
- fails "String#chomp! when passed a String returns nil if the argument does not match the trailing characters"
191
- fails "String#chomp! when passed a String returns nil when self is empty"
192
- fails "String#chomp! when passed a String taints the result if self is tainted"
193
- fails "String#chomp! when passed an Object calls #to_str to convert to a String"
194
- fails "String#chomp! when passed an Object raises a TypeError if #to_str does not return a String"
195
- fails "String#chomp! when passed nil returns nil when self is empty"
196
- fails "String#chomp! when passed nil returns nil"
197
- fails "String#chomp! when passed no argument modifies self"
198
- fails "String#chomp! when passed no argument removes one trailing carriage return"
127
+ fails "String#chomp! when passed '\\n' removes one trailing newline" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
128
+ fails "String#chomp! when passed '\\n' returns nil when self is empty" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
129
+ fails "String#chomp! when passed a String removes the trailing characters if they match the argument" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
130
+ fails "String#chomp! when passed a String returns nil if the argument does not match the trailing characters" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
131
+ fails "String#chomp! when passed a String returns nil when self is empty" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
132
+ fails "String#chomp! when passed an Object calls #to_str to convert to a String" # Mock 'string chomp' expected to receive to_str("any_args") exactly 1 times but received it 0 times
133
+ fails "String#chomp! when passed an Object raises a TypeError if #to_str does not return a String" # Expected TypeError but got: NotImplementedError (String#chomp! not supported. Mutable String methods are not supported in Opal.)
134
+ fails "String#chomp! when passed nil returns nil when self is empty" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
135
+ fails "String#chomp! when passed nil returns nil" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
136
+ fails "String#chomp! when passed no argument modifies self" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
137
+ fails "String#chomp! when passed no argument removes one trailing carriage return" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
199
138
  fails "String#chomp! when passed no argument removes one trailing carriage return, newline pair" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
200
- fails "String#chomp! when passed no argument removes one trailing newline"
201
- fails "String#chomp! when passed no argument removes trailing characters that match $/ when it has been assigned a value"
202
- fails "String#chomp! when passed no argument returns nil if self is not modified"
203
- fails "String#chomp! when passed no argument returns nil when self is empty"
204
- fails "String#chomp! when passed no argument returns subclass instances when called on a subclass"
205
- fails "String#chomp! when passed no argument taints the result if self is tainted"
206
- fails "String#chop removes the final carriage return, newline from a non-ASCII String"
207
- fails "String#chop returns a new string when applied to an empty string"
208
- fails "String#chop taints result when self is tainted"
209
- fails "String#chop untrusts result when self is untrusted"
210
- fails "String#chop! does not remove more than the final carriage return, newline"
211
- fails "String#chop! raises a RuntimeError on a frozen instance that is modified"
212
- fails "String#chop! raises a RuntimeError on a frozen instance that would not be modified"
139
+ fails "String#chomp! when passed no argument removes one trailing newline" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
140
+ fails "String#chomp! when passed no argument removes trailing characters that match $/ when it has been assigned a value" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
141
+ fails "String#chomp! when passed no argument returns nil if self is not modified" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
142
+ fails "String#chomp! when passed no argument returns nil when self is empty" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
143
+ fails "String#chomp! when passed no argument returns subclass instances when called on a subclass" # NotImplementedError: String#chomp! not supported. Mutable String methods are not supported in Opal.
144
+ fails "String#chop returns a new string when applied to an empty string" # Expected "" not to be identical to ""
145
+ fails "String#chop! does not remove more than the final carriage return, newline" # NotImplementedError: String#chop! not supported. Mutable String methods are not supported in Opal.
213
146
  fails "String#chop! removes a multi-byte character" # NotImplementedError: String#chop! not supported. Mutable String methods are not supported in Opal.
214
147
  fails "String#chop! removes the carriage return, newline if they are the only characters" # NotImplementedError: String#chop! not supported. Mutable String methods are not supported in Opal.
215
- fails "String#chop! removes the final carriage return"
148
+ fails "String#chop! removes the final carriage return" # NotImplementedError: String#chop! not supported. Mutable String methods are not supported in Opal.
216
149
  fails "String#chop! removes the final carriage return, newline from a multibyte String" # NotImplementedError: String#chop! not supported. Mutable String methods are not supported in Opal.
217
- fails "String#chop! removes the final carriage return, newline from a non-ASCII String" # ArgumentError: unknown encoding name - utf-32be
218
- fails "String#chop! removes the final carriage return, newline"
219
- fails "String#chop! removes the final character"
220
- fails "String#chop! removes the final newline"
221
- fails "String#chop! returns nil when called on an empty string"
222
- fails "String#chop! returns self if modifications were made"
150
+ fails "String#chop! removes the final carriage return, newline from a non-ASCII String" # NotImplementedError: String#chop! not supported. Mutable String methods are not supported in Opal.
151
+ fails "String#chop! removes the final carriage return, newline" # NotImplementedError: String#chop! not supported. Mutable String methods are not supported in Opal.
152
+ fails "String#chop! removes the final character" # NotImplementedError: String#chop! not supported. Mutable String methods are not supported in Opal.
153
+ fails "String#chop! removes the final newline" # NotImplementedError: String#chop! not supported. Mutable String methods are not supported in Opal.
154
+ fails "String#chop! returns nil when called on an empty string" # NotImplementedError: String#chop! not supported. Mutable String methods are not supported in Opal.
155
+ fails "String#chop! returns self if modifications were made" # NotImplementedError: String#chop! not supported. Mutable String methods are not supported in Opal.
223
156
  fails "String#clear preserves its encoding" # NameError: uninitialized constant Encoding::SHIFT_JIS
224
- fails "String#clear raises a RuntimeError if self is frozen" # NoMethodError: undefined method `clear' for "Jolene":String
225
- fails "String#clear returns self after emptying it" # NoMethodError: undefined method `clear' for "Jolene":String
226
- fails "String#clear sets self equal to the empty String" # NoMethodError: undefined method `clear' for "Jolene":String
227
- fails "String#clear works with multibyte Strings" # NoMethodError: undefined method `clear' for "靥ࡶ":String
228
- fails "String#clone copies instance variables" # Strings are immutable, so they can't have ivars
229
- fails "String#clone does not modify the original string when changing cloned string" # string can't be modified
230
- fails "String#concat concatenates the given argument to self and returns self"
231
- fails "String#concat concatenates the initial value when given arguments contain 2 self"
232
- fails "String#concat converts the given argument to a String using to_str"
233
- fails "String#concat raises a RuntimeError when self is frozen"
234
- fails "String#concat raises a TypeError if the given argument can't be converted to a String"
235
- fails "String#concat returns a String when given a subclass instance"
236
- fails "String#concat returns an instance of same class when called on a subclass"
237
- fails "String#concat returns self when given no arguments"
238
- fails "String#concat taints self if other is tainted"
239
- fails "String#concat takes multiple arguments"
240
- fails "String#concat untrusts self if other is untrusted"
241
- fails "String#concat when self and the argument are in different ASCII-compatible encodings raises Encoding::CompatibilityError if neither are ASCII-only"
242
- fails "String#concat when self and the argument are in different ASCII-compatible encodings uses self's encoding if both are ASCII-only"
243
- fails "String#concat when self and the argument are in different ASCII-compatible encodings uses self's encoding if the argument is ASCII-only"
244
- fails "String#concat when self and the argument are in different ASCII-compatible encodings uses the argument's encoding if self is ASCII-only"
245
- fails "String#concat when self is ASCII-8BIT and argument is US-ASCII uses ASCII-8BIT encoding"
246
- fails "String#concat when self is in an ASCII-incompatible encoding incompatible with the argument's encoding raises Encoding::CompatibilityError if neither are empty"
247
- fails "String#concat when self is in an ASCII-incompatible encoding incompatible with the argument's encoding uses self's encoding if both are empty"
248
- fails "String#concat when self is in an ASCII-incompatible encoding incompatible with the argument's encoding uses self's encoding if the argument is empty"
249
- fails "String#concat when self is in an ASCII-incompatible encoding incompatible with the argument's encoding uses the argument's encoding if self is empty"
250
- fails "String#concat when the argument is in an ASCII-incompatible encoding incompatible with self's encoding raises Encoding::CompatibilityError if neither are empty"
251
- fails "String#concat when the argument is in an ASCII-incompatible encoding incompatible with self's encoding uses self's encoding if both are empty"
252
- fails "String#concat when the argument is in an ASCII-incompatible encoding incompatible with self's encoding uses self's encoding if the argument is empty"
253
- 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"
157
+ fails "String#clear returns self after emptying it" # NotImplementedError: String#clear not supported. Mutable String methods are not supported in Opal.
158
+ fails "String#clear sets self equal to the empty String" # NotImplementedError: String#clear not supported. Mutable String methods are not supported in Opal.
159
+ fails "String#clear works with multibyte Strings" # NotImplementedError: String#clear not supported. Mutable String methods are not supported in Opal.
160
+ fails "String#clone copies instance variables" # NoMethodError: undefined method `ivar' for "string"
161
+ fails "String#clone does not modify the original string when changing cloned string" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
162
+ fails "String#concat concatenates the given argument to self and returns self" # NoMethodError: undefined method `concat' for "hello "
163
+ fails "String#concat concatenates the initial value when given arguments contain 2 self" # NoMethodError: undefined method `concat' for "hello"
164
+ fails "String#concat converts the given argument to a String using to_str" # Mock 'world!' expected to receive to_str("any_args") exactly 1 times but received it 0 times
165
+ fails "String#concat raises a TypeError if the given argument can't be converted to a String" # Expected TypeError but got: NoMethodError (undefined method `concat' for "hello ")
166
+ fails "String#concat returns a String when given a subclass instance" # NoMethodError: undefined method `concat' for "hello"
167
+ fails "String#concat returns an instance of same class when called on a subclass" # NoMethodError: undefined method `concat' for "hello"
168
+ fails "String#concat returns self when given no arguments" # NoMethodError: undefined method `concat' for "hello"
169
+ fails "String#concat takes multiple arguments" # NoMethodError: undefined method `concat' for "hello "
170
+ fails "String#concat when self and the argument are in different ASCII-compatible encodings raises Encoding::CompatibilityError if neither are ASCII-only" # Expected CompatibilityError but got: NoMethodError (undefined method `concat' for "é")
171
+ fails "String#concat when self and the argument are in different ASCII-compatible encodings uses self's encoding if both are ASCII-only" # ArgumentError: unknown encoding name - SHIFT_JIS
172
+ fails "String#concat when self and the argument are in different ASCII-compatible encodings uses self's encoding if the argument is ASCII-only" # NoMethodError: undefined method `concat' for "é"
173
+ fails "String#concat when self and the argument are in different ASCII-compatible encodings uses the argument's encoding if self is ASCII-only" # NoMethodError: undefined method `concat' for "abc"
174
+ fails "String#concat when self is in an ASCII-incompatible encoding incompatible with the argument's encoding raises Encoding::CompatibilityError if neither are empty" # Expected CompatibilityError but got: NoMethodError (undefined method `concat' for "x")
175
+ fails "String#concat when self is in an ASCII-incompatible encoding incompatible with the argument's encoding uses self's encoding if both are empty" # NoMethodError: undefined method `concat' for ""
176
+ fails "String#concat when self is in an ASCII-incompatible encoding incompatible with the argument's encoding uses self's encoding if the argument is empty" # NoMethodError: undefined method `concat' for "x"
177
+ fails "String#concat when self is in an ASCII-incompatible encoding incompatible with the argument's encoding uses the argument's encoding if self is empty" # NoMethodError: undefined method `concat' for ""
178
+ fails "String#concat when the argument is in an ASCII-incompatible encoding incompatible with self's encoding raises Encoding::CompatibilityError if neither are empty" # Expected CompatibilityError but got: NoMethodError (undefined method `concat' for "x")
179
+ fails "String#concat when the argument is in an ASCII-incompatible encoding incompatible with self's encoding uses self's encoding if both are empty" # NoMethodError: undefined method `concat' for ""
180
+ fails "String#concat when the argument is in an ASCII-incompatible encoding incompatible with self's encoding uses self's encoding if the argument is empty" # NoMethodError: undefined method `concat' for "x"
181
+ 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" # NoMethodError: undefined method `concat' for ""
254
182
  fails "String#concat with Integer concatenates the argument interpreted as a codepoint" # NoMethodError: undefined method `concat' for ""
255
- fails "String#concat with Integer doesn't call to_int on its argument"
256
- fails "String#concat with Integer raises RangeError if the argument is an invalid codepoint for self's encoding"
257
- fails "String#concat with Integer raises RangeError if the argument is negative"
258
- fails "String#concat with Integer raises a RuntimeError when self is frozen"
259
- fails "String#concat with Integer returns a ASCII-8BIT string if self is US-ASCII and the argument is between 128-255 (inclusive)"
260
- fails "String#count returns the number of occurrences of a multi-byte character"
261
- fails "String#delete taints result when self is tainted"
262
- fails "String#delete! modifies self in place and returns self"
263
- fails "String#delete! raises a RuntimeError when self is frozen"
264
- fails "String#delete! returns nil if no modifications were made"
265
- fails "String#delete_prefix returns a copy of the string, when the prefix isn't found" # Fails because "string".equal?("string") is always true
266
- fails "String#delete_prefix! calls to_str on its argument"
267
- fails "String#delete_prefix! doesn't set $~"
268
- fails "String#delete_prefix! removes the found prefix"
269
- fails "String#delete_prefix! returns nil if no change is made"
270
- fails "String#delete_suffix returns a copy of the string, when the suffix isn't found" # Fails because "string".equal?("string") is always true
271
- fails "String#delete_suffix! calls to_str on its argument"
272
- fails "String#delete_suffix! doesn't set $~"
273
- fails "String#delete_suffix! removes the found prefix"
274
- fails "String#delete_suffix! returns nil if no change is made"
275
- fails "String#downcase is locale insensitive (only replaces A-Z)"
276
- fails "String#downcase taints result when self is tainted"
183
+ fails "String#concat with Integer doesn't call to_int on its argument" # Expected TypeError but got: NoMethodError (undefined method `concat' for "")
184
+ fails "String#concat with Integer raises RangeError if the argument is an invalid codepoint for self's encoding" # Expected RangeError but got: NoMethodError (undefined method `concat' for "")
185
+ fails "String#concat with Integer raises RangeError if the argument is negative" # Expected RangeError but got: NoMethodError (undefined method `concat' for "")
186
+ fails "String#delete! modifies self in place and returns self" # NoMethodError: undefined method `delete!' for "hello"
187
+ fails "String#delete! returns nil if no modifications were made" # NoMethodError: undefined method `delete!' for "hello"
188
+ fails "String#delete_prefix returns a copy of the string, when the prefix isn't found" # Expected "hello" not to be identical to "hello"
189
+ fails "String#delete_prefix! calls to_str on its argument" # Mock 'x' expected to receive to_str("any_args") exactly 1 times but received it 0 times
190
+ fails "String#delete_prefix! doesn't set $~" # NoMethodError: undefined method `delete_prefix!' for "hello"
191
+ fails "String#delete_prefix! removes the found prefix" # NoMethodError: undefined method `delete_prefix!' for "hello"
192
+ fails "String#delete_prefix! returns nil if no change is made" # NoMethodError: undefined method `delete_prefix!' for "hello"
193
+ fails "String#delete_suffix returns a copy of the string, when the suffix isn't found" # Expected "hello" not to be identical to "hello"
194
+ fails "String#delete_suffix! calls to_str on its argument" # Mock 'x' expected to receive to_str("any_args") exactly 1 times but received it 0 times
195
+ fails "String#delete_suffix! doesn't set $~" # NoMethodError: undefined method `delete_suffix!' for "hello"
196
+ fails "String#delete_suffix! removes the found prefix" # NoMethodError: undefined method `delete_suffix!' for "hello"
197
+ fails "String#delete_suffix! returns nil if no change is made" # NoMethodError: undefined method `delete_suffix!' for "hello"
277
198
  fails "String#downcase! ASCII-only case mapping does not downcase non-ASCII characters" # NotImplementedError: String#downcase! not supported. Mutable String methods are not supported in Opal.
278
199
  fails "String#downcase! ASCII-only case mapping works for non-ascii-compatible encodings" # NotImplementedError: String#downcase! not supported. Mutable String methods are not supported in Opal.
279
200
  fails "String#downcase! case folding case folds special characters" # NotImplementedError: String#downcase! not supported. Mutable String methods are not supported in Opal.
280
- fails "String#downcase! does not allow invalid options" # NotImplementedError: String#downcase! not supported. Mutable String methods are not supported in Opal.
201
+ fails "String#downcase! does not allow invalid options" # Expected ArgumentError but got: NotImplementedError (String#downcase! not supported. Mutable String methods are not supported in Opal.)
281
202
  fails "String#downcase! full Unicode case mapping adapted for Lithuanian allows Turkic as an extra option (and applies Turkic semantics)" # NotImplementedError: String#downcase! not supported. Mutable String methods are not supported in Opal.
282
203
  fails "String#downcase! full Unicode case mapping adapted for Lithuanian currently works the same as full Unicode case mapping" # NotImplementedError: String#downcase! not supported. Mutable String methods are not supported in Opal.
283
- fails "String#downcase! full Unicode case mapping adapted for Lithuanian does not allow any other additional option" # NotImplementedError: String#downcase! not supported. Mutable String methods are not supported in Opal.
204
+ fails "String#downcase! full Unicode case mapping adapted for Lithuanian does not allow any other additional option" # Expected ArgumentError but got: NotImplementedError (String#downcase! not supported. Mutable String methods are not supported in Opal.)
284
205
  fails "String#downcase! full Unicode case mapping adapted for Turkic languages allows Lithuanian as an extra option" # NotImplementedError: String#downcase! not supported. Mutable String methods are not supported in Opal.
285
- fails "String#downcase! full Unicode case mapping adapted for Turkic languages does not allow any other additional option" # NotImplementedError: String#downcase! not supported. Mutable String methods are not supported in Opal.
206
+ fails "String#downcase! full Unicode case mapping adapted for Turkic languages does not allow any other additional option" # Expected ArgumentError but got: NotImplementedError (String#downcase! not supported. Mutable String methods are not supported in Opal.)
286
207
  fails "String#downcase! full Unicode case mapping adapted for Turkic languages downcases characters according to Turkic semantics" # NotImplementedError: String#downcase! not supported. Mutable String methods are not supported in Opal.
287
208
  fails "String#downcase! full Unicode case mapping modifies self in place for all of Unicode with no option" # NotImplementedError: String#downcase! not supported. Mutable String methods are not supported in Opal.
288
209
  fails "String#downcase! full Unicode case mapping updates string metadata" # NotImplementedError: String#downcase! not supported. Mutable String methods are not supported in Opal.
289
- fails "String#downcase! modifies self in place for all of Unicode" # NotImplementedError: String#downcase! not supported. Mutable String methods are not supported in Opal.
290
210
  fails "String#downcase! modifies self in place for non-ascii-compatible encodings" # NotImplementedError: String#downcase! not supported. Mutable String methods are not supported in Opal.
291
- fails "String#downcase! modifies self in place"
292
- fails "String#downcase! raises a RuntimeError when self is frozen"
293
- fails "String#downcase! returns nil if no modifications were made"
294
- fails "String#downcase! sets the result String encoding to the source String encoding" # Expected #<Encoding:UTF-16LE> to be identical to #<Encoding:UTF-8>
295
- fails "String#dump untrusts the result if self is untrusted"
296
- fails "String#dup copies instance variables" # Strings are immutable, so they can't have ivars
211
+ fails "String#downcase! modifies self in place" # NotImplementedError: String#downcase! not supported. Mutable String methods are not supported in Opal.
212
+ fails "String#downcase! returns nil if no modifications were made" # NotImplementedError: String#downcase! not supported. Mutable String methods are not supported in Opal.
213
+ fails "String#dup copies instance variables" # NoMethodError: undefined method `ivar' for "string"
297
214
  fails "String#dup does not copy singleton methods" # TypeError: can't define singleton
298
- fails "String#dup does not modify the original string when changing dupped string"
299
- fails "String#each_char is unicode aware"
300
- fails "String#each_line does not care if the string is modified while substituting"
301
- fails "String#each_line raises a TypeError when the separator is a symbol"
302
- fails "String#each_line taints substrings that are passed to the block if self is tainted"
215
+ fails "String#dup does not modify the original string when changing dupped string" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
216
+ fails "String#each_line does not care if the string is modified while substituting" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
217
+ fails "String#each_line raises a TypeError when the separator is a symbol" # Expected TypeError but no exception was raised (["hello", " wo", "rld"] was returned)
303
218
  fails "String#encode! given the xml: :attr option replaces all instances of '&' with '&amp;'" # NoMethodError: undefined method `default_internal' for Encoding
304
219
  fails "String#encode! given the xml: :attr option replaces all instances of '<' with '&lt;'" # NoMethodError: undefined method `default_internal' for Encoding
305
220
  fails "String#encode! given the xml: :attr option replaces all instances of '>' with '&gt;'" # NoMethodError: undefined method `default_internal' for Encoding
@@ -312,8 +227,6 @@ opal_unsupported_filter "String" do
312
227
  fails "String#encode! given the xml: :text option replaces all instances of '>' with '&gt;'" # NoMethodError: undefined method `default_internal' for Encoding
313
228
  fails "String#encode! given the xml: :text option replaces undefined characters with their upper-case hexadecimal numeric character references" # NoMethodError: undefined method `default_internal' for Encoding
314
229
  fails "String#encode! raises ArgumentError if the value of the :xml option is not :text or :attr" # NoMethodError: undefined method `default_internal' for Encoding
315
- fails "String#encode! raises a RuntimeError when called on a frozen String when it's a no-op" # NoMethodError: undefined method `default_internal' for Encoding
316
- fails "String#encode! raises a RuntimeError when called on a frozen String" # NoMethodError: undefined method `default_internal' for Encoding
317
230
  fails "String#encode! when passed no options raises an Encoding::ConverterNotFoundError when no conversion is possible" # NoMethodError: undefined method `default_internal' for Encoding
318
231
  fails "String#encode! when passed no options returns self for a ASCII-only String when Encoding.default_internal is nil" # NoMethodError: undefined method `default_internal' for Encoding
319
232
  fails "String#encode! when passed no options returns self when Encoding.default_internal is nil" # NoMethodError: undefined method `default_internal' for Encoding
@@ -345,273 +258,166 @@ opal_unsupported_filter "String" do
345
258
  fails "String#encode! when passed to, options replaces invalid characters in the destination encoding" # NoMethodError: undefined method `default_internal' for Encoding
346
259
  fails "String#encode! when passed to, options replaces undefined characters in the destination encoding" # NoMethodError: undefined method `default_internal' for Encoding
347
260
  fails "String#gsub with pattern and Hash ignores non-String keys" # Expected "tazoo" == "taboo" to be truthy but was false
348
- fails "String#gsub with pattern and Hash taints the result if a hash value is tainted"
349
- fails "String#gsub with pattern and Hash taints the result if the original string is tainted"
350
- fails "String#gsub with pattern and Hash untrusts the result if a hash value is untrusted"
351
- fails "String#gsub with pattern and Hash untrusts the result if the original string is untrusted"
352
- fails "String#gsub with pattern and block untrusts the result if the original string or replacement is untrusted"
353
- fails "String#gsub with pattern and replacement taints the result if the original string or replacement is tainted"
354
- fails "String#gsub with pattern and replacement untrusts the result if the original string or replacement is untrusted"
355
- fails "String#gsub! with pattern and Hash coerces the hash values with #to_s"
356
- fails "String#gsub! with pattern and Hash doesn't interpolate special sequences like \\1 for the block's return value"
357
- fails "String#gsub! with pattern and Hash ignores keys that don't correspond to matches"
358
- fails "String#gsub! with pattern and Hash ignores non-String keys"
359
- fails "String#gsub! with pattern and Hash keeps tainted state"
360
- fails "String#gsub! with pattern and Hash keeps untrusted state"
361
- fails "String#gsub! with pattern and Hash replaces self with an empty string if the pattern matches but the hash specifies no replacements"
362
- fails "String#gsub! with pattern and Hash returns self with all occurrences of pattern replaced with the value of the corresponding hash key"
363
- fails "String#gsub! with pattern and Hash sets $~ to MatchData of last match and nil when there's none for access from outside"
364
- fails "String#gsub! with pattern and Hash taints self if a hash value is tainted"
365
- fails "String#gsub! with pattern and Hash untrusts self if a hash value is untrusted"
366
- fails "String#gsub! with pattern and Hash uses a key's value as many times as needed"
367
- fails "String#gsub! with pattern and Hash uses the hash's default value for missing keys"
368
- fails "String#gsub! with pattern and Hash uses the hash's value set from default_proc for missing keys"
369
- fails "String#gsub! with pattern and block modifies self in place and returns self"
370
- fails "String#gsub! with pattern and block raises a RuntimeError when self is frozen"
371
- fails "String#gsub! with pattern and block raises an ArgumentError if encoding is not valid"
372
- fails "String#gsub! with pattern and block raises an Encoding::CompatibilityError if the encodings are not compatible"
373
- fails "String#gsub! with pattern and block replaces the incompatible part properly even if the encodings are not compatible"
374
- fails "String#gsub! with pattern and block returns nil if no modifications were made"
375
- fails "String#gsub! with pattern and block taints self if block's result is tainted"
376
- fails "String#gsub! with pattern and block untrusts self if block's result is untrusted"
377
- fails "String#gsub! with pattern and block uses the compatible encoding if they are compatible"
378
- fails "String#gsub! with pattern and replacement modifies self in place and returns self"
379
- fails "String#gsub! with pattern and replacement modifies self in place with multi-byte characters and returns self"
380
- fails "String#gsub! with pattern and replacement raises a RuntimeError when self is frozen"
381
- fails "String#gsub! with pattern and replacement returns nil if no modifications were made"
382
- fails "String#gsub! with pattern and replacement taints self if replacement is tainted"
383
- fails "String#gsub! with pattern and replacement untrusts self if replacement is untrusted"
384
- fails "String#gsub! with pattern and without replacement and block returned Enumerator size should return nil"
385
- fails "String#gsub! with pattern and without replacement and block returns an enumerator"
386
- fails "String#index raises a TypeError if passed a Symbol"
387
- fails "String#index with Regexp supports \\G which matches at the given start offset"
388
- fails "String#initialize is a private method"
389
- fails "String#initialize with an argument carries over the encoding invalidity"
390
- fails "String#initialize with an argument does not trust self if other is trusted"
391
- fails "String#initialize with an argument does not untaint self if other is untainted"
392
- fails "String#initialize with an argument raises a RuntimeError on a frozen instance that is modified"
393
- fails "String#initialize with an argument raises a RuntimeError on a frozen instance when self-replacing"
394
- fails "String#initialize with an argument raises a TypeError if other can't be converted to string"
395
- fails "String#initialize with an argument replaces the content of self with other"
396
- fails "String#initialize with an argument replaces the encoding of self with that of other"
397
- fails "String#initialize with an argument returns self"
398
- fails "String#initialize with an argument taints self if other is tainted"
399
- fails "String#initialize with an argument tries to convert other to string using to_str"
400
- fails "String#initialize with an argument untrusts self if other is untrusted"
401
- fails "String#insert with index, other converts index to an integer using to_int"
402
- fails "String#insert with index, other converts other to a string using to_str"
403
- fails "String#insert with index, other inserts after the given character on an negative count"
404
- fails "String#insert with index, other inserts other before the character at the given index"
405
- fails "String#insert with index, other modifies self in place"
406
- fails "String#insert with index, other raises a RuntimeError if self is frozen"
407
- fails "String#insert with index, other raises a TypeError if other can't be converted to string"
408
- fails "String#insert with index, other raises an IndexError if the index is beyond string"
409
- fails "String#insert with index, other taints self if string to insert is tainted"
410
- fails "String#inspect taints the result if self is tainted"
411
- fails "String#inspect untrusts the result if self is untrusted"
412
- fails "String#lines does not care if the string is modified while substituting"
413
- fails "String#lines raises a TypeError when the separator is a symbol"
414
- fails "String#lines taints substrings that are passed to the block if self is tainted"
415
- fails "String#ljust with length, padding taints result when self or padstr is tainted"
416
- fails "String#ljust with length, padding when padding is tainted and self is untainted returns a tainted string if and only if length is longer than self"
417
- fails "String#lstrip taints the result when self is tainted"
418
- fails "String#lstrip! modifies self in place and returns self"
419
- fails "String#lstrip! raises a RuntimeError on a frozen instance that is modified"
420
- fails "String#lstrip! raises a RuntimeError on a frozen instance that would not be modified"
421
- fails "String#lstrip! returns nil if no modifications were made"
422
- fails "String#lstrip! strips leading \\0" # NotImplementedError: String#lstrip! not supported. Mutable String methods are not supported in Opal.
423
- fails "String#match matches \\G at the start of the string"
424
- fails "String#next taints the result if self is tainted"
425
- fails "String#next! is equivalent to succ, but modifies self in place (still returns self)"
426
- fails "String#next! raises a RuntimeError if self is frozen"
427
- fails "String#prepend converts the given argument to a String using to_str"
428
- fails "String#prepend prepends the given argument to self and returns self"
429
- fails "String#prepend prepends the initial value when given arguments contain 2 self"
430
- fails "String#prepend raises a RuntimeError when self if frozen"
431
- fails "String#prepend raises a RuntimeError when self is frozen" # NoMethodError: undefined method `prepend' for "hello":String
432
- fails "String#prepend raises a TypeError if the given argument can't be converted to a String"
433
- fails "String#prepend returns self when given no arguments"
434
- fails "String#prepend taints self if other is tainted"
435
- fails "String#prepend takes multiple arguments"
436
- fails "String#prepend works when given a subclass instance"
437
- fails "String#replace carries over the encoding invalidity"
438
- fails "String#replace does not trust self if other is trusted"
439
- fails "String#replace does not untaint self if other is untainted"
440
- fails "String#replace raises a RuntimeError on a frozen instance that is modified"
441
- fails "String#replace raises a RuntimeError on a frozen instance when self-replacing"
442
- fails "String#replace raises a TypeError if other can't be converted to string"
443
- fails "String#replace replaces the content of self with other"
444
- fails "String#replace replaces the encoding of self with that of other"
445
- fails "String#replace returns self"
446
- fails "String#replace taints self if other is tainted"
447
- fails "String#replace tries to convert other to string using to_str"
448
- fails "String#replace untrusts self if other is untrusted"
449
- fails "String#reverse taints the result if self is tainted"
450
- fails "String#reverse! raises a RuntimeError on a frozen instance that is modified"
451
- fails "String#reverse! raises a RuntimeError on a frozen instance that would not be modified"
261
+ fails "String#gsub! with pattern and Hash coerces the hash values with #to_s" # Mock '!' expected to receive to_s("any_args") exactly 1 times but received it 0 times
262
+ fails "String#gsub! with pattern and Hash doesn't interpolate special sequences like \\1 for the block's return value" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
263
+ fails "String#gsub! with pattern and Hash ignores keys that don't correspond to matches" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
264
+ fails "String#gsub! with pattern and Hash ignores non-String keys" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
265
+ fails "String#gsub! with pattern and Hash replaces self with an empty string if the pattern matches but the hash specifies no replacements" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
266
+ fails "String#gsub! with pattern and Hash returns self with all occurrences of pattern replaced with the value of the corresponding hash key" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
267
+ fails "String#gsub! with pattern and Hash sets $~ to MatchData of last match and nil when there's none for access from outside" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
268
+ fails "String#gsub! with pattern and Hash uses a key's value as many times as needed" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
269
+ fails "String#gsub! with pattern and Hash uses the hash's default value for missing keys" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
270
+ fails "String#gsub! with pattern and Hash uses the hash's value set from default_proc for missing keys" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
271
+ fails "String#gsub! with pattern and block modifies self in place and returns self" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
272
+ fails "String#gsub! with pattern and block raises an Encoding::CompatibilityError if the encodings are not compatible" # Expected CompatibilityError but got: NotImplementedError (String#gsub! not supported. Mutable String methods are not supported in Opal.)
273
+ fails "String#gsub! with pattern and block replaces the incompatible part properly even if the encodings are not compatible" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
274
+ fails "String#gsub! with pattern and block returns nil if no modifications were made" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
275
+ fails "String#gsub! with pattern and block uses the compatible encoding if they are compatible" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
276
+ fails "String#gsub! with pattern and replacement handles a pattern in a subset encoding" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
277
+ fails "String#gsub! with pattern and replacement handles a pattern in a superset encoding" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
278
+ fails "String#gsub! with pattern and replacement modifies self in place and returns self" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
279
+ fails "String#gsub! with pattern and replacement modifies self in place with multi-byte characters and returns self" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
280
+ fails "String#gsub! with pattern and replacement returns nil if no modifications were made" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
281
+ fails "String#gsub! with pattern and without replacement and block returned Enumerator size should return nil" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
282
+ fails "String#gsub! with pattern and without replacement and block returns an enumerator" # NotImplementedError: String#gsub! not supported. Mutable String methods are not supported in Opal.
283
+ fails "String#index raises a TypeError if passed a Symbol" # Expected TypeError but no exception was raised (0 was returned)
284
+ fails "String#index with Regexp supports \\G which matches at the given start offset" # Expected nil == 5 to be truthy but was false
285
+ fails "String#initialize is a private method" # Expected String to have private instance method 'initialize' but it does not
286
+ fails "String#initialize with an argument carries over the encoding invalidity" # NoMethodError: undefined method `valid_encoding?' for nil
287
+ fails "String#initialize with an argument raises a TypeError if other can't be converted to string" # Expected TypeError but no exception was raised (nil was returned)
288
+ fails "String#initialize with an argument replaces the content of self with other" # Expected "some string" == "another string" to be truthy but was false
289
+ fails "String#initialize with an argument replaces the encoding of self with that of other" # Expected #<Encoding:UTF-16LE> == #<Encoding:UTF-8> to be truthy but was false
290
+ fails "String#initialize with an argument returns self" # Expected nil to be identical to "a"
291
+ fails "String#initialize with an argument tries to convert other to string using to_str" # Expected nil == "converted to a string" to be truthy but was false
292
+ fails "String#insert with index, other converts index to an integer using to_int" # Mock '-3' expected to receive to_int("any_args") exactly 1 times but received it 0 times
293
+ fails "String#insert with index, other converts other to a string using to_str" # Mock 'XYZ' expected to receive to_str("any_args") exactly 1 times but received it 0 times
294
+ fails "String#insert with index, other inserts after the given character on an negative count" # NoMethodError: undefined method `insert' for "abcd"
295
+ fails "String#insert with index, other inserts other before the character at the given index" # NoMethodError: undefined method `insert' for "abcd"
296
+ fails "String#insert with index, other modifies self in place" # NoMethodError: undefined method `insert' for "abcd"
297
+ fails "String#insert with index, other raises a TypeError if other can't be converted to string" # Expected TypeError but got: NoMethodError (undefined method `insert' for "abcd")
298
+ fails "String#insert with index, other raises an IndexError if the index is beyond string" # Expected IndexError but got: NoMethodError (undefined method `insert' for "abcd")
299
+ fails "String#lines does not care if the string is modified while substituting" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
300
+ fails "String#lines raises a TypeError when the separator is a symbol" # Expected TypeError but no exception was raised (["hello", " wo", "rld"] was returned)
301
+ fails "String#lstrip! makes a string empty if it is only whitespace" # NotImplementedError: String#lstrip! not supported. Mutable String methods are not supported in Opal.
302
+ fails "String#lstrip! modifies self in place and returns self" # NotImplementedError: String#lstrip! not supported. Mutable String methods are not supported in Opal.
303
+ fails "String#lstrip! raises an ArgumentError if the first non-space codepoint is invalid" # Expected true to be false
304
+ fails "String#lstrip! removes leading NULL bytes and whitespace" # NotImplementedError: String#lstrip! not supported. Mutable String methods are not supported in Opal.
305
+ fails "String#lstrip! returns nil if no modifications were made" # NotImplementedError: String#lstrip! not supported. Mutable String methods are not supported in Opal.
306
+ fails "String#match matches \\G at the start of the string" # NoMethodError: undefined method `[]' for nil
307
+ fails "String#next! is equivalent to succ, but modifies self in place (still returns self)" # NotImplementedError: String#next! not supported. Mutable String methods are not supported in Opal.
308
+ fails "String#prepend converts the given argument to a String using to_str" # Mock 'hello' expected to receive to_str("any_args") exactly 1 times but received it 0 times
309
+ fails "String#prepend prepends the given argument to self and returns self" # NotImplementedError: String#prepend not supported. Mutable String methods are not supported in Opal.
310
+ fails "String#prepend prepends the initial value when given arguments contain 2 self" # NotImplementedError: String#prepend not supported. Mutable String methods are not supported in Opal.
311
+ fails "String#prepend raises a TypeError if the given argument can't be converted to a String" # Expected TypeError but got: NotImplementedError (String#prepend not supported. Mutable String methods are not supported in Opal.)
312
+ fails "String#prepend returns self when given no arguments" # NotImplementedError: String#prepend not supported. Mutable String methods are not supported in Opal.
313
+ fails "String#prepend takes multiple arguments" # NotImplementedError: String#prepend not supported. Mutable String methods are not supported in Opal.
314
+ fails "String#prepend works when given a subclass instance" # NotImplementedError: String#prepend not supported. Mutable String methods are not supported in Opal.
315
+ fails "String#replace carries over the encoding invalidity" # NoMethodError: undefined method `replace' for ""
316
+ fails "String#replace raises a TypeError if other can't be converted to string" # Expected TypeError but got: NoMethodError (undefined method `replace' for "hello")
317
+ fails "String#replace replaces the content of self with other" # NoMethodError: undefined method `replace' for "some string"
318
+ fails "String#replace replaces the encoding of self with that of other" # NoMethodError: undefined method `replace' for ""
319
+ fails "String#replace returns self" # NoMethodError: undefined method `replace' for "a"
320
+ fails "String#replace tries to convert other to string using to_str" # Mock 'x' expected to receive to_str("any_args") exactly 1 times but received it 0 times
452
321
  fails "String#reverse! reverses a string with multi byte characters" # NotImplementedError: String#reverse! not supported. Mutable String methods are not supported in Opal.
453
- fails "String#reverse! reverses self in place and always returns self"
454
- fails "String#rindex with Regexp supports \\G which matches at the given start offset"
455
- fails "String#rjust with length, padding taints result when self or padstr is tainted"
456
- 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"
457
- fails "String#rstrip taints the result when self is tainted"
458
- fails "String#rstrip! modifies self in place and returns self"
459
- fails "String#rstrip! modifies self removing trailing NULL bytes and whitespace"
460
- fails "String#rstrip! raises a RuntimeError on a frozen instance that is modified"
461
- fails "String#rstrip! raises a RuntimeError on a frozen instance that would not be modified"
462
- fails "String#rstrip! returns nil if no modifications were made"
463
- fails "String#scan supports \\G which matches the end of the previous match / string start for first match"
464
- fails "String#scan taints the results if the Regexp argument is tainted"
465
- fails "String#scan taints the results if the String argument is tainted"
466
- fails "String#scan taints the results when passed a Regexp argument if self is tainted"
467
- fails "String#scan taints the results when passed a String argument if self is tainted"
468
- fails "String#scan with pattern and block taints the results if the Regexp argument is tainted"
469
- fails "String#scan with pattern and block taints the results if the String argument is tainted"
470
- fails "String#scan with pattern and block taints the results when passed a Regexp argument if self is tainted"
471
- fails "String#scan with pattern and block taints the results when passed a String argument if self is tainted"
472
- fails "String#setbyte allows changing bytes in multi-byte characters"
473
- fails "String#setbyte calls #to_int to convert the index"
474
- fails "String#setbyte calls to_int to convert the value"
475
- fails "String#setbyte can invalidate a String's encoding"
476
- fails "String#setbyte changes the byte at the given index to the new byte"
477
- fails "String#setbyte does not modify the original string when using String.new"
478
- fails "String#setbyte modifies the receiver"
479
- fails "String#setbyte raises a RuntimeError if self is frozen"
480
- fails "String#setbyte raises a TypeError unless the second argument is an Integer"
481
- fails "String#setbyte raises an IndexError if the index is greater than the String bytesize"
482
- fails "String#setbyte raises an IndexError if the negative index is greater magnitude than the String bytesize" # NoMethodError: undefined method `setbyte' for "???"
483
- fails "String#setbyte regards a negative index as counting from the end of the String"
484
- fails "String#setbyte returns an Integer"
485
- fails "String#setbyte sets a byte at an index greater than String size"
486
- fails "String#slice with Range always taints resulting strings when self is tainted"
487
- fails "String#slice with Regexp, index always taints resulting strings when self or regexp is tainted"
488
- fails "String#slice with String taints resulting strings when other is tainted"
489
- fails "String#slice with Symbol raises TypeError"
490
- fails "String#slice with index, length always taints resulting strings when self is tainted"
491
- fails "String#slice! Range always taints resulting strings when self is tainted"
492
- fails "String#slice! Range calls to_int on range arguments"
493
- fails "String#slice! Range deletes and return the substring given by the offsets of the range"
494
- fails "String#slice! Range raises a RuntimeError on a frozen instance that is modified"
495
- fails "String#slice! Range raises a RuntimeError on a frozen instance that would not be modified"
322
+ fails "String#reverse! reverses self in place and always returns self" # NotImplementedError: String#reverse! not supported. Mutable String methods are not supported in Opal.
323
+ fails "String#reverse! works with a broken string" # Expected true to be false
324
+ fails "String#rstrip! makes a string empty if it is only whitespace" # NoMethodError: undefined method `rstrip!' for ""
325
+ fails "String#rstrip! modifies self in place and returns self" # NoMethodError: undefined method `rstrip!' for " hello "
326
+ fails "String#rstrip! modifies self removing trailing NULL bytes and whitespace" # NoMethodError: undefined method `rstrip!' for "\u0000 \u0000hello\u0000 \u0000"
327
+ fails "String#rstrip! raises an ArgumentError if the last non-space codepoint is invalid" # Expected true to be false
328
+ fails "String#rstrip! removes trailing NULL bytes and whitespace" # NoMethodError: undefined method `rstrip!' for "\u0000 goodbye \u0000"
329
+ fails "String#rstrip! returns nil if no modifications were made" # NoMethodError: undefined method `rstrip!' for "hello"
330
+ fails "String#scan supports \\G which matches the end of the previous match / string start for first match" # Expected [] == ["one"] to be truthy but was false
331
+ fails "String#setbyte allows changing bytes in multi-byte characters" # NoMethodError: undefined method `setbyte' for "क"
332
+ fails "String#setbyte calls #to_int to convert the index" # Mock 'setbyte index' expected to receive to_int("any_args") exactly 1 times but received it 0 times
333
+ fails "String#setbyte calls to_int to convert the value" # Mock 'setbyte value' expected to receive to_int("any_args") exactly 1 times but received it 0 times
334
+ fails "String#setbyte can invalidate a String's encoding" # NoMethodError: undefined method `setbyte' for "glark"
335
+ fails "String#setbyte changes the byte at the given index to the new byte" # NoMethodError: undefined method `setbyte' for "a"
336
+ fails "String#setbyte does not modify the original string when using String.new" # NoMethodError: undefined method `setbyte' for "hedgehog"
337
+ fails "String#setbyte modifies the receiver" # NoMethodError: undefined method `setbyte' for "glark"
338
+ fails "String#setbyte raises a TypeError unless the second argument is an Integer" # Expected TypeError but got: NoMethodError (undefined method `setbyte' for "a")
339
+ fails "String#setbyte raises an IndexError if the index is greater than the String bytesize" # Expected IndexError but got: NoMethodError (undefined method `setbyte' for "?")
340
+ fails "String#setbyte raises an IndexError if the negative index is greater magnitude than the String bytesize" # Expected IndexError but got: NoMethodError (undefined method `setbyte' for "???")
341
+ fails "String#setbyte regards a negative index as counting from the end of the String" # NoMethodError: undefined method `setbyte' for "hedgehog"
342
+ fails "String#setbyte returns an Integer" # NoMethodError: undefined method `setbyte' for "a"
343
+ fails "String#setbyte sets a byte at an index greater than String size" # NoMethodError: undefined method `setbyte' for "ঘ"
344
+ fails "String#slice with Symbol raises TypeError" # Expected TypeError but no exception was raised ("hello" was returned)
345
+ fails "String#slice! Range calls to_int on range arguments" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
346
+ fails "String#slice! Range deletes and return the substring given by the offsets of the range" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
496
347
  fails "String#slice! Range returns String instances" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
497
- fails "String#slice! Range returns nil if the given range is out of self"
498
- fails "String#slice! Range returns subclass instances"
348
+ fails "String#slice! Range returns nil if the given range is out of self" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
499
349
  fails "String#slice! Range returns the substring given by the character offsets of the range" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
500
- fails "String#slice! Range works with Range subclasses"
501
- fails "String#slice! with Regexp always taints resulting strings when self or regexp is tainted"
502
- fails "String#slice! with Regexp deletes and returns the first match from self"
503
- fails "String#slice! with Regexp doesn't taint self when regexp is tainted"
504
- fails "String#slice! with Regexp raises a RuntimeError on a frozen instance that is modified"
505
- fails "String#slice! with Regexp raises a RuntimeError on a frozen instance that would not be modified"
350
+ fails "String#slice! Range works with Range subclasses" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
351
+ fails "String#slice! with Regexp deletes and returns the first match from self" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
506
352
  fails "String#slice! with Regexp returns String instances" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
507
- fails "String#slice! with Regexp returns nil if there was no match"
508
- fails "String#slice! with Regexp returns subclass instances"
353
+ fails "String#slice! with Regexp returns nil if there was no match" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
509
354
  fails "String#slice! with Regexp returns the matching portion of self with a multi byte character" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
510
- fails "String#slice! with Regexp sets $~ to MatchData when there is a match and nil when there's none"
511
- fails "String#slice! with Regexp, index accepts a Float for capture index"
512
- fails "String#slice! with Regexp, index always taints resulting strings when self or regexp is tainted"
513
- fails "String#slice! with Regexp, index calls #to_int to convert an Object to capture index"
514
- fails "String#slice! with Regexp, index deletes and returns the capture for idx from self"
515
- fails "String#slice! with Regexp, index doesn't taint self when regexp is tainted"
516
- fails "String#slice! with Regexp, index raises a RuntimeError if self is frozen"
355
+ fails "String#slice! with Regexp sets $~ to MatchData when there is a match and nil when there's none" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
356
+ fails "String#slice! with Regexp, index accepts a Float for capture index" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
357
+ fails "String#slice! with Regexp, index calls #to_int to convert an Object to capture index" # Mock '2' expected to receive to_int("any_args") at least 1 times but received it 0 times
358
+ fails "String#slice! with Regexp, index deletes and returns the capture for idx from self" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
517
359
  fails "String#slice! with Regexp, index returns String instances" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
518
- fails "String#slice! with Regexp, index returns nil if there is no capture for idx"
519
- fails "String#slice! with Regexp, index returns nil if there was no match"
520
- fails "String#slice! with Regexp, index returns subclass instances"
360
+ fails "String#slice! with Regexp, index returns nil if there is no capture for idx" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
361
+ fails "String#slice! with Regexp, index returns nil if there was no match" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
521
362
  fails "String#slice! with Regexp, index returns the encoding aware capture for the given index" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
522
- fails "String#slice! with Regexp, index sets $~ to MatchData when there is a match and nil when there's none"
523
- fails "String#slice! with String doesn't call to_str on its argument"
524
- fails "String#slice! with String doesn't set $~"
525
- fails "String#slice! with String raises a RuntimeError if self is frozen"
526
- fails "String#slice! with String removes and returns the first occurrence of other_str from self"
527
- fails "String#slice! with String returns a subclass instance when given a subclass instance"
528
- fails "String#slice! with String returns nil if self does not contain other"
529
- fails "String#slice! with String taints resulting strings when other is tainted"
530
- fails "String#slice! with index calls to_int on index"
531
- fails "String#slice! with index deletes and return the char at the given position"
532
- fails "String#slice! with index raises a RuntimeError if self is frozen"
533
- fails "String#slice! with index returns nil if idx is outside of self"
363
+ fails "String#slice! with String doesn't call to_str on its argument" # Expected TypeError but got: NotImplementedError (String#slice! not supported. Mutable String methods are not supported in Opal.)
364
+ fails "String#slice! with String doesn't set $~" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
365
+ fails "String#slice! with String removes and returns the first occurrence of other_str from self" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
366
+ fails "String#slice! with String returns a subclass instance when given a subclass instance" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
367
+ fails "String#slice! with String returns nil if self does not contain other" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
368
+ fails "String#slice! with index calls to_int on index" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
369
+ fails "String#slice! with index deletes and return the char at the given position" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
370
+ fails "String#slice! with index returns nil if idx is outside of self" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
534
371
  fails "String#slice! with index returns the character given by the character index" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
535
- fails "String#slice! with index, length always taints resulting strings when self is tainted"
536
- fails "String#slice! with index, length calls to_int on idx and length"
537
- fails "String#slice! with index, length deletes and returns the substring at idx and the given length"
538
- fails "String#slice! with index, length raises a RuntimeError if self is frozen"
372
+ fails "String#slice! with index, length calls to_int on idx and length" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
373
+ fails "String#slice! with index, length deletes and returns the substring at idx and the given length" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
539
374
  fails "String#slice! with index, length returns String instances" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
540
- fails "String#slice! with index, length returns nil if the length is negative"
541
- fails "String#slice! with index, length returns subclass instances"
542
375
  fails "String#slice! with index, length returns the substring given by the character offsets" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
543
- fails "String#slice! with index, length treats invalid bytes as single bytes" # NoMethodError: undefined method `pack' for [230, 203]:Array
544
- fails "String#split with Regexp doesn't taints the resulting strings if the Regexp is tainted"
545
- fails "String#split with Regexp taints an empty string if self is tainted"
546
- fails "String#split with Regexp taints the resulting strings if self is tainted"
547
- fails "String#split with String taints the resulting strings if self is tainted"
548
- fails "String#squeeze taints the result when self is tainted"
549
- fails "String#squeeze! modifies self in place and returns self"
550
- fails "String#squeeze! raises a RuntimeError when self is frozen"
551
- fails "String#squeeze! raises an ArgumentError when the parameter is out of sequence"
552
- fails "String#squeeze! returns nil if no modifications were made"
553
- fails "String#strip taints the result when self is tainted"
554
- fails "String#strip! modifies self in place and returns self"
555
- fails "String#strip! modifies self removing trailing NULL bytes and whitespace"
556
- fails "String#strip! raises a RuntimeError on a frozen instance that is modified"
557
- fails "String#strip! raises a RuntimeError on a frozen instance that would not be modified"
376
+ fails "String#slice! with index, length treats invalid bytes as single bytes" # NotImplementedError: String#slice! not supported. Mutable String methods are not supported in Opal.
377
+ fails "String#squeeze! modifies self in place and returns self" # NotImplementedError: String#squeeze! not supported. Mutable String methods are not supported in Opal.
378
+ fails "String#squeeze! raises an ArgumentError when the parameter is out of sequence" # Expected ArgumentError but got: NotImplementedError (String#squeeze! not supported. Mutable String methods are not supported in Opal.)
379
+ fails "String#squeeze! returns nil if no modifications were made" # NotImplementedError: String#squeeze! not supported. Mutable String methods are not supported in Opal.
380
+ fails "String#strip! makes a string empty if it is only whitespace" # NotImplementedError: String#strip! not supported. Mutable String methods are not supported in Opal.
381
+ fails "String#strip! modifies self in place and returns self" # NotImplementedError: String#strip! not supported. Mutable String methods are not supported in Opal.
558
382
  fails "String#strip! removes leading and trailing NULL bytes and whitespace" # NotImplementedError: String#strip! not supported. Mutable String methods are not supported in Opal.
559
- fails "String#strip! returns nil if no modifications where made"
383
+ fails "String#strip! returns nil if no modifications where made" # NotImplementedError: String#strip! not supported. Mutable String methods are not supported in Opal.
560
384
  fails "String#sub with pattern and Hash ignores non-String keys" # Expected "tazoo" == "taboo" to be truthy but was false
561
- fails "String#sub with pattern and Hash taints the result if a hash value is tainted"
562
- fails "String#sub with pattern and Hash taints the result if the original string is tainted"
563
- fails "String#sub with pattern and Hash untrusts the result if a hash value is untrusted"
564
- fails "String#sub with pattern and Hash untrusts the result if the original string is untrusted"
565
385
  fails "String#sub with pattern and block doesn't raise a RuntimeError if the string is modified while substituting" # NotImplementedError: String#[]= not supported. Mutable String methods are not supported in Opal.
566
- fails "String#sub with pattern and block taints the result if the original string or replacement is tainted"
567
- fails "String#sub with pattern, replacement raises a TypeError when pattern is a Symbol"
568
- fails "String#sub with pattern, replacement taints the result if the original string or replacement is tainted"
569
- fails "String#sub! with pattern and Hash coerces the hash values with #to_s"
570
- fails "String#sub! with pattern and Hash doesn't interpolate special sequences like \\1 for the block's return value"
571
- fails "String#sub! with pattern and Hash ignores non-String keys"
572
- fails "String#sub! with pattern and Hash keeps tainted state"
573
- fails "String#sub! with pattern and Hash keeps untrusted state"
574
- fails "String#sub! with pattern and Hash removes keys that don't correspond to matches"
575
- fails "String#sub! with pattern and Hash returns self with the first occurrence of pattern replaced with the value of the corresponding hash key"
576
- fails "String#sub! with pattern and Hash sets $~ to MatchData of first match and nil when there's none for access from outside"
577
- fails "String#sub! with pattern and Hash taints self if a hash value is tainted"
578
- fails "String#sub! with pattern and Hash untrusts self if a hash value is untrusted"
579
- fails "String#sub! with pattern and Hash uses a key's value only a single time"
580
- fails "String#sub! with pattern and Hash uses the hash's default value for missing keys"
581
- fails "String#sub! with pattern and Hash uses the hash's value set from default_proc for missing keys"
582
- fails "String#sub! with pattern and block modifies self in place and returns self"
583
- fails "String#sub! with pattern and block raises a RuntimeError if the string is modified while substituting"
584
- fails "String#sub! with pattern and block raises a RuntimeError when self is frozen"
585
- fails "String#sub! with pattern and block returns nil if no modifications were made"
586
- fails "String#sub! with pattern and block sets $~ for access from the block"
587
- fails "String#sub! with pattern and block taints self if block's result is tainted"
588
- fails "String#sub! with pattern and without replacement and block raises a ArgumentError"
589
- fails "String#sub! with pattern, replacement modifies self in place and returns self"
590
- fails "String#sub! with pattern, replacement raises a RuntimeError when self is frozen"
591
- fails "String#sub! with pattern, replacement returns nil if no modifications were made"
592
- fails "String#sub! with pattern, replacement taints self if replacement is tainted"
593
- fails "String#succ taints the result if self is tainted"
594
- fails "String#succ! is equivalent to succ, but modifies self in place (still returns self)"
595
- fails "String#succ! raises a RuntimeError if self is frozen"
596
- fails "String#swapcase taints resulting string when self is tainted"
597
- fails "String#swapcase! does not allow invalid options" # NotImplementedError: String#swapcase! not supported. Mutable String methods are not supported in Opal.
598
- fails "String#swapcase! does not allow the :fold option for upcasing" # NotImplementedError: String#swapcase! not supported. Mutable String methods are not supported in Opal.
386
+ fails "String#sub! with pattern and Hash coerces the hash values with #to_s" # Mock '!' expected to receive to_s("any_args") exactly 1 times but received it 0 times
387
+ fails "String#sub! with pattern and Hash doesn't interpolate special sequences like \\1 for the block's return value" # NotImplementedError: String#sub! not supported. Mutable String methods are not supported in Opal.
388
+ fails "String#sub! with pattern and Hash ignores non-String keys" # NotImplementedError: String#sub! not supported. Mutable String methods are not supported in Opal.
389
+ fails "String#sub! with pattern and Hash removes keys that don't correspond to matches" # NotImplementedError: String#sub! not supported. Mutable String methods are not supported in Opal.
390
+ fails "String#sub! with pattern and Hash returns self with the first occurrence of pattern replaced with the value of the corresponding hash key" # NotImplementedError: String#sub! not supported. Mutable String methods are not supported in Opal.
391
+ fails "String#sub! with pattern and Hash sets $~ to MatchData of first match and nil when there's none for access from outside" # NotImplementedError: String#sub! not supported. Mutable String methods are not supported in Opal.
392
+ fails "String#sub! with pattern and Hash uses a key's value only a single time" # NotImplementedError: String#sub! not supported. Mutable String methods are not supported in Opal.
393
+ fails "String#sub! with pattern and Hash uses the hash's default value for missing keys" # NotImplementedError: String#sub! not supported. Mutable String methods are not supported in Opal.
394
+ fails "String#sub! with pattern and Hash uses the hash's value set from default_proc for missing keys" # NotImplementedError: String#sub! not supported. Mutable String methods are not supported in Opal.
395
+ fails "String#sub! with pattern and block modifies self in place and returns self" # NotImplementedError: String#sub! not supported. Mutable String methods are not supported in Opal.
396
+ fails "String#sub! with pattern and block raises a RuntimeError if the string is modified while substituting" # Expected RuntimeError but got: NotImplementedError (String#sub! not supported. Mutable String methods are not supported in Opal.)
397
+ fails "String#sub! with pattern and block returns nil if no modifications were made" # NotImplementedError: String#sub! not supported. Mutable String methods are not supported in Opal.
398
+ fails "String#sub! with pattern and block sets $~ for access from the block" # NotImplementedError: String#sub! not supported. Mutable String methods are not supported in Opal.
399
+ fails "String#sub! with pattern and without replacement and block raises a ArgumentError" # Expected ArgumentError but got: NotImplementedError (String#sub! not supported. Mutable String methods are not supported in Opal.)
400
+ fails "String#sub! with pattern, replacement handles a pattern in a subset encoding" # NotImplementedError: String#sub! not supported. Mutable String methods are not supported in Opal.
401
+ fails "String#sub! with pattern, replacement handles a pattern in a superset encoding" # NotImplementedError: String#sub! not supported. Mutable String methods are not supported in Opal.
402
+ fails "String#sub! with pattern, replacement modifies self in place and returns self" # NotImplementedError: String#sub! not supported. Mutable String methods are not supported in Opal.
403
+ fails "String#sub! with pattern, replacement returns nil if no modifications were made" # NotImplementedError: String#sub! not supported. Mutable String methods are not supported in Opal.
404
+ fails "String#succ! is equivalent to succ, but modifies self in place (still returns self)" # NotImplementedError: String#succ! not supported. Mutable String methods are not supported in Opal.
405
+ fails "String#swapcase! does not allow invalid options" # Expected ArgumentError but got: NotImplementedError (String#swapcase! not supported. Mutable String methods are not supported in Opal.)
406
+ fails "String#swapcase! does not allow the :fold option for upcasing" # Expected ArgumentError but got: NotImplementedError (String#swapcase! not supported. Mutable String methods are not supported in Opal.)
599
407
  fails "String#swapcase! full Unicode case mapping adapted for Lithuanian allows Turkic as an extra option (and applies Turkic semantics)" # NotImplementedError: String#swapcase! not supported. Mutable String methods are not supported in Opal.
600
408
  fails "String#swapcase! full Unicode case mapping adapted for Lithuanian currently works the same as full Unicode case mapping" # NotImplementedError: String#swapcase! not supported. Mutable String methods are not supported in Opal.
601
- fails "String#swapcase! full Unicode case mapping adapted for Lithuanian does not allow any other additional option" # NotImplementedError: String#swapcase! not supported. Mutable String methods are not supported in Opal.
409
+ fails "String#swapcase! full Unicode case mapping adapted for Lithuanian does not allow any other additional option" # Expected ArgumentError but got: NotImplementedError (String#swapcase! not supported. Mutable String methods are not supported in Opal.)
602
410
  fails "String#swapcase! full Unicode case mapping modifies self in place for all of Unicode with no option" # NotImplementedError: String#swapcase! not supported. Mutable String methods are not supported in Opal.
603
411
  fails "String#swapcase! full Unicode case mapping updates string metadata" # NotImplementedError: String#swapcase! not supported. Mutable String methods are not supported in Opal.
604
412
  fails "String#swapcase! full Unicode case mapping works for non-ascii-compatible encodings" # NotImplementedError: String#swapcase! not supported. Mutable String methods are not supported in Opal.
605
413
  fails "String#swapcase! modifies self in place for ASCII-only case mapping does not swapcase non-ASCII characters" # NotImplementedError: String#swapcase! not supported. Mutable String methods are not supported in Opal.
606
414
  fails "String#swapcase! modifies self in place for ASCII-only case mapping works for non-ascii-compatible encodings" # NotImplementedError: String#swapcase! not supported. Mutable String methods are not supported in Opal.
607
- fails "String#swapcase! modifies self in place for all of Unicode" # NotImplementedError: String#swapcase! not supported. Mutable String methods are not supported in Opal.
608
415
  fails "String#swapcase! modifies self in place for full Unicode case mapping adapted for Turkic languages allows Lithuanian as an extra option" # NotImplementedError: String#swapcase! not supported. Mutable String methods are not supported in Opal.
609
- fails "String#swapcase! modifies self in place for full Unicode case mapping adapted for Turkic languages does not allow any other additional option" # NotImplementedError: String#swapcase! not supported. Mutable String methods are not supported in Opal.
416
+ fails "String#swapcase! modifies self in place for full Unicode case mapping adapted for Turkic languages does not allow any other additional option" # Expected ArgumentError but got: NotImplementedError (String#swapcase! not supported. Mutable String methods are not supported in Opal.)
610
417
  fails "String#swapcase! modifies self in place for full Unicode case mapping adapted for Turkic languages swaps case of ASCII characters according to Turkic semantics" # NotImplementedError: String#swapcase! not supported. Mutable String methods are not supported in Opal.
611
418
  fails "String#swapcase! modifies self in place for non-ascii-compatible encodings" # NotImplementedError: String#swapcase! not supported. Mutable String methods are not supported in Opal.
612
- fails "String#swapcase! modifies self in place"
613
- fails "String#swapcase! raises a RuntimeError when self is frozen"
614
- fails "String#swapcase! returns nil if no modifications were made"
419
+ fails "String#swapcase! modifies self in place" # NotImplementedError: String#swapcase! not supported. Mutable String methods are not supported in Opal.
420
+ fails "String#swapcase! returns nil if no modifications were made" # NotImplementedError: String#swapcase! not supported. Mutable String methods are not supported in Opal.
615
421
  fails "String#to_i with bases parses a String in base 10" # Expected "1.2345678901234567e+99" == "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" to be truthy but was false
616
422
  fails "String#to_i with bases parses a String in base 11" # Expected "1234567890a1234720000000000000000000000000000000000000000000000000000000000000000000000000000000000" == "1234567890a1234567890a1234567890a1234567890a1234567890a1234567890a1234567890a1234567890a1234567890a" to be truthy but was false
617
423
  fails "String#to_i with bases parses a String in base 12" # Expected "1234567890ab121800000000000000000000000000000000000000000000000000000000000000000000000000000000" == "1234567890ab1234567890ab1234567890ab1234567890ab1234567890ab1234567890ab1234567890ab1234567890ab" to be truthy but was false
@@ -646,49 +452,40 @@ opal_unsupported_filter "String" do
646
452
  fails "String#to_i with bases parses a String in base 6" # Expected "123450123450123450122400000000000000000000000000000000000000000000000000000000000000000000000000" == "123450123450123450123450123450123450123450123450123450123450123450123450123450123450123450123450" to be truthy but was false
647
453
  fails "String#to_i with bases parses a String in base 7" # Expected "12345601234560123501000000000000000000000000000000000000000000000000000000000000000000000000000000" == "12345601234560123456012345601234560123456012345601234560123456012345601234560123456012345601234560" to be truthy but was false
648
454
  fails "String#to_i with bases parses a String in base 8" # Expected "123456701234567012400000000000000000000000000000000000000000000000000000000000000000000000000000" == "123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670" to be truthy but was false
649
- fails "String#to_i with bases parses a String in base 9" # Expected "123456780123456780000000000000000000000000000000000000000000000000000000000000000000000000000000000" == "123456780123456780123456780123456780123456780123456780123456780123456780123456780123456780123456780" to be truthy but was false
650
- fails "String#to_s taints the result when self is tainted"
651
- fails "String#to_str taints the result when self is tainted"
652
- fails "String#tr taints the result when self is tainted"
653
- fails "String#tr! does not modify self if from_str is empty"
654
- fails "String#tr! modifies self in place"
655
- fails "String#tr! raises a RuntimeError if self is frozen"
656
- fails "String#tr! returns nil if no modification was made"
657
- fails "String#tr_s taints the result when self is tainted"
658
- fails "String#tr_s! does not modify self if from_str is empty"
659
- fails "String#tr_s! modifies self in place"
660
- fails "String#tr_s! raises a RuntimeError if self is frozen"
661
- fails "String#tr_s! returns nil if no modification was made"
662
- fails "String#unicode_normalize! modifies original string (nfc)"
663
- fails "String#unicode_normalize! modifies self in place (nfd)"
664
- fails "String#unicode_normalize! modifies self in place (nfkc)"
665
- fails "String#unicode_normalize! modifies self in place (nfkd)"
666
- fails "String#unicode_normalize! normalizes code points and modifies the receiving string"
667
- fails "String#unicode_normalize! raises an ArgumentError if the specified form is invalid"
668
- fails "String#unicode_normalize! raises an Encoding::CompatibilityError if the string is not in an unicode encoding"
669
- fails "String#upcase taints result when self is tainted"
670
- fails "String#upcase! does not allow invalid options" # NotImplementedError: String#upcase! not supported. Mutable String methods are not supported in Opal.
671
- fails "String#upcase! does not allow the :fold option for upcasing" # NotImplementedError: String#upcase! not supported. Mutable String methods are not supported in Opal.
455
+ fails "String#to_i with bases parses a String in base 9" # Expected "123456780123456780000000000000000000000000000000000000000000000000000000000000000000000000000000000" == "123456780123456780123456780123456780123456780123456780123456780123456780123456780123456780123456780" to be truthy but was false
456
+ fails "String#tr! does not modify self if from_str is empty" # NotImplementedError: String#tr! not supported. Mutable String methods are not supported in Opal.
457
+ fails "String#tr! modifies self in place" # NotImplementedError: String#tr! not supported. Mutable String methods are not supported in Opal.
458
+ fails "String#tr! returns nil if no modification was made" # NotImplementedError: String#tr! not supported. Mutable String methods are not supported in Opal.
459
+ fails "String#tr_s! does not modify self if from_str is empty" # NotImplementedError: String#tr_s! not supported. Mutable String methods are not supported in Opal.
460
+ fails "String#tr_s! modifies self in place" # NotImplementedError: String#tr_s! not supported. Mutable String methods are not supported in Opal.
461
+ fails "String#tr_s! returns nil if no modification was made" # NotImplementedError: String#tr_s! not supported. Mutable String methods are not supported in Opal.
462
+ fails "String#unicode_normalize! modifies original string (nfc)" # NotImplementedError: String#unicode_normalize! not supported. Mutable String methods are not supported in Opal.
463
+ fails "String#unicode_normalize! modifies self in place (nfd)" # NotImplementedError: String#unicode_normalize! not supported. Mutable String methods are not supported in Opal.
464
+ fails "String#unicode_normalize! modifies self in place (nfkc)" # NotImplementedError: String#unicode_normalize! not supported. Mutable String methods are not supported in Opal.
465
+ fails "String#unicode_normalize! modifies self in place (nfkd)" # NotImplementedError: String#unicode_normalize! not supported. Mutable String methods are not supported in Opal.
466
+ fails "String#unicode_normalize! normalizes code points and modifies the receiving string" # NotImplementedError: String#unicode_normalize! not supported. Mutable String methods are not supported in Opal.
467
+ fails "String#unicode_normalize! raises an ArgumentError if the specified form is invalid" # Expected ArgumentError but got: NotImplementedError (String#unicode_normalize! not supported. Mutable String methods are not supported in Opal.)
468
+ fails "String#unicode_normalize! raises an Encoding::CompatibilityError if the string is not in an unicode encoding" # Expected CompatibilityError but got: NotImplementedError (String#unicode_normalize! not supported. Mutable String methods are not supported in Opal.)
469
+ fails "String#upcase! does not allow invalid options" # Expected ArgumentError but got: NotImplementedError (String#upcase! not supported. Mutable String methods are not supported in Opal.)
470
+ fails "String#upcase! does not allow the :fold option for upcasing" # Expected ArgumentError but got: NotImplementedError (String#upcase! not supported. Mutable String methods are not supported in Opal.)
672
471
  fails "String#upcase! full Unicode case mapping modifies self in place for all of Unicode with no option" # NotImplementedError: String#upcase! not supported. Mutable String methods are not supported in Opal.
673
472
  fails "String#upcase! full Unicode case mapping updates string metadata for self" # NotImplementedError: String#upcase! not supported. Mutable String methods are not supported in Opal.
674
473
  fails "String#upcase! full Unicode case mapping works for non-ascii-compatible encodings" # NotImplementedError: String#upcase! not supported. Mutable String methods are not supported in Opal.
675
474
  fails "String#upcase! modifies self in place for ASCII-only case mapping does not upcase non-ASCII characters" # NotImplementedError: String#upcase! not supported. Mutable String methods are not supported in Opal.
676
475
  fails "String#upcase! modifies self in place for ASCII-only case mapping works for non-ascii-compatible encodings" # NotImplementedError: String#upcase! not supported. Mutable String methods are not supported in Opal.
677
- fails "String#upcase! modifies self in place for all of Unicode" # NotImplementedError: String#upcase! not supported. Mutable String methods are not supported in Opal.
678
476
  fails "String#upcase! modifies self in place for full Unicode case mapping adapted for Lithuanian allows Turkic as an extra option (and applies Turkic semantics)" # NotImplementedError: String#upcase! not supported. Mutable String methods are not supported in Opal.
679
477
  fails "String#upcase! modifies self in place for full Unicode case mapping adapted for Lithuanian currently works the same as full Unicode case mapping" # NotImplementedError: String#upcase! not supported. Mutable String methods are not supported in Opal.
680
- fails "String#upcase! modifies self in place for full Unicode case mapping adapted for Lithuanian does not allow any other additional option" # NotImplementedError: String#upcase! not supported. Mutable String methods are not supported in Opal.
478
+ fails "String#upcase! modifies self in place for full Unicode case mapping adapted for Lithuanian does not allow any other additional option" # Expected ArgumentError but got: NotImplementedError (String#upcase! not supported. Mutable String methods are not supported in Opal.)
681
479
  fails "String#upcase! modifies self in place for full Unicode case mapping adapted for Turkic languages allows Lithuanian as an extra option" # NotImplementedError: String#upcase! not supported. Mutable String methods are not supported in Opal.
682
- fails "String#upcase! modifies self in place for full Unicode case mapping adapted for Turkic languages does not allow any other additional option" # NotImplementedError: String#upcase! not supported. Mutable String methods are not supported in Opal.
480
+ fails "String#upcase! modifies self in place for full Unicode case mapping adapted for Turkic languages does not allow any other additional option" # Expected ArgumentError but got: NotImplementedError (String#upcase! not supported. Mutable String methods are not supported in Opal.)
683
481
  fails "String#upcase! modifies self in place for full Unicode case mapping adapted for Turkic languages upcases ASCII characters according to Turkic semantics" # NotImplementedError: String#upcase! not supported. Mutable String methods are not supported in Opal.
684
482
  fails "String#upcase! modifies self in place for non-ascii-compatible encodings" # NotImplementedError: String#upcase! not supported. Mutable String methods are not supported in Opal.
685
- fails "String#upcase! modifies self in place"
686
- fails "String#upcase! raises a RuntimeError when self is frozen"
687
- fails "String#upcase! returns nil if no modifications were made"
688
- fails "String#upto does not work with symbols"
689
- fails "String.allocate returns a binary String"
690
- fails "String.allocate returns a fully-formed String"
691
- fails "String.new returns a binary String"
692
- fails "String.new returns a fully-formed String"
693
- fails "String.new returns a new string given a string argument"
483
+ fails "String#upcase! modifies self in place" # NotImplementedError: String#upcase! not supported. Mutable String methods are not supported in Opal.
484
+ fails "String#upcase! returns nil if no modifications were made" # NotImplementedError: String#upcase! not supported. Mutable String methods are not supported in Opal.
485
+ fails "String#upto does not work with symbols" # Expected TypeError but no exception was raised (["a", "b", "c"] was returned)
486
+ fails "String.allocate returns a binary String" # Expected #<Encoding:UTF-8> == #<Encoding:ASCII-8BIT> to be truthy but was false
487
+ fails "String.allocate returns a fully-formed String" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
488
+ fails "String.new returns a binary String" # Expected #<Encoding:UTF-8> == #<Encoding:ASCII-8BIT> to be truthy but was false
489
+ fails "String.new returns a fully-formed String" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
490
+ fails "String.new returns a new string given a string argument" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
694
491
  end