opal 1.6.1 → 1.7.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (212) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +17 -0
  3. data/Gemfile +1 -0
  4. data/HACKING.md +47 -26
  5. data/UNRELEASED.md +28 -0
  6. data/benchmark/benchmarks +415 -103
  7. data/benchmark/bm_call_overhead.yml +28 -0
  8. data/benchmark/run.rb +61 -40
  9. data/docs/cdp_common.json +3364 -0
  10. data/docs/cdp_common.md +18 -0
  11. data/docs/{headless_chrome.md → headless_browsers.md} +31 -12
  12. data/lib/opal/ast/builder.rb +1 -1
  13. data/lib/opal/builder.rb +6 -1
  14. data/lib/opal/builder_processors.rb +5 -3
  15. data/lib/opal/cache.rb +1 -7
  16. data/lib/opal/cli_options.rb +72 -58
  17. data/lib/opal/cli_runners/chrome.rb +47 -9
  18. data/lib/opal/cli_runners/chrome_cdp_interface.rb +238 -112
  19. data/lib/opal/cli_runners/compiler.rb +146 -13
  20. data/lib/opal/cli_runners/deno.rb +32 -0
  21. data/lib/opal/cli_runners/firefox.rb +350 -0
  22. data/lib/opal/cli_runners/firefox_cdp_interface.rb +212 -0
  23. data/lib/opal/cli_runners/node_modules/.bin/chrome-remote-interface.cmd +17 -0
  24. data/lib/opal/cli_runners/node_modules/.bin/chrome-remote-interface.ps1 +28 -0
  25. data/lib/opal/cli_runners/node_modules/.package-lock.json +41 -0
  26. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/LICENSE +1 -1
  27. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/README.md +322 -182
  28. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/bin/client.js +99 -114
  29. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/chrome-remote-interface.js +1 -11
  30. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/index.js +16 -11
  31. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/api.js +41 -33
  32. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/chrome.js +224 -214
  33. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/devtools.js +71 -191
  34. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/external-request.js +26 -6
  35. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/protocol.json +20788 -9049
  36. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/websocket-wrapper.js +10 -3
  37. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/package.json +59 -123
  38. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/webpack.config.js +25 -32
  39. data/lib/opal/cli_runners/node_modules/commander/History.md +298 -0
  40. data/lib/opal/cli_runners/node_modules/commander/LICENSE +22 -0
  41. data/lib/opal/cli_runners/node_modules/commander/Readme.md +217 -61
  42. data/lib/opal/cli_runners/node_modules/commander/index.js +431 -145
  43. data/lib/opal/cli_runners/node_modules/commander/package.json +16 -79
  44. data/lib/opal/cli_runners/node_modules/ws/README.md +334 -98
  45. data/lib/opal/cli_runners/node_modules/ws/browser.js +8 -0
  46. data/lib/opal/cli_runners/node_modules/ws/index.js +5 -10
  47. data/lib/opal/cli_runners/node_modules/ws/lib/buffer-util.js +129 -0
  48. data/lib/opal/cli_runners/node_modules/ws/lib/constants.js +10 -0
  49. data/lib/opal/cli_runners/node_modules/ws/lib/event-target.js +184 -0
  50. data/lib/opal/cli_runners/node_modules/ws/lib/extension.js +223 -0
  51. data/lib/opal/cli_runners/node_modules/ws/lib/limiter.js +55 -0
  52. data/lib/opal/cli_runners/node_modules/ws/lib/permessage-deflate.js +518 -0
  53. data/lib/opal/cli_runners/node_modules/ws/lib/receiver.js +607 -0
  54. data/lib/opal/cli_runners/node_modules/ws/lib/sender.js +409 -0
  55. data/lib/opal/cli_runners/node_modules/ws/lib/stream.js +180 -0
  56. data/lib/opal/cli_runners/node_modules/ws/lib/validation.js +104 -0
  57. data/lib/opal/cli_runners/node_modules/ws/lib/websocket-server.js +447 -0
  58. data/lib/opal/cli_runners/node_modules/ws/lib/websocket.js +1195 -0
  59. data/lib/opal/cli_runners/node_modules/ws/package.json +40 -106
  60. data/lib/opal/cli_runners/package-lock.json +62 -0
  61. data/lib/opal/cli_runners/package.json +1 -1
  62. data/lib/opal/cli_runners.rb +26 -4
  63. data/lib/opal/nodes/args/prepare_post_args.rb +2 -2
  64. data/lib/opal/nodes/def.rb +8 -8
  65. data/lib/opal/nodes/iter.rb +12 -12
  66. data/lib/opal/nodes/logic.rb +1 -1
  67. data/lib/opal/nodes/masgn.rb +2 -2
  68. data/lib/opal/parser/with_ruby_lexer.rb +1 -1
  69. data/lib/opal/paths.rb +14 -0
  70. data/lib/opal/rewriter.rb +2 -0
  71. data/lib/opal/rewriters/forward_args.rb +52 -4
  72. data/lib/opal/rewriters/targeted_patches.rb +94 -0
  73. data/lib/opal/version.rb +1 -1
  74. data/opal/corelib/basic_object.rb +1 -1
  75. data/opal/corelib/boolean.rb +2 -2
  76. data/opal/corelib/class.rb +11 -0
  77. data/opal/corelib/constants.rb +3 -3
  78. data/opal/corelib/enumerable.rb +4 -0
  79. data/opal/corelib/enumerator.rb +1 -1
  80. data/opal/corelib/hash.rb +2 -2
  81. data/opal/corelib/helpers.rb +1 -1
  82. data/opal/corelib/kernel.rb +3 -3
  83. data/opal/corelib/method.rb +1 -1
  84. data/opal/corelib/module.rb +29 -8
  85. data/opal/corelib/proc.rb +7 -5
  86. data/opal/corelib/runtime.js +141 -78
  87. data/opal/corelib/set.rb +252 -0
  88. data/opal/corelib/string.rb +2 -1
  89. data/opal/corelib/time.rb +2 -2
  90. data/opal/opal.rb +1 -0
  91. data/opal.gemspec +1 -0
  92. data/spec/filters/bugs/array.rb +22 -13
  93. data/spec/filters/bugs/base64.rb +5 -5
  94. data/spec/filters/bugs/basicobject.rb +16 -8
  95. data/spec/filters/bugs/bigdecimal.rb +161 -160
  96. data/spec/filters/bugs/binding.rb +10 -10
  97. data/spec/filters/bugs/class.rb +8 -8
  98. data/spec/filters/bugs/complex.rb +2 -1
  99. data/spec/filters/bugs/date.rb +79 -81
  100. data/spec/filters/bugs/datetime.rb +29 -29
  101. data/spec/filters/bugs/delegate.rb +1 -3
  102. data/spec/filters/bugs/encoding.rb +69 -69
  103. data/spec/filters/bugs/enumerable.rb +22 -20
  104. data/spec/filters/bugs/enumerator.rb +88 -85
  105. data/spec/filters/bugs/exception.rb +46 -40
  106. data/spec/filters/bugs/file.rb +32 -32
  107. data/spec/filters/bugs/float.rb +26 -21
  108. data/spec/filters/bugs/freeze.rb +88 -0
  109. data/spec/filters/bugs/hash.rb +39 -38
  110. data/spec/filters/bugs/integer.rb +57 -44
  111. data/spec/filters/bugs/io.rb +1 -1
  112. data/spec/filters/bugs/kernel.rb +349 -269
  113. data/spec/filters/bugs/language.rb +220 -188
  114. data/spec/filters/bugs/main.rb +5 -3
  115. data/spec/filters/bugs/marshal.rb +38 -38
  116. data/spec/filters/bugs/math.rb +2 -1
  117. data/spec/filters/bugs/method.rb +73 -62
  118. data/spec/filters/bugs/module.rb +163 -143
  119. data/spec/filters/bugs/numeric.rb +6 -6
  120. data/spec/filters/bugs/objectspace.rb +16 -16
  121. data/spec/filters/bugs/openstruct.rb +1 -1
  122. data/spec/filters/bugs/pack_unpack.rb +51 -51
  123. data/spec/filters/bugs/pathname.rb +7 -7
  124. data/spec/filters/bugs/proc.rb +63 -63
  125. data/spec/filters/bugs/random.rb +7 -6
  126. data/spec/filters/bugs/range.rb +12 -9
  127. data/spec/filters/bugs/rational.rb +8 -7
  128. data/spec/filters/bugs/regexp.rb +49 -48
  129. data/spec/filters/bugs/ruby-32.rb +56 -0
  130. data/spec/filters/bugs/set.rb +30 -30
  131. data/spec/filters/bugs/singleton.rb +4 -4
  132. data/spec/filters/bugs/string.rb +187 -99
  133. data/spec/filters/bugs/stringio.rb +7 -0
  134. data/spec/filters/bugs/stringscanner.rb +68 -68
  135. data/spec/filters/bugs/struct.rb +11 -9
  136. data/spec/filters/bugs/symbol.rb +1 -1
  137. data/spec/filters/bugs/time.rb +78 -63
  138. data/spec/filters/bugs/trace_point.rb +4 -4
  139. data/spec/filters/bugs/unboundmethod.rb +32 -17
  140. data/spec/filters/bugs/warnings.rb +8 -12
  141. data/spec/filters/unsupported/array.rb +24 -107
  142. data/spec/filters/unsupported/basicobject.rb +12 -12
  143. data/spec/filters/unsupported/bignum.rb +27 -52
  144. data/spec/filters/unsupported/class.rb +1 -2
  145. data/spec/filters/unsupported/delegator.rb +3 -3
  146. data/spec/filters/unsupported/enumerable.rb +2 -9
  147. data/spec/filters/unsupported/enumerator.rb +2 -11
  148. data/spec/filters/unsupported/file.rb +1 -1
  149. data/spec/filters/unsupported/float.rb +28 -47
  150. data/spec/filters/unsupported/hash.rb +8 -14
  151. data/spec/filters/unsupported/integer.rb +75 -91
  152. data/spec/filters/unsupported/kernel.rb +17 -35
  153. data/spec/filters/unsupported/language.rb +11 -19
  154. data/spec/filters/unsupported/marshal.rb +22 -41
  155. data/spec/filters/unsupported/matchdata.rb +28 -52
  156. data/spec/filters/unsupported/math.rb +1 -1
  157. data/spec/filters/unsupported/privacy.rb +229 -285
  158. data/spec/filters/unsupported/range.rb +1 -5
  159. data/spec/filters/unsupported/regexp.rb +40 -66
  160. data/spec/filters/unsupported/set.rb +2 -2
  161. data/spec/filters/unsupported/singleton.rb +4 -4
  162. data/spec/filters/unsupported/string.rb +305 -508
  163. data/spec/filters/unsupported/struct.rb +3 -4
  164. data/spec/filters/unsupported/symbol.rb +15 -18
  165. data/spec/filters/unsupported/thread.rb +1 -7
  166. data/spec/filters/unsupported/time.rb +159 -202
  167. data/spec/filters/unsupported/usage_of_files.rb +170 -259
  168. data/spec/lib/builder_spec.rb +4 -4
  169. data/spec/lib/rewriters/forward_args_spec.rb +32 -12
  170. data/spec/mspec-opal/runner.rb +2 -0
  171. data/spec/ruby_specs +4 -0
  172. data/stdlib/deno/base.rb +28 -0
  173. data/stdlib/deno/file.rb +340 -0
  174. data/stdlib/{headless_chrome.rb → headless_browser/base.rb} +1 -1
  175. data/stdlib/headless_browser/file.rb +15 -0
  176. data/stdlib/headless_browser.rb +4 -0
  177. data/stdlib/native.rb +1 -1
  178. data/stdlib/nodejs/file.rb +5 -0
  179. data/stdlib/opal/platform.rb +8 -6
  180. data/stdlib/opal-platform.rb +14 -8
  181. data/stdlib/set.rb +1 -258
  182. data/tasks/benchmarking.rake +62 -19
  183. data/tasks/performance.rake +1 -1
  184. data/tasks/testing.rake +5 -3
  185. data/test/nodejs/test_file.rb +29 -10
  186. data/test/opal/http_server.rb +28 -11
  187. data/test/opal/unsupported_and_bugs.rb +2 -1
  188. metadata +91 -52
  189. data/lib/opal/cli_runners/node_modules/ultron/LICENSE +0 -22
  190. data/lib/opal/cli_runners/node_modules/ultron/index.js +0 -138
  191. data/lib/opal/cli_runners/node_modules/ultron/package.json +0 -112
  192. data/lib/opal/cli_runners/node_modules/ws/SECURITY.md +0 -33
  193. data/lib/opal/cli_runners/node_modules/ws/lib/BufferUtil.fallback.js +0 -56
  194. data/lib/opal/cli_runners/node_modules/ws/lib/BufferUtil.js +0 -15
  195. data/lib/opal/cli_runners/node_modules/ws/lib/ErrorCodes.js +0 -28
  196. data/lib/opal/cli_runners/node_modules/ws/lib/EventTarget.js +0 -158
  197. data/lib/opal/cli_runners/node_modules/ws/lib/Extensions.js +0 -69
  198. data/lib/opal/cli_runners/node_modules/ws/lib/PerMessageDeflate.js +0 -339
  199. data/lib/opal/cli_runners/node_modules/ws/lib/Receiver.js +0 -520
  200. data/lib/opal/cli_runners/node_modules/ws/lib/Sender.js +0 -438
  201. data/lib/opal/cli_runners/node_modules/ws/lib/Validation.fallback.js +0 -9
  202. data/lib/opal/cli_runners/node_modules/ws/lib/Validation.js +0 -17
  203. data/lib/opal/cli_runners/node_modules/ws/lib/WebSocket.js +0 -705
  204. data/lib/opal/cli_runners/node_modules/ws/lib/WebSocketServer.js +0 -336
  205. data/spec/filters/bugs/boolean.rb +0 -3
  206. data/spec/filters/bugs/matrix.rb +0 -3
  207. data/spec/filters/unsupported/fixnum.rb +0 -15
  208. data/spec/filters/unsupported/freeze.rb +0 -102
  209. data/spec/filters/unsupported/pathname.rb +0 -4
  210. data/spec/filters/unsupported/proc.rb +0 -4
  211. data/spec/filters/unsupported/random.rb +0 -5
  212. data/spec/filters/unsupported/taint.rb +0 -162
@@ -1,12 +1,12 @@
1
1
  # NOTE: run bin/format-filters after changing this file
2
2
  opal_filter "language" do
3
- fails "$LOAD_PATH.resolve_feature_path return nil if feature cannot be found" # NoMethodError: undefined method `resolve_feature_path' for ["foo"]
4
- fails "$LOAD_PATH.resolve_feature_path returns what will be loaded without actual loading, .rb file" # NoMethodError: undefined method `resolve_feature_path' for ["foo"]
5
- fails "$LOAD_PATH.resolve_feature_path returns what will be loaded without actual loading, .so file" # NoMethodError: undefined method `resolve_feature_path' for ["foo"]
3
+ fails "$LOAD_PATH.resolve_feature_path return nil if feature cannot be found" # NoMethodError: undefined method `resolve_feature_path' for []
4
+ fails "$LOAD_PATH.resolve_feature_path returns what will be loaded without actual loading, .rb file" # NoMethodError: undefined method `resolve_feature_path' for []
5
+ fails "$LOAD_PATH.resolve_feature_path returns what will be loaded without actual loading, .so file" # NoMethodError: undefined method `resolve_feature_path' for []
6
6
  fails "A Proc taking |*a, **kw| arguments does not autosplat keyword arguments" # Expected [[1], {"a"=>1}] == [[[1, {"a"=>1}]], {}] to be truthy but was false
7
- fails "A Symbol literal with invalid bytes raises an EncodingError at parse time" # Actually passes, the error comes from the difference between MRI's opal and compiled opal-parser
7
+ fails "A Symbol literal with invalid bytes raises an EncodingError at parse time" # Expected EncodingError (/invalid/) but no exception was raised ("Ã" was returned)
8
8
  fails "A block yielded a single Array assigns elements to mixed argument types" # Expected [1, 2, [], 3, 2, {"x"=>9}] == [1, 2, [3], {"x"=>9}, 2, {}] to be truthy but was false
9
- fails "A block yielded a single Array assigns elements to required arguments when a keyword rest argument is present"
9
+ fails "A block yielded a single Array autosplats single argument to required arguments when a keyword rest argument is present" # ArgumentError: expected kwargs
10
10
  fails "A block yielded a single Array does not call #to_hash on final argument to get keyword arguments and does not autosplat" # ArgumentError: expected kwargs
11
11
  fails "A block yielded a single Array does not call #to_hash on the argument when optional argument and keyword argument accepted and does not autosplat" # ArgumentError: expected kwargs
12
12
  fails "A block yielded a single Array does not call #to_hash on the last element if keyword arguments are present" # ArgumentError: expected kwargs
@@ -14,107 +14,130 @@ opal_filter "language" do
14
14
  fails "A block yielded a single Array does not treat final Hash as keyword arguments and does not autosplat" # Expected [nil, {"a"=>10}] == [[{"a"=>10}], {}] to be truthy but was false
15
15
  fails "A block yielded a single Array does not treat hashes with string keys as keyword arguments and does not autosplat" # Expected [nil, {"a"=>10}] == [[{"a"=>10}], {}] to be truthy but was false
16
16
  fails "A block yielded a single Array when non-symbol keys are in a keyword arguments Hash does not separate non-symbol keys and symbol keys and does not autosplat" # Expected [nil, {"a"=>10, "b"=>2}] == [[{"a"=>10, "b"=>2}], {}] to be truthy but was false
17
- fails "A class definition extending an object (sclass) can use return to cause the enclosing method to return"
18
- fails "A class definition extending an object (sclass) raises a TypeError when trying to extend numbers"
19
- fails "A class definition raises TypeError if any constant qualifying the class is not a Module"
20
- fails "A class definition raises TypeError if the constant qualifying the class is nil"
21
- fails "A class definition raises a TypeError if inheriting from a metaclass"
17
+ fails "A block yielded a single Object receives the object if it does not respond to #respond_to?" # NoMethodError: undefined method `respond_to?' for #<BasicObject:0x551e>
18
+ fails "A class definition extending an object (sclass) can use return to cause the enclosing method to return" # Expected "outer" == "inner" to be truthy but was false
19
+ fails "A class definition extending an object (sclass) raises a TypeError when trying to extend numbers" # Expected TypeError but got: Exception (Object.defineProperty called on non-object)
20
+ fails "A class definition raises TypeError if any constant qualifying the class is not a Module" # Expected TypeError but no exception was raised (nil was returned)
21
+ fails "A class definition raises TypeError if the constant qualifying the class is nil" # Expected TypeError but no exception was raised (nil was returned)
22
+ fails "A class definition raises a TypeError if inheriting from a metaclass" # Expected TypeError but no exception was raised (nil was returned)
22
23
  fails "A lambda expression 'lambda { ... }' assigns variables from parameters for definition '@a = lambda { |*, **k| k }'" # ArgumentError: expected kwargs
23
- fails "A lambda expression 'lambda { ... }' assigns variables from parameters for definition \n def m(a) yield a end\n def m2() yield end\n @a = lambda { |a, | a }"
24
- fails "A lambda expression 'lambda { ... }' requires a block"
25
- fails "A lambda expression 'lambda { ... }' with an implicit block raises ArgumentError" # Expected ArgumentError (/tried to create Proc object without a block/) but no exception was raised (nil was returned)
24
+ fails "A lambda expression 'lambda { ... }' assigns variables from parameters for definition \n def m(a) yield a end\n def m2() yield end\n @a = lambda { |a, | a }" # ArgumentError: `block in <main>': wrong number of arguments (given 2, expected 1)
25
+ fails "A lambda expression 'lambda { ... }' requires a block" # Expected ArgumentError but got: Exception (Cannot add property $$is_lambda, object is not extensible)
26
+ fails "A lambda expression 'lambda { ... }' with an implicit block raises ArgumentError" # Expected ArgumentError (/tried to create Proc object without a block/) but got: Exception (Cannot add property $$is_lambda, object is not extensible)
26
27
  fails "A lambda literal -> () { } assigns variables from parameters for definition '@a = -> (*, **k) { k }'" # ArgumentError: expected kwargs
27
- fails "A method assigns local variables from method parameters for definition 'def m() end'" # ArgumentError: [SpecEvaluate#m] wrong number of arguments(1 for 0)
28
- fails "A method assigns local variables from method parameters for definition 'def m(*a) a end'" # Expected [{}] to equal []
28
+ fails "A method assigns local variables from method parameters for definition 'def m() end'" # ArgumentError: [SpecEvaluate#m] wrong number of arguments (given 1, expected 0)
29
+ fails "A method assigns local variables from method parameters for definition 'def m(*a) a end'" # Expected [{}] == [] to be truthy but was false
29
30
  fails "A method assigns local variables from method parameters for definition 'def m(a, **) a end'" # Expected ArgumentError but no exception was raised ({"a"=>1, "b"=>2} was returned)
30
31
  fails "A method assigns local variables from method parameters for definition 'def m(a, **k) [a, k] end'" # Expected ArgumentError but no exception was raised ([{"a"=>1, "b"=>2}, {}] was returned)
31
- fails "A method assigns local variables from method parameters for definition 'def m(a, **nil); a end;'" # Opal::SyntaxError: Unsupported arg type kwnilarg
32
+ fails "A method assigns local variables from method parameters for definition 'def m(a, **nil); a end;'" # Expected ArgumentError but no exception was raised ({"a"=>1} was returned)
32
33
  fails "A method assigns local variables from method parameters for definition 'def m(a, b: 1) [a, b] end'" # Expected ArgumentError but no exception was raised ([{"a"=>1, "b"=>2}, 1] was returned)
33
- fails "A method assigns local variables from method parameters for definition 'def m(a:) a end'"
34
- fails "A method assigns local variables from method parameters for definition 'def m(a:, **k) [a, k] end'"
35
- fails "A method assigns local variables from method parameters for definition 'def m(a:, b: 1) [a, b] end'"
36
- fails "A method assigns local variables from method parameters for definition 'def m(a:, b:) [a, b] end'"
37
- fails "A method assigns local variables from method parameters for definition 'def m(a=1, b: 2) [a, b] end'"
38
- fails "A method assigns local variables from method parameters for definition 'def m(a=1, b:) [a, b] end'"
39
- fails "A method assigns local variables from method parameters for definition \n def m(a, b = nil, c = nil, d, e: nil, **f)\n [a, b, c, d, e, f]\n end" # Exception: Cannot read property '$$is_array' of undefined
40
- fails "A method assigns the last Hash to the last optional argument if the Hash contains non-Symbol keys and is not passed as keywords" # Exception: Object.defineProperty called on non-object
41
- fails "A method definition in an eval creates a class method"
42
- fails "A method definition in an eval creates an instance method"
34
+ fails "A method assigns local variables from method parameters for definition 'def m(a:) a end'" # Expected ArgumentError but no exception was raised (1 was returned)
35
+ fails "A method assigns local variables from method parameters for definition 'def m(a:, **k) [a, k] end'" # Expected [1, {"b"=>2}] == [1, {"a"=>1, "b"=>2}] to be truthy but was false
36
+ fails "A method assigns local variables from method parameters for definition 'def m(a:, b: 1) [a, b] end'" # Expected ArgumentError but no exception was raised ([1, 2] was returned)
37
+ fails "A method assigns local variables from method parameters for definition 'def m(a:, b:) [a, b] end'" # Expected ArgumentError but no exception was raised ([1, 2] was returned)
38
+ fails "A method assigns local variables from method parameters for definition 'def m(a=1, b: 2) [a, b] end'" # Expected ArgumentError but no exception was raised ([1, 2] was returned)
39
+ fails "A method assigns local variables from method parameters for definition 'def m(a=1, b:) [a, b] end'" # Expected ArgumentError but no exception was raised ([1, 2] was returned)
40
+ fails "A method assigns local variables from method parameters for definition \n def m(a, b = nil, c = nil, d, e: nil, **f)\n [a, b, c, d, e, f]\n end" # Expected [1, nil, nil, 2, nil, {"foo"=>"bar"}] == [1, 2, nil, {"foo"=>"bar"}, nil, {}] to be truthy but was false
41
+ fails "A method assigns the last Hash to the last optional argument if the Hash contains non-Symbol keys and is not passed as keywords" # Expected ["a", {}, false] == ["a", {"key"=>"value"}, false] to be truthy but was false
42
+ fails "A method definition in an eval creates a class method" # NoMethodError: undefined method `an_eval_class_method' for DefSpecNestedB
43
+ fails "A method definition in an eval creates an instance method" # NoMethodError: undefined method `an_eval_instance_method' for #<DefSpecNested:0x108f2>
43
44
  fails "A method raises ArgumentError if passing hash as keyword arguments for definition 'def m(a: nil); a; end'" # Expected ArgumentError but no exception was raised (1 was returned)
44
45
  fails "A method when passing an empty keyword splat to a method that does not accept keywords for definition 'def m(*a); a; end'" # Expected [{}] == [] to be truthy but was false
45
46
  fails "A method when passing an empty keyword splat to a method that does not accept keywords for definition 'def m(a); a; end'" # Expected ArgumentError but no exception was raised (nil was returned)
46
- fails "A nested method definition creates a class method when evaluated in a class method"
47
- fails "A nested method definition creates a method in the surrounding context when evaluated in a def expr.method"
48
- fails "A nested method definition creates an instance method inside Class.new" # NoMethodError: undefined method `new_def' for #<#<Class:0x40de>:0x40dc>
49
- fails "A nested method definition creates an instance method when evaluated in an instance method"
50
- fails "A number literal can be a decimal literal with trailing 'r' to represent a Rational" # requires String#to_r
47
+ fails "A nested method definition creates a class method when evaluated in a class method" # NoMethodError: undefined method `a_class_method' for DefSpecNested
48
+ fails "A nested method definition creates a method in the surrounding context when evaluated in a def expr.method" # Expected DefSpecNested to have instance method 'inherited_method' but it does not
49
+ fails "A nested method definition creates an instance method inside Class.new" # NoMethodError: undefined method `new_def' for #<#<Class:0x10642>:0x10640>
50
+ fails "A nested method definition creates an instance method when evaluated in an instance method" # NoMethodError: undefined method `an_instance_method' for #<DefSpecNested:0x1064c>
51
+ fails "A number literal can be a decimal literal with trailing 'r' to represent a Rational" # Expected (5404319552844595/18014398509481984) == (3/10) to be truthy but was false
51
52
  fails "A number literal can be a float literal with trailing 'r' to represent a Rational" # Expected (5030569068109113/288230376151711740) == (136353847812057/7812500000000000) to be truthy but was false
52
- fails "A singleton class doesn't have singleton class"
53
- fails "A singleton class raises a TypeError for symbols"
54
- fails "A singleton method definition can be declared for a global variable"
55
- fails "A singleton method definition raises FrozenError with the correct class name" # Expected "can't modify frozen Class: #<Class:#<Object:0x80db0>>".start_with? "can't modify frozen object" to be truthy but was false
53
+ fails "A singleton class doesn't have singleton class" # Expected TypeError but got: Exception (Object.defineProperty called on non-object)
54
+ fails "A singleton class raises a TypeError for symbols" # Expected TypeError but no exception was raised (#<Class:#<String:0x9093e>> was returned)
55
+ fails "A singleton method definition can be declared for a global variable" # TypeError: can't define singleton
56
+ fails "A singleton method definition raises FrozenError with the correct class name" # Expected "can't modify frozen Class: #<Class:#<Object:0x10574>>".start_with? "can't modify frozen object" to be truthy but was false
56
57
  fails "Accessing a class variable raises a RuntimeError when a class variable is overtaken in an ancestor class" # Expected RuntimeError (/class variable @@cvar_overtaken of .+ is overtaken by .+/) but no exception was raised ("subclass" was returned)
57
58
  fails "Accessing a class variable raises a RuntimeError when accessed from the toplevel scope (not in some module or class)" # Expected RuntimeError (class variable access from toplevel) but got: NameError (uninitialized class variable @@cvar_toplevel1 in MSpecEnv)
58
59
  fails "Allowed characters allows non-ASCII lowercased characters at the beginning" # Expected nil == 1 to be truthy but was false
59
60
  fails "Allowed characters allows not ASCII upcased characters at the beginning" # NameError: wrong constant name ἍBB
60
- fails "Allowed characters does not allow non-ASCII upcased characters at the beginning" # Expected SyntaxError (/dynamic constant assignment/) but no exception was raised ("test" was returned)
61
- fails "An ensure block inside 'do end' block is executed even when a symbol is thrown in it's corresponding begin block" # Expected ["begin", "rescue", "ensure"] to equal ["begin", "ensure"]
62
- fails "An ensure block inside a begin block is executed even when a symbol is thrown in it's corresponding begin block"
63
- fails "An ensure block inside a class is executed even when a symbol is thrown" # Expected ["class", "rescue", "ensure"] to equal ["class", "ensure"]
64
- fails "An instance method definition with a splat requires the presence of any arguments that precede the *" # ArgumentError: [MSpecEnv#foo] wrong number of arguments(1 for -3)
65
- fails "An instance method raises FrozenError with the correct class name" # Expected "can't modify frozen Module: #<Module:0x80c36>".start_with? "can't modify frozen module" to be truthy but was false
66
- fails "An instance method raises an error with too few arguments" # ArgumentError: [MSpecEnv#foo] wrong number of arguments(1 for 2)
67
- fails "An instance method raises an error with too many arguments" # ArgumentError: [MSpecEnv#foo] wrong number of arguments(2 for 1)
68
- fails "An instance method with a default argument evaluates the default when required arguments precede it" # ArgumentError: [MSpecEnv#foo] wrong number of arguments(0 for -2)
69
- fails "An instance method with a default argument prefers to assign to a default argument before a splat argument" # ArgumentError: [MSpecEnv#foo] wrong number of arguments(0 for -2)
61
+ fails "Allowed characters parses a non-ASCII upcased character as a constant identifier" # Expected SyntaxError (/dynamic constant assignment/) but no exception was raised ("test" was returned)
62
+ fails "An ensure block inside 'do end' block is executed even when a symbol is thrown in it's corresponding begin block" # Expected ["begin", "rescue", "ensure"] == ["begin", "ensure"] to be truthy but was false
63
+ fails "An ensure block inside a begin block is executed even when a symbol is thrown in it's corresponding begin block" # Expected ["begin", "rescue", "ensure"] == ["begin", "ensure"] to be truthy but was false
64
+ fails "An ensure block inside a class is executed even when a symbol is thrown" # Expected ["class", "rescue", "ensure"] == ["class", "ensure"] to be truthy but was false
65
+ fails "An instance method definition with a splat requires the presence of any arguments that precede the *" # Expected ArgumentError (wrong number of arguments (given 1, expected 2+)) but got: ArgumentError ([MSpecEnv#foo] wrong number of arguments (given 1, expected -3))
66
+ fails "An instance method raises FrozenError with the correct class name" # Expected "can't modify frozen Module: #<Module:0x103d8>".start_with? "can't modify frozen module" to be truthy but was false
67
+ fails "An instance method raises an error with too few arguments" # Expected ArgumentError (wrong number of arguments (given 1, expected 2)) but got: ArgumentError ([MSpecEnv#foo] wrong number of arguments (given 1, expected 2))
68
+ fails "An instance method raises an error with too many arguments" # Expected ArgumentError (wrong number of arguments (given 2, expected 1)) but got: ArgumentError ([MSpecEnv#foo] wrong number of arguments (given 2, expected 1))
69
+ fails "An instance method with a default argument evaluates the default when required arguments precede it" # Expected ArgumentError (wrong number of arguments (given 0, expected 1..2)) but got: ArgumentError ([MSpecEnv#foo] wrong number of arguments (given 0, expected -2))
70
+ fails "An instance method with a default argument prefers to assign to a default argument before a splat argument" # Expected ArgumentError (wrong number of arguments (given 0, expected 1+)) but got: ArgumentError ([MSpecEnv#foo] wrong number of arguments (given 0, expected -2))
70
71
  fails "Assigning an anonymous module to a constant sets the name of a module scoped by an anonymous module" # NoMethodError: undefined method `end_with?' for nil
71
72
  fails "Executing break from within a block raises LocalJumpError when converted into a proc during a a super call" # Expected LocalJumpError but no exception was raised (1 was returned)
72
- fails "Executing break from within a block works when passing through a super call" # Expected to not get Exception
73
- fails "Execution variable $: is initialized to an array of strings"
74
- fails "Execution variable $: is read-only"
75
- fails "Execution variable $: is the same object as $LOAD_PATH and $-I"
76
- fails "Global variable $-a is read-only"
77
- fails "Global variable $-d is an alias of $DEBUG"
78
- fails "Global variable $-l is read-only"
79
- fails "Global variable $-p is read-only"
80
- fails "Global variable $-v is an alias of $VERBOSE"
81
- fails "Global variable $-w is an alias of $VERBOSE"
82
- fails "Global variable $0 is the path given as the main script and the same as __FILE__"
83
- fails "Global variable $0 raises a TypeError when not given an object that can be coerced to a String"
84
- fails "Global variable $< is read-only"
85
- fails "Global variable $? is read-only"
86
- fails "Global variable $? is thread-local"
87
- fails "Global variable $FILENAME is read-only"
73
+ fails "Executing break from within a block works when passing through a super call" # Expected to not get Exception
74
+ fails "Execution variable $: default $LOAD_PATH entries until sitelibdir included have @gem_prelude_index set" # Expected [].include? nil to be truthy but was false
75
+ fails "Execution variable $: is initialized to an array of strings" # Expected false == true to be truthy but was false
76
+ fails "Execution variable $: is read-only" # Expected NameError but no exception was raised ([] was returned)
77
+ fails "Execution variable $: is the same object as $LOAD_PATH and $-I" # Expected 688882 == 4 to be truthy but was false
78
+ fails "Global variable $-a is read-only" # Expected NameError but no exception was raised (true was returned)
79
+ fails "Global variable $-d is an alias of $DEBUG" # Expected nil to be true
80
+ fails "Global variable $-l is read-only" # Expected NameError but no exception was raised (true was returned)
81
+ fails "Global variable $-p is read-only" # Expected NameError but no exception was raised (true was returned)
82
+ fails "Global variable $-v is an alias of $VERBOSE" # Expected nil to be true
83
+ fails "Global variable $-w is an alias of $VERBOSE" # Expected nil to be true
84
+ fails "Global variable $0 is the path given as the main script and the same as __FILE__" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0xa7382 @old_stdout=#<IO:0xa @fd=1 @flags="w" @eof=false @closed="read" @write_proc=#<Proc:0xaa7e6> @tty=true> @verbose=nil @dollar_slash="\n" @dollar_dash_zero=nil @dollar_backslash=nil @debug=false @method=nil @object=nil @orig_program_name=nil>
85
+ fails "Global variable $0 raises a TypeError when not given an object that can be coerced to a String" # Expected TypeError but no exception was raised (nil was returned)
86
+ fails "Global variable $< is read-only" # Expected NameError but no exception was raised (nil was returned)
87
+ fails "Global variable $? is read-only" # Expected NameError but no exception was raised (nil was returned)
88
+ fails "Global variable $? is thread-local" # NoMethodError: undefined method `system' for #<MSpecEnv:0xa7382 @old_stdout=#<IO:0xa @fd=1 @flags="w" @eof=false @closed="read" @write_proc=#<Proc:0xaa7e6> @tty=true> @verbose=nil @dollar_slash="\n" @dollar_dash_zero=nil @dollar_backslash=nil>
89
+ fails "Global variable $FILENAME is read-only" # Expected NameError but no exception was raised ("-" was returned)
88
90
  fails "Global variable $VERBOSE converts truthy values to true" # Expected 1 to be true
89
- fails "Global variable $\" is read-only"
91
+ fails "Global variable $\" is an alias for $LOADED_FEATURES" # Expected [] to be identical to ["corelib/runtime", "opal", "opal/base", "corelib/helpers", "corelib/module", ...]
92
+ fails "Global variable $\" is read-only" # Expected NameError but no exception was raised ([] was returned)
90
93
  fails "Hash literal checks duplicated float keys on initialization" # Expected warning to match: /key 1.0 is duplicated|duplicated key/ but got: ""
91
94
  fails "Hash literal checks duplicated keys on initialization" # Expected warning to match: /key 1000 is duplicated|duplicated key/ but got: ""
92
- fails "Hash literal expands a BasicObject using ** into the containing Hash literal initialization" # NoMethodError: undefined method `respond_to?' for BasicObject
93
- fails "Heredoc string allow HEREDOC with <<\"identifier\", interpolated" # Expected #<Encoding:UTF-16LE> to equal #<Encoding:ASCII-8BIT (dummy)>
94
- fails "Heredoc string allows HEREDOC with <<'identifier', no interpolation" # Expected #<Encoding:UTF-16LE> to equal #<Encoding:ASCII-8BIT (dummy)>
95
- fails "Heredoc string allows HEREDOC with <<-'identifier', allowing to indent identifier, no interpolation" # Expected #<Encoding:UTF-16LE> to equal #<Encoding:ASCII-8BIT (dummy)>
96
- fails "Heredoc string allows HEREDOC with <<-\"identifier\", allowing to indent identifier, interpolated" # Expected #<Encoding:UTF-16LE> to equal #<Encoding:ASCII-8BIT (dummy)>
97
- fails "Heredoc string allows HEREDOC with <<-identifier, allowing to indent identifier, interpolated" # Expected #<Encoding:UTF-16LE> to equal #<Encoding:ASCII-8BIT (dummy)>
98
- fails "Heredoc string allows HEREDOC with <<identifier, interpolated" # Expected #<Encoding:UTF-16LE> to equal #<Encoding:ASCII-8BIT (dummy)>
99
- fails "Instantiating a singleton class raises a TypeError when allocate is called"
100
- fails "Instantiating a singleton class raises a TypeError when new is called"
95
+ fails "Hash literal expands a BasicObject using ** into the containing Hash literal initialization" # NoMethodError: undefined method `respond_to?' for #<BasicObject:0xab798>
96
+ fails "Heredoc string allow HEREDOC with <<\"identifier\", interpolated" # Expected #<Encoding:UTF-8> == #<Encoding:US-ASCII> to be truthy but was false
97
+ fails "Heredoc string allows HEREDOC with <<'identifier', no interpolation" # Expected #<Encoding:UTF-8> == #<Encoding:US-ASCII> to be truthy but was false
98
+ fails "Heredoc string allows HEREDOC with <<-'identifier', allowing to indent identifier, no interpolation" # Expected #<Encoding:UTF-8> == #<Encoding:US-ASCII> to be truthy but was false
99
+ fails "Heredoc string allows HEREDOC with <<-\"identifier\", allowing to indent identifier, interpolated" # Expected #<Encoding:UTF-8> == #<Encoding:US-ASCII> to be truthy but was false
100
+ fails "Heredoc string allows HEREDOC with <<-identifier, allowing to indent identifier, interpolated" # Expected #<Encoding:UTF-8> == #<Encoding:US-ASCII> to be truthy but was false
101
+ fails "Heredoc string allows HEREDOC with <<identifier, interpolated" # Expected #<Encoding:UTF-8> == #<Encoding:US-ASCII> to be truthy but was false
102
+ fails "Inside 'endless' method definitions allows method calls without parenthesis" # NoMethodError: undefined method `concat' for "Hi, "
103
+ fails "Instance variables global variable when global variable is uninitialized warns about accessing uninitialized global variable in verbose mode" # Expected warning to match: /warning: global variable `\$specs_uninitialized_global_variable' not initialized/ but got: ""
104
+ fails "Instantiating a singleton class raises a TypeError when allocate is called" # Expected TypeError but no exception was raised (#<Object:0x90a56> was returned)
105
+ fails "Instantiating a singleton class raises a TypeError when new is called" # Expected TypeError but no exception was raised (#<Object:0x90a74> was returned)
106
+ fails "Interrupt shows the backtrace and has a signaled exit status" # NoMethodError: undefined method `popen' for IO
101
107
  fails "Keyword arguments are now separated from positional arguments when the method takes a ** parameter does not convert a positional Hash to keyword arguments" # Expected ArgumentError (wrong number of arguments (given 4, expected 3)) but no exception was raised (42 was returned)
102
108
  fails "Keyword arguments are now separated from positional arguments when the method takes a key: parameter when it's called with a positional Hash and no ** raises ArgumentError" # Expected ArgumentError (wrong number of arguments (given 4, expected 3)) but no exception was raised (42 was returned)
103
- fails "Literal (A::X) constant resolution uses the module or class #inspect to craft the error message if they are anonymous" # Expected NameError (/uninitialized constant <unusable info>::DOES_NOT_EXIST/) but got: NameError (uninitialized constant #<Module:0x50c0>::DOES_NOT_EXIST)
104
- fails "Literal (A::X) constant resolution uses the module or class #name to craft the error message" # Expected NameError (/uninitialized constant ModuleName::DOES_NOT_EXIST/) but got: NameError (uninitialized constant #<Module:0x50ba>::DOES_NOT_EXIST)
105
- fails "Literal (A::X) constant resolution with dynamically assigned constants evaluates the right hand side before evaluating a constant path"
106
- fails "Literal Regexps caches the Regexp object"
107
- fails "Literal Regexps support handling unicode 9.0 characters with POSIX bracket expressions" # Expected "" to equal "𐓘"
108
- fails "Literal Regexps supports (?# )"
109
- fails "Literal Regexps supports (?> ) (embedded subexpression)"
110
- fails "Literal Regexps supports \\g (named backreference)"
111
- fails "Literal Regexps supports character class composition"
112
- fails "Literal Regexps supports conditional regular expressions with named capture groups" # Exception: named captures are not supported in javascript: "^(?<word>foo)?(?(<word>)(T)|(F))$"
109
+ fails "Keyword arguments are separated from positional arguments" # Expected [[], {}] == [[{}], {}] to be truthy but was false
110
+ fails "Keyword arguments delegation does not work with (*args)" # Expected [[], {}] == [[{}], {}] to be truthy but was false
111
+ fails "Keyword arguments delegation omitted values accepts short notation 'key' for 'key: value' syntax" # NameError: uninitialized constant MSpecEnv::a
112
+ fails "Keyword arguments delegation works with (*args, **kwargs)" # Expected [[], {}] == [[{}], {}] to be truthy but was false
113
+ fails "Keyword arguments delegation works with (...)" # Expected [[], {}] == [[{}], {}] to be truthy but was false
114
+ fails "Keyword arguments delegation works with -> (*args, **kwargs) {}" # Expected [[], {}] == [[{}], {}] to be truthy but was false
115
+ fails "Keyword arguments delegation works with call(*ruby2_keyword_args) with missing ruby2_keywords in between due to CRuby bug #18625" # Expected [[], {}] == [[{}], {}] to be truthy but was false
116
+ fails "Keyword arguments delegation works with call(*ruby2_keyword_args)" # Expected [[], {}] == [[{}], {}] to be truthy but was false
117
+ fails "Keyword arguments delegation works with proc { |*args, **kwargs| }" # Expected [[], {}] == [[{}], {}] to be truthy but was false
118
+ fails "Keyword arguments delegation works with super(*ruby2_keyword_args)" # Expected [[], {}] == [[{}], {}] to be truthy but was false
119
+ fails "Keyword arguments delegation works with yield(*ruby2_keyword_args)" # Expected [[], {}] == [[{}], {}] to be truthy but was false
120
+ fails "Keyword arguments delegation works with zsuper" # Expected [[], {}] == [[{}], {}] to be truthy but was false
121
+ fails "Keyword arguments empty kwargs are treated as if they were not passed when calling a method" # Expected [{}] == [] to be truthy but was false
122
+ fails "Keyword arguments empty kwargs are treated as if they were not passed when yielding to a block" # Expected [{}] == [] to be truthy but was false
123
+ fails "Keyword arguments extra keywords are not allowed without **kwrest" # Expected ArgumentError (unknown keyword: :kw2) but no exception was raised ([] was returned)
124
+ fails "Keyword arguments handle * and ** at the same call site" # Expected [{}] == [] to be truthy but was false
125
+ fails "Keyword arguments raises ArgumentError exception when required keyword argument is not passed" # Expected ArgumentError (/missing keyword: :c/) but got: ArgumentError (missing keyword: c)
126
+ fails "Keyword arguments raises ArgumentError for missing keyword arguments even if there are extra ones" # Expected ArgumentError (/missing keyword: :a/) but got: ArgumentError (missing keyword: a)
127
+ fails "Literal (A::X) constant resolution uses the module or class #inspect to craft the error message if they are anonymous" # Expected NameError (/uninitialized constant <unusable info>::DOES_NOT_EXIST/) but got: NameError (uninitialized constant #<Module:0x913b2>::DOES_NOT_EXIST)
128
+ fails "Literal (A::X) constant resolution uses the module or class #name to craft the error message" # Expected NameError (/uninitialized constant ModuleName::DOES_NOT_EXIST/) but got: NameError (uninitialized constant #<Module:0x913aa>::DOES_NOT_EXIST)
129
+ fails "Literal (A::X) constant resolution with dynamically assigned constants evaluates the right hand side before evaluating a constant path" # NameError: uninitialized constant #<Module:0x91556>::ConstantSpecsRHS
130
+ fails "Literal Ranges creates a simple range as an object literal" # Expected 1..3.equal? 1..3 to be truthy but was false
131
+ fails "Literal Regexps caches the Regexp object" # Expected /foo/ to be identical to /foo/
132
+ fails "Literal Regexps support handling unicode 9.0 characters with POSIX bracket expressions" # Expected "" == "𐓘" to be truthy but was false
133
+ fails "Literal Regexps supports (?# )" # Exception: Invalid regular expression: /foo(?#comment)bar/: Invalid group
134
+ fails "Literal Regexps supports (?> ) (embedded subexpression)" # Exception: Invalid regular expression: /(?>foo)(?>bar)/: Invalid group
135
+ fails "Literal Regexps supports \\g (named backreference)" # Expected [] == ["foo1barfoo2", "foo2"] to be truthy but was false
136
+ fails "Literal Regexps supports character class composition" # Expected [] == ["def"] to be truthy but was false
137
+ fails "Literal Regexps supports conditional regular expressions with named capture groups" # Exception: Invalid regular expression: /^(?<word>foo)?(?(<word>)(T)|(F))$/: Invalid group
113
138
  fails "Literal Regexps supports conditional regular expressions with positional capture groups" # Exception: Invalid regular expression: /^(foo)?(?(1)(T)|(F))$/: Invalid group
114
- fails "Literal Regexps supports escaping characters when used as a terminator" # Expected "!" to equal "(?-mix:!)"
115
- fails "Literal Regexps supports possessive quantifiers"
116
- fails "Literal Regexps throws SyntaxError for malformed literals"
117
- fails "Literal Regexps treats an escaped non-escapable character normally when used as a terminator" # Expected "\\$" to equal "(?-mix:\\$)"
139
+ fails "Literal Regexps supports possessive quantifiers" # Exception: Invalid regular expression: /fooA++bar/: Nothing to repeat
140
+ fails "Literal Regexps throws SyntaxError for malformed literals" # Expected SyntaxError but got: Exception (Invalid regular expression: /(/: Unterminated group)
118
141
  fails "Local variable shadowing does not warn in verbose mode" # Expected nil == [3, 3, 3] to be truthy but was false
119
142
  fails "Magic comments in a loaded file are case-insensitive" # LoadError: cannot load such file -- ruby/language/fixtures/case_magic_comment
120
143
  fails "Magic comments in a loaded file are optional" # LoadError: cannot load such file -- ruby/language/fixtures/no_magic_comment
@@ -126,14 +149,14 @@ opal_filter "language" do
126
149
  fails "Magic comments in a loaded file must be at the first line" # LoadError: cannot load such file -- ruby/language/fixtures/second_line_magic_comment
127
150
  fails "Magic comments in a loaded file must be the first token of the line" # LoadError: cannot load such file -- ruby/language/fixtures/second_token_magic_comment
128
151
  fails "Magic comments in a required file are case-insensitive" # NameError: uninitialized constant Encoding::Big5
129
- fails "Magic comments in a required file are optional" # Expected nil to equal "UTF-8"
152
+ fails "Magic comments in a required file are optional" # Expected nil == "UTF-8" to be truthy but was false
130
153
  fails "Magic comments in a required file can be after the shebang" # NameError: uninitialized constant Encoding::Big5
131
154
  fails "Magic comments in a required file can take Emacs style" # NameError: uninitialized constant Encoding::Big5
132
155
  fails "Magic comments in a required file can take vim style" # NameError: uninitialized constant Encoding::Big5
133
156
  fails "Magic comments in a required file determine __ENCODING__" # NameError: uninitialized constant Encoding::Big5
134
- fails "Magic comments in a required file do not cause bytes to be mangled by passing them through the wrong encoding" # Expected nil to equal "[167, 65, 166, 110]"
135
- fails "Magic comments in a required file must be at the first line" # Expected nil to equal "UTF-8"
136
- fails "Magic comments in a required file must be the first token of the line" # Expected nil to equal "UTF-8"
157
+ fails "Magic comments in a required file do not cause bytes to be mangled by passing them through the wrong encoding" # Expected nil == "[167, 65, 166, 110]" to be truthy but was false
158
+ fails "Magic comments in a required file must be at the first line" # Expected nil == "UTF-8" to be truthy but was false
159
+ fails "Magic comments in a required file must be the first token of the line" # Expected nil == "UTF-8" to be truthy but was false
137
160
  fails "Magic comments in an -e argument are case-insensitive" # ArgumentError: unknown encoding name - locale
138
161
  fails "Magic comments in an -e argument are optional" # ArgumentError: unknown encoding name - locale
139
162
  fails "Magic comments in an -e argument can be after the shebang" # ArgumentError: unknown encoding name - locale
@@ -143,15 +166,15 @@ opal_filter "language" do
143
166
  fails "Magic comments in an -e argument do not cause bytes to be mangled by passing them through the wrong encoding" # ArgumentError: unknown encoding name - locale
144
167
  fails "Magic comments in an -e argument must be at the first line" # ArgumentError: unknown encoding name - locale
145
168
  fails "Magic comments in an -e argument must be the first token of the line" # ArgumentError: unknown encoding name - locale
146
- fails "Magic comments in an eval are case-insensitive" # ArgumentError: [File.read] wrong number of arguments(2 for 1)
147
- fails "Magic comments in an eval are optional" # ArgumentError: [File.read] wrong number of arguments(2 for 1)
148
- fails "Magic comments in an eval can be after the shebang" # ArgumentError: [File.read] wrong number of arguments(2 for 1)
149
- fails "Magic comments in an eval can take Emacs style" # ArgumentError: [File.read] wrong number of arguments(2 for 1)
150
- fails "Magic comments in an eval can take vim style" # ArgumentError: [File.read] wrong number of arguments(2 for 1)
151
- fails "Magic comments in an eval determine __ENCODING__" # ArgumentError: [File.read] wrong number of arguments(2 for 1)
152
- fails "Magic comments in an eval do not cause bytes to be mangled by passing them through the wrong encoding" # ArgumentError: [File.read] wrong number of arguments(2 for 1)
153
- fails "Magic comments in an eval must be at the first line" # ArgumentError: [File.read] wrong number of arguments(2 for 1)
154
- fails "Magic comments in an eval must be the first token of the line" # ArgumentError: [File.read] wrong number of arguments(2 for 1)
169
+ fails "Magic comments in an eval are case-insensitive" # NoMethodError: undefined method `read' for File
170
+ fails "Magic comments in an eval are optional" # NoMethodError: undefined method `read' for File
171
+ fails "Magic comments in an eval can be after the shebang" # NoMethodError: undefined method `read' for File
172
+ fails "Magic comments in an eval can take Emacs style" # NoMethodError: undefined method `read' for File
173
+ fails "Magic comments in an eval can take vim style" # NoMethodError: undefined method `read' for File
174
+ fails "Magic comments in an eval determine __ENCODING__" # NoMethodError: undefined method `read' for File
175
+ fails "Magic comments in an eval do not cause bytes to be mangled by passing them through the wrong encoding" # NoMethodError: undefined method `read' for File
176
+ fails "Magic comments in an eval must be at the first line" # NoMethodError: undefined method `read' for File
177
+ fails "Magic comments in an eval must be the first token of the line" # NoMethodError: undefined method `read' for File
155
178
  fails "Magic comments in stdin are case-insensitive" # ArgumentError: unknown encoding name - locale
156
179
  fails "Magic comments in stdin are optional" # ArgumentError: unknown encoding name - locale
157
180
  fails "Magic comments in stdin can be after the shebang" # ArgumentError: unknown encoding name - locale
@@ -161,21 +184,23 @@ opal_filter "language" do
161
184
  fails "Magic comments in stdin do not cause bytes to be mangled by passing them through the wrong encoding" # ArgumentError: unknown encoding name - locale
162
185
  fails "Magic comments in stdin must be at the first line" # ArgumentError: unknown encoding name - locale
163
186
  fails "Magic comments in stdin must be the first token of the line" # ArgumentError: unknown encoding name - locale
164
- fails "Magic comments in the main file are case-insensitive" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x8aa2e>
165
- fails "Magic comments in the main file are optional" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x8aa2e>
166
- fails "Magic comments in the main file can be after the shebang" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x8aa2e>
167
- fails "Magic comments in the main file can take Emacs style" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x8aa2e>
168
- fails "Magic comments in the main file can take vim style" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x8aa2e>
169
- fails "Magic comments in the main file determine __ENCODING__" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x8aa2e>
170
- fails "Magic comments in the main file do not cause bytes to be mangled by passing them through the wrong encoding" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x8aa2e>
171
- fails "Magic comments in the main file must be at the first line" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x8aa2e>
172
- fails "Magic comments in the main file must be the first token of the line" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x8aa2e>
173
- fails "NoMethodError#message calls receiver.inspect only when calling Exception#message" # Expected ["inspect_called"] to equal []
174
- fails "Numbered parameters does not support more than 9 parameters" # Expected NameError (/undefined local variable or method `_10'/) but got: NoMethodError (undefined method `_10' for #<MSpecEnv:0x5d700>)
175
- fails "Operators * / % are left-associative"
187
+ fails "Magic comments in the main file are case-insensitive" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x7f626 @method="UTF8" @object=#<Proc:0x7f6de> @default=#<Encoding:UTF-8>>
188
+ fails "Magic comments in the main file are optional" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x7f626 @method="UTF8" @object=#<Proc:0x7f6de> @default=#<Encoding:UTF-8>>
189
+ fails "Magic comments in the main file can be after the shebang" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x7f626 @method="UTF8" @object=#<Proc:0x7f6de> @default=#<Encoding:UTF-8>>
190
+ fails "Magic comments in the main file can take Emacs style" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x7f626 @method="UTF8" @object=#<Proc:0x7f6de> @default=#<Encoding:UTF-8>>
191
+ fails "Magic comments in the main file can take vim style" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x7f626 @method="UTF8" @object=#<Proc:0x7f6de> @default=#<Encoding:UTF-8>>
192
+ fails "Magic comments in the main file determine __ENCODING__" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x7f626 @method="UTF8" @object=#<Proc:0x7f6de> @default=#<Encoding:UTF-8>>
193
+ fails "Magic comments in the main file do not cause bytes to be mangled by passing them through the wrong encoding" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x7f626 @method="UTF8" @object=#<Proc:0x7f6de> @default=#<Encoding:UTF-8>>
194
+ fails "Magic comments in the main file must be at the first line" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x7f626 @method="UTF8" @object=#<Proc:0x7f6de> @default=#<Encoding:UTF-8>>
195
+ fails "Magic comments in the main file must be the first token of the line" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x7f626 @method="UTF8" @object=#<Proc:0x7f6de> @default=#<Encoding:UTF-8>>
196
+ fails "NoMethodError#message calls receiver.inspect only when calling Exception#message" # Expected ["inspect_called"] == [] to be truthy but was false
197
+ fails "Numbered parameters does not support more than 9 parameters" # Expected NameError (/undefined local variable or method `_10'/) but got: NoMethodError (undefined method `_10' for #<MSpecEnv:0x91b82>)
198
+ fails "Operators * / % are left-associative" # Expected 1 == 1 to be falsy but was true
176
199
  fails "Operators <=> == === != =~ !~ have higher precedence than &&" # Expected false == false to be falsy but was true
177
200
  fails "Optional constant assignment with ||= causes side-effects of the module part to be applied (for nil constant)" # Expected 3 == 1 to be truthy but was false
178
201
  fails "Optional constant assignment with ||= causes side-effects of the module part to be applied only once (for undefined constant)" # Expected 2 == 1 to be truthy but was false
202
+ fails "Optional variable assignments using &&= using a #[] evaluates the index arguments in the correct order" # TypeError: NilClass can't be coerced into Numeric
203
+ fails "Optional variable assignments using &&= using a #[] evaluates the index precisely once" # Expected [] == ["x"] to be truthy but was false
179
204
  fails "Optional variable assignments using compounded constants with &&= assignments" # Expected warning to match: /already initialized constant/ but got: ""
180
205
  fails "Optional variable assignments using compounded constants with operator assignments" # Expected warning to match: /already initialized constant/ but got: ""
181
206
  fails "Pattern matching Array pattern calls #deconstruct once for multiple patterns, caching the result" # Expected ["deconstruct", "deconstruct"] == ["deconstruct"] to be truthy but was false
@@ -185,70 +210,79 @@ opal_filter "language" do
185
210
  fails "Pattern matching Hash pattern raise SyntaxError when keys duplicate in pattern" # Expected SyntaxError (/duplicated key name/) but got: SyntaxError (duplicate hash pattern key a)
186
211
  fails "Pattern matching alternative pattern does not support variable binding" # Expected SyntaxError (/illegal variable in alternative pattern/) but no exception was raised (nil was returned)
187
212
  fails "Pattern matching cannot mix in and when operators" # Expected SyntaxError (/syntax error, unexpected `in'/) but got: SyntaxError (unexpected token kIN)
213
+ fails "Pattern matching refinements are used for #=== in constant pattern" # NoMatchingPatternError: {}
214
+ fails "Pattern matching refinements are used for #deconstruct" # NoMatchingPatternError: []
215
+ fails "Pattern matching refinements are used for #deconstruct_keys" # NoMatchingPatternError: {}
188
216
  fails "Pattern matching variable pattern allows applying ^ operator to bound variables" # NoMatchingPatternError: [1, 1]
189
217
  fails "Pattern matching variable pattern does not support using variable name (except _) several times" # Expected SyntaxError (/duplicated variable name/) but got: SyntaxError (duplicate variable name a)
190
218
  fails "Pattern matching variable pattern requires bound variable to be specified in a pattern before ^ operator when it relies on a bound variable" # Expected SyntaxError (/n: no such local variable/) but got: SyntaxError (no such local variable: `n')
191
219
  fails "Pattern matching variable pattern supports existing variables in a pattern specified with ^ operator" # SyntaxError: no such local variable: `a'
192
220
  fails "Pattern matching warning when regular form does not warn about pattern matching is experimental feature" # NameError: uninitialized constant Warning
193
- fails "Predefined global $+ captures the last non nil capture"
194
- fails "Predefined global $+ is equivalent to $~.captures.last"
195
- fails "Predefined global $, raises TypeError if assigned a non-String"
196
- fails "Predefined global $-0 changes $/"
197
- fails "Predefined global $-0 does not call #to_str to convert the object to a String"
198
- fails "Predefined global $-0 raises a TypeError if assigned a boolean"
221
+ fails "Predefined global $+ captures the last non nil capture" # Expected nil == "a" to be truthy but was false
222
+ fails "Predefined global $+ is equivalent to $~.captures.last" # Expected nil == "o" to be truthy but was false
223
+ fails "Predefined global $, raises TypeError if assigned a non-String" # Expected TypeError but no exception was raised (#<Object:0xa7e06> was returned)
224
+ fails "Predefined global $-0 changes $/" # Expected " " to be identical to "xyz"
225
+ fails "Predefined global $-0 does not call #to_str to convert the object to a String" # Expected TypeError but no exception was raised (#<MockObject:0xa7ac4 @name="$-0 value", @null=nil> was returned)
226
+ fails "Predefined global $-0 raises a TypeError if assigned a boolean" # Expected TypeError but no exception was raised (true was returned)
199
227
  fails "Predefined global $-0 raises a TypeError if assigned an Integer" # Expected TypeError but no exception was raised (1 was returned)
200
- fails "Predefined global $. can be assigned a Float" # Expected 123.5 to equal 123
201
- fails "Predefined global $. raises TypeError if object can't be converted to an Integer" # Expected TypeError but no exception was raised (#<MockObject:0x518b4> was returned)
202
- fails "Predefined global $. should call #to_int to convert the object to an Integer" # Expected #<MockObject:0x518c2> to equal 321
203
- fails "Predefined global $/ changes $-0"
204
- fails "Predefined global $/ does not call #to_str to convert the object to a String"
205
- fails "Predefined global $/ raises a TypeError if assigned a boolean"
228
+ fails "Predefined global $. can be assigned a Float" # Expected 123.5 == 123 to be truthy but was false
229
+ fails "Predefined global $. raises TypeError if object can't be converted to an Integer" # Expected TypeError but no exception was raised (#<MockObject:0xa7e2c @name="bad-value", @null=nil> was returned)
230
+ fails "Predefined global $. should call #to_int to convert the object to an Integer" # Expected #<MockObject:0xa7fde @name="good-value", @null=nil> == 321 to be truthy but was false
231
+ fails "Predefined global $/ changes $-0" # Expected nil to be identical to "xyz"
232
+ fails "Predefined global $/ does not call #to_str to convert the object to a String" # Expected TypeError but no exception was raised (#<MockObject>(#pretty_inspect raised #<TypeError: can't convert MockObject into String (MockObject#to_str gives NilClass)>) was returned)
233
+ fails "Predefined global $/ raises a TypeError if assigned a boolean" # Expected TypeError but no exception was raised (#<TrueClass>(#pretty_inspect raised #<TypeError: no implicit conversion of TrueClass into String>) was returned)
206
234
  fails "Predefined global $/ raises a TypeError if assigned an Integer" # Expected TypeError but no exception was raised (#<Number>(#pretty_inspect raised #<TypeError: no implicit conversion of Number into String>) was returned)
207
- fails "Predefined global $_ is Thread-local"
208
- fails "Predefined global $_ is set at the method-scoped level rather than block-scoped"
209
- fails "Predefined global $stdout raises TypeError error if assigned to nil"
210
- fails "Predefined global $stdout raises TypeError error if assigned to object that doesn't respond to #write"
211
- fails "Predefined global $~ is set at the method-scoped level rather than block-scoped"
212
- fails "Predefined global $~ raises an error if assigned an object not nil or instanceof MatchData"
213
- fails "Ruby String interpolation returns a string with the source encoding by default" # Expected #<Encoding:UTF-8> == #<Encoding:ASCII-8BIT (dummy)> to be truthy but was false
235
+ fails "Predefined global $= warns when accessed" # Expected warning to match: /is no longer effective/ but got: ""
236
+ fails "Predefined global $= warns when assigned" # Expected warning to match: /is no longer effective/ but got: ""
237
+ fails "Predefined global $\\ does not call #to_str to convert the object to a String" # Expected TypeError but no exception was raised (#<MockObject:0xa7c78 @name="$\\ value", @null=nil> was returned)
238
+ fails "Predefined global $\\ raises a TypeError if assigned not String" # Expected TypeError but no exception was raised (1 was returned)
239
+ fails "Predefined global $_ is Thread-local" # NotImplementedError: Thread creation not available
240
+ fails "Predefined global $_ is set at the method-scoped level rather than block-scoped" # Expected "bar " == "baz " to be truthy but was false
241
+ fails "Predefined global $stdout raises TypeError error if assigned to nil" # Expected TypeError but no exception was raised (nil was returned)
242
+ fails "Predefined global $stdout raises TypeError error if assigned to object that doesn't respond to #write" # Expected TypeError but no exception was raised (#<MockObject:0xa7634 @name="object", @null=nil> was returned)
243
+ fails "Predefined global $~ is set at the method-scoped level rather than block-scoped" # Expected nil == nil to be falsy but was true
244
+ fails "Predefined global $~ raises an error if assigned an object not nil or instanceof MatchData" # Expected TypeError but no exception was raised (#<Object:0xa73aa> was returned)
245
+ fails "Ruby String interpolation returns a string with the source encoding by default" # Expected #<Encoding:UTF-8> == #<Encoding:ASCII-8BIT> to be truthy but was false
214
246
  fails "Ruby String interpolation returns a string with the source encoding, even if the components have another encoding" # ArgumentError: unknown encoding name - euc-jp
215
247
  fails "The ** operator hash with omitted value accepts mixed syntax" # NameError: uninitialized constant MSpecEnv::a
216
248
  fails "The ** operator hash with omitted value accepts short notation 'key' for 'key: value' syntax" # NameError: uninitialized constant MSpecEnv::a
217
249
  fails "The ** operator hash with omitted value ignores hanging comma on short notation" # NameError: uninitialized constant MSpecEnv::a
218
- fails "The ** operator hash with omitted value works with methods and local vars" # NameError: uninitialized constant #<Class:0x874c0>::bar
219
- fails "The BEGIN keyword accesses variables outside the eval scope"
220
- fails "The BEGIN keyword runs first in a given code unit"
221
- fails "The BEGIN keyword runs in a shared scope"
222
- fails "The BEGIN keyword runs multiple begins in FIFO order"
223
- fails "The BEGIN keyword uses top-level for self" # NameError: uninitialized constant TOPLEVEL_BINDING
224
- fails "The END keyword runs last in a given code unit" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x1e972>
225
- fails "The END keyword runs multiple ends in LIFO order" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x1e972>
226
- fails "The END keyword runs only once for multiple calls" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x1e972>
227
- fails "The __ENCODING__ pseudo-variable is US-ASCII by default"
228
- fails "The __ENCODING__ pseudo-variable is the encoding specified by a magic comment in the file"
229
- fails "The __ENCODING__ pseudo-variable is the encoding specified by a magic comment inside an eval"
230
- fails "The __ENCODING__ pseudo-variable is the evaluated strings's one inside an eval"
231
- fails "The __FILE__ pseudo-variable equals the absolute path of a file loaded by a relative path" # we can't clear $LOADED_FEATURES, should be treated as readonly
232
- fails "The __FILE__ pseudo-variable equals the absolute path of a file loaded by an absolute path" # we can't clear $LOADED_FEATURES, should be treated as readonly
233
- fails "The __LINE__ pseudo-variable equals the line number of the text in a loaded file"
234
- fails "The alias keyword can create a new global variable, synonym of the original" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x4478>
235
- fails "The alias keyword can override an existing global variable and make them synonyms" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x4478>
236
- fails "The alias keyword is not allowed against Integer or String instances" # Expected TypeError but got: Exception (Cannot read property '$to_s' of undefined)
237
- fails "The alias keyword on top level defines the alias on Object"
238
- fails "The alias keyword operates on methods defined via attr, attr_reader, and attr_accessor"
239
- fails "The alias keyword operates on the object's metaclass when used in instance_eval"
240
- fails "The alias keyword supports aliasing twice the same global variables" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x22a72>
241
- fails "The break statement in a captured block from a scope that has returned raises a LocalJumpError when calling the block from a method"
242
- fails "The break statement in a captured block from a scope that has returned raises a LocalJumpError when yielding to the block"
243
- fails "The break statement in a captured block from another thread raises a LocalJumpError when getting the value from another thread" # NameError: uninitialized constant Thread
244
- fails "The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when invoking the block from a method"
245
- fails "The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when invoking the block from the scope creating the block"
246
- fails "The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when yielding to the block"
247
- fails "The break statement in a lambda created at the toplevel returns a value when invoking from a block"
248
- fails "The break statement in a lambda created at the toplevel returns a value when invoking from a method"
249
- fails "The break statement in a lambda created at the toplevel returns a value when invoking from the toplevel"
250
+ fails "The ** operator hash with omitted value works with methods and local vars" # NameError: uninitialized constant #<Class:0xabe00>::bar
251
+ fails "The BEGIN keyword accesses variables outside the eval scope" # SyntaxError: Unsupported sexp: preexe
252
+ fails "The BEGIN keyword runs first in a given code unit" # SyntaxError: Unsupported sexp: preexe
253
+ fails "The BEGIN keyword runs in a shared scope" # SyntaxError: Unsupported sexp: preexe
254
+ fails "The BEGIN keyword runs multiple begins in FIFO order" # SyntaxError: Unsupported sexp: preexe
255
+ fails "The BEGIN keyword uses top-level for self" # SyntaxError: Unsupported sexp: preexe
256
+ fails "The END keyword runs last in a given code unit" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x193ae>
257
+ fails "The END keyword runs multiple ends in LIFO order" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x193ae>
258
+ fails "The END keyword runs only once for multiple calls" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x193ae>
259
+ fails "The __ENCODING__ pseudo-variable is US-ASCII by default" # Expected #<Encoding:UTF-8> == #<Encoding:US-ASCII> to be truthy but was false
260
+ fails "The __ENCODING__ pseudo-variable is the encoding specified by a magic comment in the file" # Expected #<Encoding:UTF-8> == #<Encoding:US-ASCII> to be truthy but was false
261
+ fails "The __ENCODING__ pseudo-variable is the encoding specified by a magic comment inside an eval" # Expected #<Encoding:UTF-8> == #<Encoding:ASCII-8BIT> to be truthy but was false
262
+ fails "The __ENCODING__ pseudo-variable is the evaluated strings's one inside an eval" # Expected #<Encoding:UTF-8> == #<Encoding:US-ASCII> to be truthy but was false
263
+ fails "The __FILE__ pseudo-variable with load equals the absolute path of a file loaded by a relative path" # LoadError: cannot load such file -- ruby/fixtures/code/file_fixture
264
+ fails "The __FILE__ pseudo-variable with load equals the absolute path of a file loaded by an absolute path" # LoadError: cannot load such file -- ruby/fixtures/code/file_fixture
265
+ fails "The __FILE__ pseudo-variable with require equals the absolute path of a file loaded by a relative path" # LoadError: cannot load such file -- ruby/fixtures/code/file_fixture
266
+ fails "The __FILE__ pseudo-variable with require equals the absolute path of a file loaded by an absolute path" # LoadError: cannot load such file -- ruby/fixtures/code/file_fixture
267
+ fails "The __LINE__ pseudo-variable equals the line number of the text in a loaded file" # ArgumentError: [Method#load] wrong number of arguments (given 2, expected 1)
268
+ fails "The alias keyword can create a new global variable, synonym of the original" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x1c9ba @obj=#<AliasObject:0x1ce06> @meta=#<Class:#<AliasObject:0x1ce06>>>
269
+ fails "The alias keyword can override an existing global variable and make them synonyms" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x1c9ba @obj=#<AliasObject:0x1ce06> @meta=#<Class:#<AliasObject:0x1ce06>>>
270
+ fails "The alias keyword is not allowed against Integer or String instances" # Expected TypeError but no exception was raised (Object was returned)
271
+ fails "The alias keyword on top level defines the alias on Object" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x1c9ba @obj=#<AliasObject:0x1ce00> @meta=#<Class:#<AliasObject:0x1ce00>>>
272
+ fails "The alias keyword operates on methods defined via attr, attr_reader, and attr_accessor" # NameError: undefined method `foo' for class `Object'
273
+ fails "The alias keyword operates on the object's metaclass when used in instance_eval" # NameError: undefined method `value' for class `Object'
274
+ fails "The alias keyword supports aliasing twice the same global variables" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x1c9ba @obj=#<AliasObject:0x1ce06> @meta=#<Class:#<AliasObject:0x1ce06>>>
275
+ fails "The break statement in a captured block from a scope that has returned raises a LocalJumpError when calling the block from a method" # Expected LocalJumpError but got: Exception (unexpected break)
276
+ fails "The break statement in a captured block from a scope that has returned raises a LocalJumpError when yielding to the block" # Expected LocalJumpError but got: Exception (unexpected break)
277
+ fails "The break statement in a captured block from another thread raises a LocalJumpError when getting the value from another thread" # NotImplementedError: Thread creation not available
278
+ fails "The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when invoking the block from a method" # Expected LocalJumpError but got: Exception (unexpected break)
279
+ fails "The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when invoking the block from the scope creating the block" # Expected LocalJumpError but got: Exception (unexpected break)
280
+ fails "The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when yielding to the block" # Expected LocalJumpError but got: Exception (unexpected break)
281
+ fails "The break statement in a lambda created at the toplevel returns a value when invoking from a block" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0xa5de4 @program=#<BreakSpecs::Lambda:0xa5ea2 @ensures=false>>
282
+ fails "The break statement in a lambda created at the toplevel returns a value when invoking from a method" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0xa5de4 @program=#<BreakSpecs::Lambda:0xa5ea6 @ensures=false>>
283
+ fails "The break statement in a lambda created at the toplevel returns a value when invoking from the toplevel" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0xa5de4 @program=#<BreakSpecs::Lambda:0xa5eaa @ensures=false>>
250
284
  fails "The class keyword does not raise a SyntaxError when opening a class without a semicolon" # NameError: uninitialized constant ClassSpecsKeywordWithoutSemicolon
251
- fails "The def keyword within a closure looks outside the closure for the visibility"
285
+ fails "The def keyword within a closure looks outside the closure for the visibility" # Expected DefSpecsLambdaVisibility to have private instance method 'some_method' but it does not
252
286
  fails "The defined? keyword for a scoped constant returns nil when a constant is defined on top-level but not on the class" # Expected "constant" to be nil
253
287
  fails "The defined? keyword for a simple constant returns 'constant' when the constant is defined" # Expected false == true to be truthy but was false
254
288
  fails "The defined? keyword for an expression returns 'assignment' for assigning a local variable" # Expected false == true to be truthy but was false
@@ -260,42 +294,40 @@ opal_filter "language" do
260
294
  fails "The defined? keyword for super for a method taking no arguments returns 'super' when a superclass method exists" # Expected false == true to be truthy but was false
261
295
  fails "The defined? keyword for variables returns 'class variable' when called with the name of a class variable" # Expected false == true to be truthy but was false
262
296
  fails "The defined? keyword for variables returns 'global-variable' for a global variable that has been assigned nil" # Expected false == true to be truthy but was false
263
- fails "The defined? keyword for variables returns 'instance-variable' for an instance variable that has been assigned to nil"
297
+ fails "The defined? keyword for variables returns 'instance-variable' for an instance variable that has been assigned to nil" # Expected nil == "instance-variable" to be truthy but was false
264
298
  fails "The defined? keyword for variables returns 'instance-variable' for an instance variable that has been assigned" # Expected false == true to be truthy but was false
265
299
  fails "The defined? keyword for variables returns 'local-variable' when called with the name of a local variable" # Expected false == true to be truthy but was false
266
- fails "The defined? keyword for variables returns nil for a global variable that has been read but not assigned to"
267
- fails "The defined? keyword for variables when a Regexp matches a String returns nil for non-captures"
268
- fails "The defined? keyword for variables when a String matches a Regexp returns nil for non-captures"
300
+ fails "The defined? keyword for variables returns nil for a global variable that has been read but not assigned to" # Expected "global-variable" to be nil
301
+ fails "The defined? keyword for variables when a Regexp matches a String returns nil for non-captures" # Expected "global-variable" to be nil
302
+ fails "The defined? keyword for variables when a String matches a Regexp returns nil for non-captures" # Expected "global-variable" to be nil
269
303
  fails "The defined? keyword for yield returns 'yield' if a block is passed to a method not taking a block parameter" # Expected false == true to be truthy but was false
270
304
  fails "The defined? keyword when called with a method name without a receiver returns 'method' if the method is defined" # Expected false == true to be truthy but was false
271
- fails "The if expression with a boolean range ('flip-flop' operator) evaluates the first conditions lazily with exclusive-end range"
272
- fails "The if expression with a boolean range ('flip-flop' operator) evaluates the first conditions lazily with inclusive-end range"
305
+ fails "The if expression with a boolean range ('flip-flop' operator) evaluates the first conditions lazily with exclusive-end range" # NoMethodError: undefined method `collector' for #<MSpecEnv:0x7bd18>
306
+ fails "The if expression with a boolean range ('flip-flop' operator) evaluates the first conditions lazily with inclusive-end range" # NoMethodError: undefined method `collector' for #<MSpecEnv:0x7bd18>
273
307
  fails "The redo statement in a method is invalid and raises a SyntaxError" # Expected SyntaxError but no exception was raised ("m" was returned)
274
- fails "The redo statement triggers ensure block when re-executing a block"
308
+ fails "The redo statement triggers ensure block when re-executing a block" # TypeError: NilClass can't be coerced into Numeric
275
309
  fails "The rescue keyword allows rescue in 'do end' block" # NoMethodError: undefined method `call' for nil
276
- fails "The rescue keyword inline form can be inlined" # Expected Infinity to equal 1
277
- fails "The rescue keyword only accepts Module or Class in rescue clauses" # RuntimeError: error
278
- fails "The rescue keyword only accepts Module or Class in splatted rescue clauses" # RuntimeError: error
279
- fails "The rescue keyword rescues the exception in the deepest rescue block declared to handle the appropriate exception type" # Expected "StandardError: an error occurred" to include ":in `raise_standard_error'"
280
- fails "The return keyword at top level return with argument warns but does not affect exit status" # Exception: path.substr is not a function
281
- fails "The return keyword at top level within a block within a class is not allowed" # Exception: path.substr is not a function
310
+ fails "The rescue keyword inline form can be inlined" # Expected Infinity == 1 to be truthy but was false
311
+ fails "The rescue keyword only accepts Module or Class in rescue clauses" # Expected TypeError but got: RuntimeError (error)
312
+ fails "The rescue keyword only accepts Module or Class in splatted rescue clauses" # Expected TypeError but got: RuntimeError (error)
313
+ fails "The rescue keyword rescues the exception in the deepest rescue block declared to handle the appropriate exception type" # Expected "<internal:corelib/runtime.js>:1878:5:in `Opal.send2'" to include ":in `raise_standard_error'"
314
+ fails "The return keyword at top level return with argument warns but does not affect exit status" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x1494e @filename=nil>
315
+ fails "The return keyword at top level within a block within a class is not allowed" # NoMethodError: undefined method `tmp' for #<MSpecEnv:0x1494e>
282
316
  fails "The super keyword uses block argument given to method when used in a block" # LocalJumpError: no block given
283
- fails "The super keyword uses given block even if arguments are passed explicitly"
317
+ fails "The super keyword uses given block even if arguments are passed explicitly" # LocalJumpError: no block given
284
318
  fails "The throw keyword raises an UncaughtThrowError if used to exit a thread" # NotImplementedError: Thread creation not available
285
- fails "The unpacking splat operator (*) when applied to a BasicObject coerces it to Array if it respond_to?(:to_a)" # NoMethodError: undefined method `respond_to?' for BasicObject
319
+ fails "The unpacking splat operator (*) when applied to a BasicObject coerces it to Array if it respond_to?(:to_a)" # NoMethodError: undefined method `respond_to?' for #<BasicObject:0x4128>
286
320
  fails "The yield call taking a single argument yielding to a lambda should not destructure an Array into multiple arguments" # Expected ArgumentError but no exception was raised ([1, 2] was returned)
287
- fails "The yield call taking no arguments ignores assignment to the explicit block argument and calls the passed block"
321
+ fails "The yield call taking no arguments ignores assignment to the explicit block argument and calls the passed block" # Expected #<Proc:0x2b4c> == 42 to be truthy but was false
288
322
  fails "Using yield in a singleton class literal raises a SyntaxError" # Expected SyntaxError (/Invalid yield/) but got: SyntaxError (undefined method `uses_block!' for nil)
289
- fails "a method definition that sets more than one default parameter all to the same value only allows overriding the default value of the first such parameter in each set" # ArgumentError: [MSpecEnv#foo] wrong number of arguments(2 for -1)
290
- fails "a method definition that sets more than one default parameter all to the same value treats the argument after the multi-parameter normally" # ArgumentError: [MSpecEnv#bar] wrong number of arguments(3 for -1)
323
+ fails "Using yield in non-lambda block raises a SyntaxError" # Expected SyntaxError (/Invalid yield/) but got: SyntaxError (undefined method `uses_block!' for nil)
324
+ fails "a method definition that sets more than one default parameter all to the same value only allows overriding the default value of the first such parameter in each set" # Expected ArgumentError (wrong number of arguments (given 2, expected 0..1)) but got: ArgumentError ([MSpecEnv#foo] wrong number of arguments (given 2, expected -1))
325
+ fails "a method definition that sets more than one default parameter all to the same value treats the argument after the multi-parameter normally" # Expected ArgumentError (wrong number of arguments (given 3, expected 0..2)) but got: ArgumentError ([MSpecEnv#bar] wrong number of arguments (given 3, expected -1))
291
326
  fails "kwarg with omitted value in a method call accepts short notation 'kwarg' in method call for definition 'def call(*args, **kwargs) = [args, kwargs]'" # NameError: uninitialized constant SpecEvaluate::a
292
327
  fails "kwarg with omitted value in a method call with methods and local variables for definition \n def call(*args, **kwargs) = [args, kwargs]\n def bar\n \"baz\"\n end\n def foo(val)\n call bar:, val:\n end" # NameError: uninitialized constant SpecEvaluate::bar
293
- fails "self in a metaclass body (class << obj) raises a TypeError for numbers"
294
- fails "self in a metaclass body (class << obj) raises a TypeError for symbols"
295
- fails "self.send(:block_given?) returns false when a method defined by define_method is called with a block"
296
- fails "self.send(:block_given?) returns true if and only if a block is supplied"
297
- fails "top-level constant lookup on a class does not search Object after searching other scopes" # Expected NameError but no exception was raised (Hash was returned)
298
- fails_badly "Pattern matching refinements are used for #=== in constant pattern"
299
- fails_badly "Pattern matching refinements are used for #deconstruct"
300
- fails_badly "Pattern matching refinements are used for #deconstruct_keys"
328
+ fails "self in a metaclass body (class << obj) raises a TypeError for numbers" # Expected TypeError but got: Exception (Object.defineProperty called on non-object)
329
+ fails "self in a metaclass body (class << obj) raises a TypeError for symbols" # Expected TypeError but got: Exception (Cannot create property '$$meta' on string 'symbol')
330
+ fails "self.send(:block_given?) returns false when a method defined by define_method is called with a block" # NoMethodError: undefined method `block_given?' for KernelSpecs::SelfBlockGiven
331
+ fails "self.send(:block_given?) returns true if and only if a block is supplied" # NoMethodError: undefined method `block_given?' for KernelSpecs::SelfBlockGiven
332
+ fails "top-level constant lookup on a class does not search Object after searching other scopes" # Expected NameError but no exception was raised (Hash was returned)
301
333
  end