opal 1.6.1 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +17 -0
  3. data/CHANGELOG.md +35 -1
  4. data/Gemfile +1 -0
  5. data/HACKING.md +47 -26
  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 +89 -50
  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