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,20 +1,16 @@
1
1
  # NOTE: run bin/format-filters after changing this file
2
2
  opal_filter "warnings" do
3
3
  fails "Array#join when $, is not nil warns" # Expected warning to match: /warning: \$, is set to non-nil value/ but got: ""
4
- fails "Constant resolution within methods with dynamically assigned constants returns the updated value when a constant is reassigned" # Expected warning to match: /already initialized constant/
5
- fails "Fixnum is deprecated" # Expected warning to match: /constant ::Fixnum is deprecated/ but got: ""
6
- fails "Hash#fetch gives precedence to the default block over the default argument when passed both" # Expected warning to match: /block supersedes default value argument/
7
- fails "Integer#** bignum switch to a Float when the values is too big" # Expected warning to match: /warning: in a\*\*b, b may be too big/ but got: ""
8
- fails "Integer#** fixnum returns Float::INFINITY when the number is too big" # Expected warning to match: /warning: in a\*\*b, b may be too big/ but got: ""
9
- fails "Integer#pow one argument is passed fixnum returns Float::INFINITY when the number is too big" # Expected warning to match: /warning: in a\*\*b, b may be too big/ but got: ""
4
+ fails "Constant resolution within methods with dynamically assigned constants returns the updated value when a constant is reassigned" # Expected warning to match: /already initialized constant/ but got: ""
5
+ fails "Hash#fetch gives precedence to the default block over the default argument when passed both" # Expected warning to match: /block supersedes default value argument/ but got: ""
10
6
  fails "Kernel#=~ is deprecated" # Expected warning to match: /deprecated Object#=~ is called on Object/ but got: ""
11
- fails "Literal (A::X) constant resolution with dynamically assigned constants returns the updated value when a constant is reassigned" # Expected warning to match: /already initialized constant/
12
- fails "Literal Regexps matches against $_ (last input) in a conditional if no explicit matchee provided" # Expected warning to match: /regex literal in condition/
13
- fails "Module#const_get with dynamically assigned constants returns the updated value of a constant" # Expected warning to match: /already initialized constant/
7
+ fails "Literal (A::X) constant resolution with dynamically assigned constants returns the updated value when a constant is reassigned" # Expected warning to match: /already initialized constant/ but got: ""
8
+ fails "Literal Regexps matches against $_ (last input) in a conditional if no explicit matchee provided" # Expected warning to match: /regex literal in condition/ but got: ""
9
+ fails "Module#const_get with dynamically assigned constants returns the updated value of a constant" # Expected warning to match: /already initialized constant/ but got: ""
14
10
  fails "Pattern matching warning when one-line form does not warn about pattern matching is experimental feature" # NameError: uninitialized constant Warning
15
11
  fails "Predefined global $, warns if assigned non-nil" # Expected warning to match: /warning: `\$,' is deprecated/ but got: ""
16
12
  fails "Predefined global $; warns if assigned non-nil" # Expected warning to match: /warning: `\$;' is deprecated/ but got: ""
17
- fails "Regexp.new given a Regexp does not honour options given as additional arguments" # Expected warning to match: /flags ignored/
18
- fails "Struct.new overwrites previously defined constants with string as first argument" # Expected warning to match: /redefining constant/
19
- fails "The for expression allows a constant as an iterator name" # Expected warning to match: /already initialized constant/
13
+ fails "Regexp.new given a Regexp does not honour options given as additional arguments" # Expected warning to match: /flags ignored/ but got: ""
14
+ fails "Struct.new overwrites previously defined constants with string as first argument" # Expected warning to match: /constant/ but got: ""
15
+ fails "The for expression allows a constant as an iterator name" # Expected warning to match: /already initialized constant/ but got: ""
20
16
  end
@@ -1,110 +1,27 @@
1
1
  # NOTE: run bin/format-filters after changing this file
2
2
  opal_unsupported_filter "Array" do
3
- fails "Array#* with a string with a tainted separator does not taint the result if the array has only one element"
4
- fails "Array#* with a string with a tainted separator does not taint the result if the array is empty"
5
- fails "Array#* with a string with a tainted separator taints the result if the array has two or more elements"
6
- fails "Array#* with a string with an untrusted separator does not untrust the result if the array has only one element"
7
- fails "Array#* with a string with an untrusted separator does not untrust the result if the array is empty"
8
- fails "Array#* with a string with an untrusted separator untrusts the result if the array has two or more elements"
9
- fails "Array#* with an integer copies the taint status of the original array even if the array is empty"
10
- fails "Array#* with an integer copies the taint status of the original array even if the passed count is 0"
11
- fails "Array#* with an integer copies the taint status of the original array if the passed count is not 0"
12
- fails "Array#* with an integer copies the untrusted status of the original array even if the array is empty"
13
- fails "Array#* with an integer copies the untrusted status of the original array even if the passed count is 0"
14
- fails "Array#* with an integer copies the untrusted status of the original array if the passed count is not 0"
15
- fails "Array#+ does not get infected even if an original array is tainted"
16
- fails "Array#+ does not infected even if an original array is untrusted"
17
- fails "Array#[] raises a RangeError when the length is out of range of Fixnum"
18
- fails "Array#[] raises a RangeError when the start index is out of range of Fixnum"
19
- fails "Array#clear keeps tainted status"
20
- fails "Array#clear keeps untrusted status"
21
- fails "Array#clone copies taint status from the original"
22
- fails "Array#clone copies untrusted status from the original"
23
- fails "Array#collect does not copy tainted status"
24
- fails "Array#collect does not copy untrusted status"
25
- fails "Array#collect! keeps tainted status"
26
- fails "Array#collect! keeps untrusted status"
27
- fails "Array#compact does not keep tainted status even if all elements are removed"
28
- fails "Array#compact does not keep untrusted status even if all elements are removed"
29
- fails "Array#compact! keeps tainted status even if all elements are removed"
30
- fails "Array#compact! keeps untrusted status even if all elements are removed"
31
- fails "Array#concat is not infected by the other"
32
- fails "Array#concat is not infected untrustedness by the other"
33
- fails "Array#concat keeps tainted status"
34
- fails "Array#concat keeps the tainted status of elements"
35
- fails "Array#concat keeps the untrusted status of elements"
36
- fails "Array#concat keeps untrusted status"
37
- fails "Array#delete keeps tainted status"
38
- fails "Array#delete keeps untrusted status"
39
- fails "Array#delete_at keeps tainted status"
40
- fails "Array#delete_at keeps untrusted status"
41
- fails "Array#delete_if keeps tainted status"
42
- fails "Array#delete_if keeps untrusted status"
43
- fails "Array#dup copies taint status from the original"
44
- fails "Array#dup copies untrusted status from the original"
45
- fails "Array#eql? returns false if any corresponding elements are not #eql?"
46
- fails "Array#fill does not replicate the filler"
47
- fails "Array#fill with (filler, index, length) raises an ArgumentError or RangeError for too-large sizes"
48
- fails "Array#first raises a RangeError when count is a Bignum"
49
- fails "Array#flatten returns a tainted array if self is tainted"
50
- fails "Array#flatten returns an untrusted array if self is untrusted"
51
- fails "Array#hash calls to_int on result of calling hash on each element"
52
- fails "Array#hash returns the same fixnum for arrays with the same content"
53
- fails "Array#initialize is private"
54
- fails "Array#inspect does not taint the result if the Array is tainted but empty"
55
- fails "Array#inspect does not untrust the result if the Array is untrusted but empty"
56
- fails "Array#inspect represents a recursive element with '[...]'"
57
- fails "Array#inspect taints the result if an element is tainted"
58
- fails "Array#inspect taints the result if the Array is non-empty and tainted"
59
- fails "Array#inspect untrusts the result if an element is untrusted"
60
- fails "Array#inspect untrusts the result if the Array is untrusted"
61
- fails "Array#inspect with encoding does not raise if inspected result is not default external encoding" # NoMethodError: undefined method `encode!' for "\"utf_16be あ\"":String
62
- fails "Array#inspect with encoding raises if inspected result is not default external encoding"
63
- fails "Array#inspect with encoding returns a US-ASCII string for an empty Array"
64
- fails "Array#inspect with encoding use US-ASCII encoding if the default external encoding is not ascii compatible"
65
- fails "Array#inspect with encoding use the default external encoding if it is ascii compatible"
66
- fails "Array#join does not taint the result if the Array is tainted but empty"
67
- fails "Array#join does not untrust the result if the Array is untrusted but empty"
68
- fails "Array#join fails for arrays with incompatibly-encoded strings"
69
- fails "Array#join returns a US-ASCII string for an empty Array"
70
- fails "Array#join taints the result if the Array is tainted and non-empty"
71
- fails "Array#join taints the result if the result of coercing an element is tainted"
72
- fails "Array#join untrusts the result if the Array is untrusted and non-empty"
73
- fails "Array#join untrusts the result if the result of coercing an element is untrusted"
74
- fails "Array#join uses the first encoding when other strings are compatible"
75
- fails "Array#join uses the widest common encoding when other strings are incompatible"
76
- fails "Array#join with a tainted separator does not taint the result if the array has only one element"
77
- fails "Array#join with a tainted separator does not taint the result if the array is empty"
78
- fails "Array#join with a tainted separator taints the result if the array has two or more elements"
79
- fails "Array#join with an untrusted separator does not untrust the result if the array has only one element"
80
- fails "Array#join with an untrusted separator does not untrust the result if the array is empty"
81
- fails "Array#join with an untrusted separator untrusts the result if the array has two or more elements"
82
- fails "Array#map does not copy tainted status"
83
- fails "Array#map does not copy untrusted status"
84
- fails "Array#map! keeps tainted status"
85
- fails "Array#map! keeps untrusted status"
86
- fails "Array#pop keeps taint status"
87
- fails "Array#pop keeps untrusted status"
88
- fails "Array#pop passed a number n as an argument keeps taint status"
89
- fails "Array#pop passed a number n as an argument keeps untrusted status"
90
- fails "Array#pop passed a number n as an argument returns a trusted array even if the array is untrusted"
91
- fails "Array#pop passed a number n as an argument returns an untainted array even if the array is tainted"
92
- fails "Array#shift passed a number n as an argument keeps taint status"
93
- fails "Array#shift passed a number n as an argument returns an untainted array even if the array is tainted"
94
- fails "Array#slice raises a RangeError when the length is out of range of Fixnum"
95
- fails "Array#slice raises a RangeError when the start index is out of range of Fixnum"
96
- fails "Array#to_s does not taint the result if the Array is tainted but empty"
97
- fails "Array#to_s does not untrust the result if the Array is untrusted but empty"
98
- fails "Array#to_s represents a recursive element with '[...]'"
99
- fails "Array#to_s taints the result if an element is tainted"
100
- fails "Array#to_s taints the result if the Array is non-empty and tainted"
101
- fails "Array#to_s untrusts the result if an element is untrusted"
102
- fails "Array#to_s untrusts the result if the Array is untrusted"
103
- fails "Array#to_s with encoding does not raise if inspected result is not default external encoding" # NoMethodError: undefined method `encode!' for "\"utf_16be あ\"":String
104
- fails "Array#to_s with encoding raises if inspected result is not default external encoding"
105
- fails "Array#to_s with encoding returns a US-ASCII string for an empty Array"
106
- fails "Array#to_s with encoding use US-ASCII encoding if the default external encoding is not ascii compatible"
107
- fails "Array#to_s with encoding use the default external encoding if it is ascii compatible"
108
- fails "Array#uniq compares elements with matching hash codes with #eql?" #RubySpec uses taint, which is not supported on Opal.
109
- fails "Array#uniq uses eql? semantics" #RubySpec expects 1.0 and 1 to be seen as different, which is not supported on Opal.
3
+ fails "Array#[] raises a RangeError when the length is out of range of Fixnum" # Expected RangeError but no exception was raised ([2, 3, 4, 5, 6] was returned)
4
+ fails "Array#[] raises a RangeError when the start index is out of range of Fixnum" # Expected RangeError but no exception was raised (nil was returned)
5
+ fails "Array#eql? returns false if any corresponding elements are not #eql?" # Expected [1, 2, 3, 4] not to have same value or type as [1, 2, 3, 4]
6
+ fails "Array#fill does not replicate the filler" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
7
+ fails "Array#first raises a RangeError when count is a Bignum" # Expected RangeError but no exception was raised ([] was returned)
8
+ fails "Array#hash calls to_int on result of calling hash on each element" # Expected "A,#<MockObject:0x876aa>" == "A,3" to be truthy but was false
9
+ fails "Array#hash returns the same fixnum for arrays with the same content" # Expected "A" (String) to be an instance of Integer
10
+ fails "Array#initialize is private" # Expected Array to have private instance method 'initialize' but it does not
11
+ fails "Array#inspect represents a recursive element with '[...]'" # Expected "[1, \"two\", 3, [...], [...], [...], [...], [...]]" == "[1, \"two\", 3.0, [...], [...], [...], [...], [...]]" to be truthy but was false
12
+ fails "Array#inspect with encoding does not raise if inspected result is not default external encoding" # Mock 'utf_16be' expected to receive inspect("any_args") exactly 1 times but received it 0 times
13
+ fails "Array#inspect with encoding returns a US-ASCII string for an empty Array" # Expected #<Encoding:UTF-8> == #<Encoding:US-ASCII> to be truthy but was false
14
+ fails "Array#inspect with encoding use US-ASCII encoding if the default external encoding is not ascii compatible" # ArgumentError: unknown encoding name - UTF-32
15
+ fails "Array#inspect with encoding use the default external encoding if it is ascii compatible" # ArgumentError: unknown encoding name - EUC-JP
16
+ fails "Array#join fails for arrays with incompatibly-encoded strings" # Expected EncodingError but no exception was raised ("barbázÿ" was returned)
17
+ fails "Array#join returns a US-ASCII string for an empty Array" # Expected #<Encoding:UTF-8> == #<Encoding:US-ASCII> to be truthy but was false
18
+ fails "Array#join uses the first encoding when other strings are compatible" # Expected #<Encoding:UTF-8> == #<Encoding:US-ASCII> to be truthy but was false
19
+ fails "Array#slice raises a RangeError when the length is out of range of Fixnum" # Expected RangeError but no exception was raised ([2, 3, 4, 5, 6] was returned)
20
+ fails "Array#slice raises a RangeError when the start index is out of range of Fixnum" # Expected RangeError but no exception was raised (nil was returned)
21
+ fails "Array#to_s represents a recursive element with '[...]'" # Expected "[1, \"two\", 3, [...], [...], [...], [...], [...]]" == "[1, \"two\", 3.0, [...], [...], [...], [...], [...]]" to be truthy but was false
22
+ fails "Array#to_s with encoding does not raise if inspected result is not default external encoding" # Mock 'utf_16be' expected to receive inspect("any_args") exactly 1 times but received it 0 times
23
+ fails "Array#to_s with encoding returns a US-ASCII string for an empty Array" # Expected #<Encoding:UTF-8> == #<Encoding:US-ASCII> to be truthy but was false
24
+ fails "Array#to_s with encoding use US-ASCII encoding if the default external encoding is not ascii compatible" # ArgumentError: unknown encoding name - UTF-32
25
+ fails "Array#to_s with encoding use the default external encoding if it is ascii compatible" # ArgumentError: unknown encoding name - EUC-JP
26
+ fails "Array#uniq uses eql? semantics" # Expected [1] == [1, 1] to be truthy but was false
110
27
  end
@@ -1,15 +1,15 @@
1
1
  # NOTE: run bin/format-filters after changing this file
2
2
  opal_unsupported_filter "BasicObject" do
3
- fails "BasicObject#method_missing for a Class raises a NoMethodError when a private method is called"
4
- fails "BasicObject#method_missing for a Class raises a NoMethodError when a protected method is called"
5
- fails "BasicObject#method_missing for a Class with #method_missing defined is called when an private method is called"
6
- fails "BasicObject#method_missing for a Class with #method_missing defined is called when an protected method is called"
7
- fails "BasicObject#method_missing for a Module raises a NoMethodError when a private method is called"
8
- fails "BasicObject#method_missing for a Module raises a NoMethodError when a protected method is called"
9
- fails "BasicObject#method_missing for a Module with #method_missing defined is called when a private method is called"
10
- fails "BasicObject#method_missing for a Module with #method_missing defined is called when a protected method is called"
11
- fails "BasicObject#method_missing for an instance raises a NoMethodError when a private method is called"
12
- fails "BasicObject#method_missing for an instance raises a NoMethodError when a protected method is called"
13
- fails "BasicObject#method_missing for an instance with #method_missing defined is called when an private method is called"
14
- fails "BasicObject#method_missing for an instance with #method_missing defined is called when an protected method is called"
3
+ fails "BasicObject#method_missing for a Class raises a NoMethodError when a private method is called" # Expected NoMethodError but no exception was raised ("class_private_method" was returned)
4
+ fails "BasicObject#method_missing for a Class raises a NoMethodError when a protected method is called" # Expected NoMethodError but no exception was raised ("class_private_method" was returned)
5
+ fails "BasicObject#method_missing for a Class with #method_missing defined is called when an private method is called" # Expected "class_private_method" == "class_method_missing" to be truthy but was false
6
+ fails "BasicObject#method_missing for a Class with #method_missing defined is called when an protected method is called" # Expected "class_private_method" == "class_method_missing" to be truthy but was false
7
+ fails "BasicObject#method_missing for a Module raises a NoMethodError when a private method is called" # Expected NoMethodError but no exception was raised ("module_private_method" was returned)
8
+ fails "BasicObject#method_missing for a Module raises a NoMethodError when a protected method is called" # Expected NoMethodError but no exception was raised ("module_private_method" was returned)
9
+ fails "BasicObject#method_missing for a Module with #method_missing defined is called when a private method is called" # Expected "module_private_method" == "module_method_missing" to be truthy but was false
10
+ fails "BasicObject#method_missing for a Module with #method_missing defined is called when a protected method is called" # Expected "module_private_method" == "module_method_missing" to be truthy but was false
11
+ fails "BasicObject#method_missing for an instance raises a NoMethodError when a private method is called" # Expected NoMethodError but no exception was raised ("instance_private_method" was returned)
12
+ fails "BasicObject#method_missing for an instance raises a NoMethodError when a protected method is called" # Expected NoMethodError but no exception was raised ("instance_private_method" was returned)
13
+ fails "BasicObject#method_missing for an instance with #method_missing defined is called when an private method is called" # Expected "instance_private_method" == "instance_method_missing" to be truthy but was false
14
+ fails "BasicObject#method_missing for an instance with #method_missing defined is called when an protected method is called" # Expected "instance_private_method" == "instance_method_missing" to be truthy but was false
15
15
  end
@@ -1,55 +1,30 @@
1
1
  # NOTE: run bin/format-filters after changing this file
2
2
  opal_unsupported_filter "Bignum" do
3
- fails "BasicObject#__id__ returns a different value for two Bignum literals"
4
- fails "Complex#== with Numeric returns true when self's imaginary part is 0 and the real part and other have numerical equality"
5
- fails "Complex#fdiv with an imaginary part sets the real part to self's real part fdiv'd with the argument"
6
- fails "Complex#fdiv with no imaginary part sets the real part to self's real part fdiv'd with the argument"
7
- fails "Complex#rect raises an ArgumentError if given any arguments"
8
- fails "Complex#rect returns a two-element Array"
9
- fails "Complex#rect returns an Array"
10
- fails "Complex#rect returns the imaginary part of self as the last element"
11
- fails "Complex#rect returns the real part of self as the first element"
12
- fails "Enumerable#first raises a RangeError when passed a Bignum"
13
- fails "Fixnum#& returns self bitwise AND a Bignum"
14
- fails "Fixnum#& returns self bitwise AND other"
15
- fails "Fixnum#* overflows to Bignum when the result does not fit in Fixnum"
16
- fails "Fixnum#** can raise -1 to a Bignum safely"
17
- fails "Fixnum#/ coerces fixnum and return self divided by other"
18
- fails "Fixnum#^ returns self bitwise EXCLUSIVE OR a Bignum"
19
- fails "Fixnum#^ returns self bitwise EXCLUSIVE OR other"
20
- fails "Fixnum#| returns self bitwise OR other"
21
- fails "Float#fdiv performs floating-point division between self and a Bignum"
22
- fails "Float#numerator converts self to a Rational object then returns its numerator"
23
- fails "Float#quo performs floating-point division between self and a Bignum"
24
- fails "Float#round returns rounded values for big values"
25
- fails "Integer#gcd accepts a Bignum argument"
26
- fails "Integer#gcd works if self is a Bignum"
27
- fails "Integer#gcdlcm accepts a Bignum argument"
28
- fails "Integer#gcdlcm works if self is a Bignum"
29
- fails "Integer#lcm accepts a Bignum argument"
30
- fails "Integer#lcm works if self is a Bignum"
31
- fails "Integer#odd? returns true when self is an odd number"
32
- fails "Integer#rationalize returns a Rational object"
33
- fails "Integer#rationalize uses 1 as the denominator"
34
- fails "Integer#rationalize uses self as the numerator"
35
- fails "Integer#round returns itself rounded if passed a negative value"
36
- fails "Integer#to_r works even if self is a Bignum"
37
- fails "Marshal.dump with a Bignum dumps a Bignum"
38
- fails "Marshal.load for a Integer loads an Integer -2361183241434822606847"
39
- fails "Marshal.load for a Integer loads an Integer 2361183241434822606847"
40
- fails "Marshal.load loads a Bignum 2**90"
41
- fails "Numeric#denominator returns 1"
42
- fails "Numeric#numerator converts self to a Rational object then returns its numerator"
43
- fails "Numeric#quo raises a ZeroDivisionError when the given Integer is 0"
44
- fails "Random#rand with Bignum typically returns a Bignum"
45
- fails "Random.new uses a random seed value if none is supplied"
46
- fails "Random.new_seed returns a Bignum"
47
- fails "Rational#** when passed Bignum raises ZeroDivisionError when self is Rational(0) and the exponent is negative"
48
- fails "Rational#** when passed Bignum returns 0.0 when self is < -1 and the exponent is negative"
49
- fails "Rational#** when passed Bignum returns 0.0 when self is > 1 and the exponent is negative"
50
- fails "Rational#** when passed Bignum returns Rational(-1) when self is Rational(-1) and the exponent is positive and odd"
51
- fails "Rational#** when passed Bignum returns Rational(1) when self is Rational(-1) and the exponent is positive and even"
52
- fails "Rational#** when passed Bignum returns positive Infinity when self < -1"
53
- fails "Rational#** when passed Bignum returns positive Infinity when self is > 1"
54
- fails "Rational#round with a precision > 0 doesn't fail when rounding to an absurdly large positive precision"
3
+ fails "BasicObject#__id__ returns a different value for two Bignum literals" # Expected 4e+100 == 4e+100 to be falsy but was true
4
+ fails "Complex#== with Numeric returns true when self's imaginary part is 0 and the real part and other have numerical equality" # Expected (18446744073709552000+0i) == 18446744073709552000 to be falsy but was true
5
+ fails "Complex#fdiv with an imaginary part sets the real part to self's real part fdiv'd with the argument" # Expected (9223372036854776000/5) == 1844674407370955300 to be truthy but was false
6
+ fails "Complex#fdiv with no imaginary part sets the real part to self's real part fdiv'd with the argument" # Expected (9223372036854776000/5) == 1844674407370955300 to be truthy but was false
7
+ fails "Enumerable#first raises a RangeError when passed a Bignum" # Expected RangeError but no exception was raised ([] was returned)
8
+ fails "Float#round returns rounded values for big values" # Expected 0 to have same value and type as 200000000000000000000
9
+ fails "Integer#gcd accepts a Bignum argument" # Expected Infinity (Number) to be kind of Integer
10
+ fails "Integer#gcd works if self is a Bignum" # Expected Infinity (Number) to be kind of Integer
11
+ fails "Integer#gcdlcm accepts a Bignum argument" # Expected Infinity (Number) to be kind of Integer
12
+ fails "Integer#gcdlcm works if self is a Bignum" # Expected Infinity (Number) to be kind of Integer
13
+ fails "Integer#lcm accepts a Bignum argument" # Expected Infinity (Number) to be kind of Integer
14
+ fails "Integer#lcm works if self is a Bignum" # Expected Infinity (Number) to be kind of Integer
15
+ fails "Integer#rationalize returns a Rational object" # FloatDomainError: Infinity
16
+ fails "Integer#rationalize uses 1 as the denominator" # FloatDomainError: Infinity
17
+ fails "Integer#rationalize uses self as the numerator" # FloatDomainError: Infinity
18
+ fails "Integer#round returns itself rounded if passed a negative value" # Expected 0 to have same value and type as 1.9999999999999998e+71
19
+ fails "Integer#to_r works even if self is a Bignum" # Expected Infinity (Number) to be an instance of Integer
20
+ fails "Marshal.dump with a Bignum dumps a Bignum" # Expected "\x04\bl-\tÿÿÿÿÿÿÿ?" to be computed by Marshal.dump from -4611686018427388000 (computed "\x04\bl-\t\x00\x00\x00\x00\x00\x00\x00@" instead)
21
+ fails "Numeric#numerator converts self to a Rational object then returns its numerator" # Exception: Maximum call stack size exceeded
22
+ fails "Numeric#quo raises a ZeroDivisionError when the given Integer is 0" # Expected ZeroDivisionError but no exception was raised (NaN was returned)
23
+ fails "Rational#** when passed Bignum raises ZeroDivisionError when self is Rational(0) and the exponent is negative" # Expected ZeroDivisionError but no exception was raised (Infinity was returned)
24
+ fails "Rational#** when passed Bignum returns 0.0 when self is < -1 and the exponent is negative" # Exception: Maximum call stack size exceeded
25
+ fails "Rational#** when passed Bignum returns 0.0 when self is > 1 and the exponent is negative" # Exception: Maximum call stack size exceeded
26
+ fails "Rational#** when passed Bignum returns Rational(-1) when self is Rational(-1) and the exponent is positive and odd" # Expected (1/1) to have same value and type as (-1/1)
27
+ fails "Rational#** when passed Bignum returns positive Infinity when self < -1" # Exception: Maximum call stack size exceeded
28
+ fails "Rational#** when passed Bignum returns positive Infinity when self is > 1" # Exception: Maximum call stack size exceeded
29
+ fails "Rational#round with a precision > 0 doesn't fail when rounding to an absurdly large positive precision" # FloatDomainError: Infinity
55
30
  end
@@ -1,5 +1,4 @@
1
1
  # NOTE: run bin/format-filters after changing this file
2
2
  opal_unsupported_filter "Class" do
3
- fails "Class#initialize is private"
4
- fails "Class.inherited is called when marked as a public class method"
3
+ fails "Class#initialize is private" # Expected Class to have private method 'initialize' but it does not
5
4
  end
@@ -1,6 +1,6 @@
1
1
  # NOTE: run bin/format-filters after changing this file
2
2
  opal_unsupported_filter "Delegator" do
3
- fails "SimpleDelegator.new doesn't forward private method calls even via send or __send__"
4
- fails "SimpleDelegator.new doesn't forward private method calls"
5
- fails "SimpleDelegator.new forwards protected method calls"
3
+ fails "SimpleDelegator.new doesn't forward private method calls even via send or __send__" # Expected NoMethodError but no exception was raised (["priv", 42] was returned)
4
+ fails "SimpleDelegator.new doesn't forward private method calls" # Expected NoMethodError but no exception was raised (["priv", nil] was returned)
5
+ fails "SimpleDelegator.new forwards protected method calls" # Expected NoMethodError but no exception was raised ("protected" was returned)
6
6
  end
@@ -1,12 +1,5 @@
1
1
  # NOTE: run bin/format-filters after changing this file
2
2
  opal_unsupported_filter "Enumerable" do
3
- fails "Enumerable#chunk does not return elements for which the block returns :_separator"
4
- fails "Enumerable#chunk raises a RuntimeError if the block returns a Symbol starting with an underscore other than :_alone or :_separator"
5
- fails "Enumerable#chunk with [initial_state] yields an element and an object value-equal but not identical to the object passed to #chunk"
6
- fails "Enumerable#entries returns a tainted array if self is tainted"
7
- fails "Enumerable#entries returns an untrusted array if self is untrusted"
8
- fails "Enumerable#group_by returns a tainted hash if self is tainted"
9
- fails "Enumerable#group_by returns an untrusted hash if self is untrusted"
10
- fails "Enumerable#to_a returns a tainted array if self is tainted"
11
- fails "Enumerable#to_a returns an untrusted array if self is untrusted"
3
+ fails "Enumerable#chunk does not return elements for which the block returns :_separator" # Expected [[1, [1]], ["_separator", [2]], [1, [3, 3]], ["_separator", [2]], [1, [1]]] == [[1, [1]], [1, [3, 3]], [1, [1]]] to be truthy but was false
4
+ fails "Enumerable#chunk raises a RuntimeError if the block returns a Symbol starting with an underscore other than :_alone or :_separator" # Expected RuntimeError but no exception was raised ([["_arbitrary", [1, 2, 3, 2, 1]]] was returned)
12
5
  end
@@ -1,14 +1,5 @@
1
1
  # NOTE: run bin/format-filters after changing this file
2
2
  opal_unsupported_filter "Enumerator" do
3
- fails "Enumerator#next cannot be called again until the enumerator is rewound"
4
- fails "Enumerator#next raises a StopIteration exception at the end of the stream"
5
- fails "Enumerator#next returns the next element of the enumeration"
6
- fails "Enumerator#rewind calls the enclosed object's rewind method if one exists"
7
- fails "Enumerator#rewind clears a pending #feed value"
8
- fails "Enumerator#rewind does nothing if the object doesn't have a #rewind method"
9
- fails "Enumerator#rewind has no effect if called multiple, consecutive times"
10
- fails "Enumerator#rewind has no effect on a new enumerator"
11
- fails "Enumerator#rewind resets the enumerator to its initial state"
12
- fails "Enumerator#rewind returns self"
13
- fails "Enumerator#rewind works with peek to reset the position"
3
+ fails "Enumerator#rewind calls the enclosed object's rewind method if one exists" # Mock 'rewinder' expected to receive rewind("any_args") exactly 1 times but received it 0 times
4
+ fails "Enumerator#rewind clears a pending #feed value" # NotImplementedError: Opal doesn't support Enumerator#feed
14
5
  end
@@ -1,4 +1,4 @@
1
1
  # NOTE: run bin/format-filters after changing this file
2
2
  opal_unsupported_filter "File" do
3
- fails "File.join doesn't mutate the object when calling #to_str"
3
+ fails "File.join doesn't mutate the object when calling #to_str" # Mock 'usr' expected to receive to_str("any_args") exactly 1 times but received it 0 times
4
4
  end
@@ -1,50 +1,31 @@
1
1
  # NOTE: run bin/format-filters after changing this file
2
2
  opal_unsupported_filter "Float" do
3
- fails "BasicObject#__id__ returns a different value for two Float literals"
4
- fails "Complex#/ with Fixnum raises a ZeroDivisionError when given zero"
5
- fails "Complex#eql? returns false when the imaginary parts are of different classes"
6
- fails "Complex#eql? returns false when the real parts are of different classes"
7
- fails "Complex#quo with Fixnum raises a ZeroDivisionError when given zero"
8
- fails "Complex#rationalize raises RangeError if self has 0.0 imaginary part"
9
- fails "Complex#to_f when the imaginary part is Float 0.0 raises RangeError"
10
- fails "Complex#to_i when the imaginary part is Float 0.0 raises RangeError"
11
- fails "Complex#to_r when the imaginary part is Float 0.0 raises RangeError"
12
- fails "Complex#to_s returns 1+0.0i for Complex(1, 0.0)"
13
- fails "Complex#to_s returns 1-0.0i for Complex(1, -0.0)"
14
- fails "Fixnum#% raises a ZeroDivisionError when the given argument is 0 and a Float"
15
- fails "Fixnum#% raises a ZeroDivisionError when the given argument is 0"
16
- fails "Fixnum#& raises a TypeError when passed a Float"
17
- fails "Fixnum#/ raises a ZeroDivisionError if the given argument is zero and not a Float"
18
- fails "Fixnum#/ returns self divided by the given argument"
19
- fails "Fixnum#/ supports dividing negative numbers"
20
- fails "Fixnum#^ raises a TypeError when passed a Float"
21
- fails "Fixnum#coerce when given a String returns an array containing two Floats"
22
- fails "Fixnum#div coerces self and the given argument to Floats and returns self divided by other as Fixnum"
23
- fails "Fixnum#divmod raises a TypeError when given a non-Integer"
24
- fails "Fixnum#| raises a TypeError when passed a Float"
25
- fails "Float constant MAX_10_EXP is 308"
26
- fails "Float constant MAX_EXP is 1024"
27
- fails "Float constant MIN is 2.2250738585072e-308"
28
- fails "Float constant MIN_10_EXP is -308"
29
- fails "Float constant MIN_EXP is -1021"
30
- fails "Float#<=> returns -1 when self is -Infinity and other is negative" # Expected 0 == -1
31
- fails "Float#<=> returns 1 when self is Infinity and other is an Integer" # Expected 0 == 1
32
- fails "Float#<=> returns 1 when self is negative and other is -Infinity" # Expected 0 == 1
33
- fails "Float#coerce returns [other, self] both as Floats"
34
- fails "Float#eql? returns false if other is not a Float"
35
- fails "Float#to_s emits '-' for -0.0"
36
- fails "Float#to_s emits a trailing '.0' for a whole number"
37
- fails "Float#to_s emits a trailing '.0' for the mantissa in e format"
38
- fails "Float#to_s returns '0.0' for 0.0"
39
- fails "Math.gamma returns approximately (n-1)! given n for n between 24 and 30" # precision error
40
- fails "Numeric#step with keyword arguments when no block is given returned Enumerator size when self, stop or step is a Float and step is positive returns the difference between self and stop divided by the number of steps"
41
- fails "Numeric#step with mixed arguments when no block is given returned Enumerator size when self, stop or step is a Float and step is positive returns the difference between self and stop divided by the number of steps"
42
- fails "Numeric#step with positional args when no block is given returned Enumerator size when self, stop or step is a Float and step is positive returns the difference between self and stop divided by the number of steps"
43
- fails "Rational#% returns a Float value when the argument is Float"
44
- fails "Rational#** raises ZeroDivisionError for Rational(0, 1) passed a negative Integer"
45
- fails "Rational#** when passed Integer returns the Rational value of self raised to the passed argument"
46
- fails "Rational#/ when passed an Integer raises a ZeroDivisionError when passed 0"
47
- fails "Rational#coerce returns the passed argument, self as Float, when given a Float"
48
- fails "Rational#divmod when passed an Integer returns the quotient as Integer and the remainder as Rational"
49
- fails "Struct#eql? returns false if any corresponding elements are not #eql?" # Rubyspec uses 1.eql?(1.0) which always returns true in compiled JS
3
+ fails "Complex#/ with Fixnum raises a ZeroDivisionError when given zero" # Expected ZeroDivisionError but no exception was raised ((Infinity+Infinity*i) was returned)
4
+ fails "Complex#eql? returns false when the imaginary parts are of different classes" # Expected true to be false
5
+ fails "Complex#eql? returns false when the real parts are of different classes" # Expected true to be false
6
+ fails "Complex#quo with Fixnum raises a ZeroDivisionError when given zero" # Expected ZeroDivisionError but no exception was raised ((Infinity+Infinity*i) was returned)
7
+ fails "Complex#rationalize raises RangeError if self has 0.0 imaginary part" # Expected RangeError but no exception was raised ((1/1) was returned)
8
+ fails "Complex#to_f when the imaginary part is Float 0.0 raises RangeError" # Expected RangeError but no exception was raised (0 was returned)
9
+ fails "Complex#to_i when the imaginary part is Float 0.0 raises RangeError" # Expected RangeError but no exception was raised (0 was returned)
10
+ fails "Complex#to_r when the imaginary part is Float 0.0 raises RangeError" # Expected RangeError but no exception was raised ((0/1) was returned)
11
+ fails "Complex#to_s returns 1+0.0i for Complex(1, 0.0)" # Expected "1+0i" == "1+0.0i" to be truthy but was false
12
+ fails "Complex#to_s returns 1-0.0i for Complex(1, -0.0)" # Expected "1+0i" == "1-0.0i" to be truthy but was false
13
+ fails "Float constant MAX_10_EXP is 308" # NameError: uninitialized constant Float::MAX_10_EXP
14
+ fails "Float constant MAX_EXP is 1024" # NameError: uninitialized constant Float::MAX_EXP
15
+ fails "Float constant MIN_10_EXP is -308" # NameError: uninitialized constant Float::MIN_10_EXP
16
+ fails "Float constant MIN_EXP is -1021" # NameError: uninitialized constant Float::MIN_EXP
17
+ fails "Float#<=> returns -1 when self is -Infinity and other is negative" # Expected 0 == -1 to be truthy but was false
18
+ fails "Float#<=> returns 1 when self is Infinity and other is an Integer" # Expected 0 == 1 to be truthy but was false
19
+ fails "Float#<=> returns 1 when self is negative and other is -Infinity" # Expected 0 == 1 to be truthy but was false
20
+ fails "Float#eql? returns false if other is not a Float" # Expected true to be false
21
+ fails "Float#to_s emits a trailing '.0' for a whole number" # Expected "50" == "50.0" to be truthy but was false
22
+ fails "Float#to_s emits a trailing '.0' for the mantissa in e format" # Expected "100000000000000000000" == "1.0e+20" to be truthy but was false
23
+ fails "Float#to_s returns '0.0' for 0.0" # Expected "0" == "0.0" to be truthy but was false
24
+ fails "Math.gamma returns approximately (n-1)! given n for n between 24 and 30" # Expected 1.5511210043330984e+25 to be within 1.5511210043330986e+25 +/- 330986
25
+ fails "Rational#% returns a Float value when the argument is Float" # Expected (3/4) (Rational) to be kind of Float
26
+ fails "Rational#** raises ZeroDivisionError for Rational(0, 1) passed a negative Integer" # Expected ZeroDivisionError (divided by 0) but no exception was raised (Infinity was returned)
27
+ fails "Rational#/ when passed an Integer raises a ZeroDivisionError when passed 0" # Expected ZeroDivisionError but no exception was raised (Infinity was returned)
28
+ fails "Rational#coerce returns the passed argument, self as Float, when given a Float" # Expected false to be true
29
+ fails "Rational#divmod when passed an Integer returns the quotient as Integer and the remainder as Rational" # Expected [1537228672809129200, (0/1)] to have same value and type as [1537228672809129200, (1/1)]
30
+ fails "Struct#eql? returns false if any corresponding elements are not #eql?" # Expected #<struct StructClasses::Car make="Honda", model="Accord", year=1998> not to have same value or type as #<struct StructClasses::Car make="Honda", model="Accord", year=1998>
50
31
  end
@@ -1,19 +1,13 @@
1
1
  # NOTE: run bin/format-filters after changing this file
2
2
  opal_unsupported_filter "Hash" do
3
- fails "Hash#[]= duplicates and freezes string keys"
3
+ fails "Hash#[]= duplicates and freezes string keys" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
4
4
  fails "Hash#[]= duplicates string keys using dup semantics" # TypeError: can't define singleton
5
- fails "Hash#assoc only returns the first matching key-value pair for identity hashes"
6
- fails "Hash#initialize is private"
7
- fails "Hash#inspect does not raise if inspected result is not default external encoding" # Mock 'utf_16be' expected to receive 'inspect' exactly 1 times but received it 0 times
8
- fails "Hash#inspect returns a tainted string if self is tainted and not empty"
9
- fails "Hash#inspect returns an untrusted string if self is untrusted and not empty"
10
- fails "Hash#store duplicates and freezes string keys"
5
+ fails "Hash#assoc only returns the first matching key-value pair for identity hashes" # Expected 1 == 2 to be truthy but was false
6
+ fails "Hash#initialize is private" # Expected Hash to have private instance method 'initialize' but it does not
7
+ fails "Hash#inspect does not raise if inspected result is not default external encoding" # Mock 'utf_16be' expected to receive inspect("any_args") exactly 1 times but received it 0 times
8
+ fails "Hash#store duplicates and freezes string keys" # NotImplementedError: String#<< not supported. Mutable String methods are not supported in Opal.
11
9
  fails "Hash#store duplicates string keys using dup semantics" # TypeError: can't define singleton
12
- fails "Hash#to_a returns a tainted array if self is tainted"
13
- fails "Hash#to_a returns an untrusted array if self is untrusted"
14
- fails "Hash#to_proc the returned proc passed as a block to instance_exec always retrieves the original hash's values"
15
- fails "Hash#to_proc the returned proc raises ArgumentError if not passed exactly one argument"
16
- fails "Hash#to_s does not raise if inspected result is not default external encoding" # Mock 'utf_16be' expected to receive 'inspect' exactly 1 times but received it 0 times
17
- fails "Hash#to_s returns a tainted string if self is tainted and not empty"
18
- fails "Hash#to_s returns an untrusted string if self is untrusted and not empty"
10
+ fails "Hash#to_proc the returned proc passed as a block to instance_exec always retrieves the original hash's values" # Expected nil == 1 to be truthy but was false
11
+ fails "Hash#to_proc the returned proc raises ArgumentError if not passed exactly one argument" # Expected ArgumentError but no exception was raised (nil was returned)
12
+ fails "Hash#to_s does not raise if inspected result is not default external encoding" # Mock 'utf_16be' expected to receive inspect("any_args") exactly 1 times but received it 0 times
19
13
  end