opal 1.6.1 → 1.7.0

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/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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opal
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elia Schito
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2022-12-09 00:00:00.000000000 Z
13
+ date: 2022-12-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: ast
@@ -228,6 +228,20 @@ dependencies:
228
228
  - - ">="
229
229
  - !ruby/object:Gem::Version
230
230
  version: '0'
231
+ - !ruby/object:Gem::Dependency
232
+ name: benchmark_driver
233
+ requirement: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - '='
236
+ - !ruby/object:Gem::Version
237
+ version: 0.15.17
238
+ type: :development
239
+ prerelease: false
240
+ version_requirements: !ruby/object:Gem::Requirement
241
+ requirements:
242
+ - - '='
243
+ - !ruby/object:Gem::Version
244
+ version: 0.15.17
231
245
  description: Opal is a Ruby to JavaScript compiler. It is source-to-source, making
232
246
  it fast as a runtime. Opal includes a compiler (which can be run in any browser),
233
247
  a corelib and runtime implementation. The corelib/runtime is also very small.
@@ -298,6 +312,7 @@ files:
298
312
  - benchmark/bm_array_uniq_numbers.rb
299
313
  - benchmark/bm_array_uniq_objects.rb
300
314
  - benchmark/bm_array_uniq_strings.rb
315
+ - benchmark/bm_call_overhead.yml
301
316
  - benchmark/bm_constant_lookup_big.rb
302
317
  - benchmark/bm_constant_lookup_small.rb
303
318
  - benchmark/bm_dispatch_bind_table.rb
@@ -391,13 +406,15 @@ files:
391
406
  - bin/yarn
392
407
  - config.ru
393
408
  - docs/async.md
409
+ - docs/cdp_common.json
410
+ - docs/cdp_common.md
394
411
  - docs/compiled_ruby.md
395
412
  - docs/compiler.md
396
413
  - docs/compiler_directives.md
397
414
  - docs/configuring_gems.md
398
415
  - docs/encoding.md
399
416
  - docs/getting_started.md
400
- - docs/headless_chrome.md
417
+ - docs/headless_browsers.md
401
418
  - docs/index.md
402
419
  - docs/jquery.md
403
420
  - docs/opal_parser.md
@@ -451,9 +468,15 @@ files:
451
468
  - lib/opal/cli_runners/chrome.rb
452
469
  - lib/opal/cli_runners/chrome_cdp_interface.rb
453
470
  - lib/opal/cli_runners/compiler.rb
471
+ - lib/opal/cli_runners/deno.rb
472
+ - lib/opal/cli_runners/firefox.rb
473
+ - lib/opal/cli_runners/firefox_cdp_interface.rb
454
474
  - lib/opal/cli_runners/gjs.rb
455
475
  - lib/opal/cli_runners/mini_racer.rb
456
476
  - lib/opal/cli_runners/nashorn.rb
477
+ - lib/opal/cli_runners/node_modules/.bin/chrome-remote-interface.cmd
478
+ - lib/opal/cli_runners/node_modules/.bin/chrome-remote-interface.ps1
479
+ - lib/opal/cli_runners/node_modules/.package-lock.json
457
480
  - lib/opal/cli_runners/node_modules/chrome-remote-interface/LICENSE
458
481
  - lib/opal/cli_runners/node_modules/chrome-remote-interface/README.md
459
482
  - lib/opal/cli_runners/node_modules/chrome-remote-interface/bin/client.js
@@ -468,30 +491,30 @@ files:
468
491
  - lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/websocket-wrapper.js
469
492
  - lib/opal/cli_runners/node_modules/chrome-remote-interface/package.json
470
493
  - lib/opal/cli_runners/node_modules/chrome-remote-interface/webpack.config.js
494
+ - lib/opal/cli_runners/node_modules/commander/History.md
495
+ - lib/opal/cli_runners/node_modules/commander/LICENSE
471
496
  - lib/opal/cli_runners/node_modules/commander/Readme.md
472
497
  - lib/opal/cli_runners/node_modules/commander/index.js
473
498
  - lib/opal/cli_runners/node_modules/commander/package.json
474
- - lib/opal/cli_runners/node_modules/ultron/LICENSE
475
- - lib/opal/cli_runners/node_modules/ultron/index.js
476
- - lib/opal/cli_runners/node_modules/ultron/package.json
477
499
  - lib/opal/cli_runners/node_modules/ws/LICENSE
478
500
  - lib/opal/cli_runners/node_modules/ws/README.md
479
- - lib/opal/cli_runners/node_modules/ws/SECURITY.md
501
+ - lib/opal/cli_runners/node_modules/ws/browser.js
480
502
  - lib/opal/cli_runners/node_modules/ws/index.js
481
- - lib/opal/cli_runners/node_modules/ws/lib/BufferUtil.fallback.js
482
- - lib/opal/cli_runners/node_modules/ws/lib/BufferUtil.js
483
- - lib/opal/cli_runners/node_modules/ws/lib/ErrorCodes.js
484
- - lib/opal/cli_runners/node_modules/ws/lib/EventTarget.js
485
- - lib/opal/cli_runners/node_modules/ws/lib/Extensions.js
486
- - lib/opal/cli_runners/node_modules/ws/lib/PerMessageDeflate.js
487
- - lib/opal/cli_runners/node_modules/ws/lib/Receiver.js
488
- - lib/opal/cli_runners/node_modules/ws/lib/Sender.js
489
- - lib/opal/cli_runners/node_modules/ws/lib/Validation.fallback.js
490
- - lib/opal/cli_runners/node_modules/ws/lib/Validation.js
491
- - lib/opal/cli_runners/node_modules/ws/lib/WebSocket.js
492
- - lib/opal/cli_runners/node_modules/ws/lib/WebSocketServer.js
503
+ - lib/opal/cli_runners/node_modules/ws/lib/buffer-util.js
504
+ - lib/opal/cli_runners/node_modules/ws/lib/constants.js
505
+ - lib/opal/cli_runners/node_modules/ws/lib/event-target.js
506
+ - lib/opal/cli_runners/node_modules/ws/lib/extension.js
507
+ - lib/opal/cli_runners/node_modules/ws/lib/limiter.js
508
+ - lib/opal/cli_runners/node_modules/ws/lib/permessage-deflate.js
509
+ - lib/opal/cli_runners/node_modules/ws/lib/receiver.js
510
+ - lib/opal/cli_runners/node_modules/ws/lib/sender.js
511
+ - lib/opal/cli_runners/node_modules/ws/lib/stream.js
512
+ - lib/opal/cli_runners/node_modules/ws/lib/validation.js
513
+ - lib/opal/cli_runners/node_modules/ws/lib/websocket-server.js
514
+ - lib/opal/cli_runners/node_modules/ws/lib/websocket.js
493
515
  - lib/opal/cli_runners/node_modules/ws/package.json
494
516
  - lib/opal/cli_runners/nodejs.rb
517
+ - lib/opal/cli_runners/package-lock.json
495
518
  - lib/opal/cli_runners/package.json
496
519
  - lib/opal/cli_runners/quickjs.rb
497
520
  - lib/opal/cli_runners/server.rb
@@ -589,6 +612,7 @@ files:
589
612
  - lib/opal/rewriters/pattern_matching.rb
590
613
  - lib/opal/rewriters/returnable_logic.rb
591
614
  - lib/opal/rewriters/rubyspec/filters_rewriter.rb
615
+ - lib/opal/rewriters/targeted_patches.rb
592
616
  - lib/opal/rewriters/thrower_finder.rb
593
617
  - lib/opal/server.rb
594
618
  - lib/opal/simple_server.rb
@@ -658,6 +682,7 @@ files:
658
682
  - opal/corelib/rational/base.rb
659
683
  - opal/corelib/regexp.rb
660
684
  - opal/corelib/runtime.js
685
+ - opal/corelib/set.rb
661
686
  - opal/corelib/string.rb
662
687
  - opal/corelib/string/encoding.rb
663
688
  - opal/corelib/string/unpack.rb
@@ -677,7 +702,6 @@ files:
677
702
  - spec/filters/bugs/basicobject.rb
678
703
  - spec/filters/bugs/bigdecimal.rb
679
704
  - spec/filters/bugs/binding.rb
680
- - spec/filters/bugs/boolean.rb
681
705
  - spec/filters/bugs/class.rb
682
706
  - spec/filters/bugs/complex.rb
683
707
  - spec/filters/bugs/date.rb
@@ -689,6 +713,7 @@ files:
689
713
  - spec/filters/bugs/exception.rb
690
714
  - spec/filters/bugs/file.rb
691
715
  - spec/filters/bugs/float.rb
716
+ - spec/filters/bugs/freeze.rb
692
717
  - spec/filters/bugs/hash.rb
693
718
  - spec/filters/bugs/integer.rb
694
719
  - spec/filters/bugs/io.rb
@@ -697,7 +722,6 @@ files:
697
722
  - spec/filters/bugs/main.rb
698
723
  - spec/filters/bugs/marshal.rb
699
724
  - spec/filters/bugs/math.rb
700
- - spec/filters/bugs/matrix.rb
701
725
  - spec/filters/bugs/method.rb
702
726
  - spec/filters/bugs/module.rb
703
727
  - spec/filters/bugs/nilclass.rb
@@ -711,9 +735,11 @@ files:
711
735
  - spec/filters/bugs/range.rb
712
736
  - spec/filters/bugs/rational.rb
713
737
  - spec/filters/bugs/regexp.rb
738
+ - spec/filters/bugs/ruby-32.rb
714
739
  - spec/filters/bugs/set.rb
715
740
  - spec/filters/bugs/singleton.rb
716
741
  - spec/filters/bugs/string.rb
742
+ - spec/filters/bugs/stringio.rb
717
743
  - spec/filters/bugs/stringscanner.rb
718
744
  - spec/filters/bugs/struct.rb
719
745
  - spec/filters/bugs/symbol.rb
@@ -729,9 +755,7 @@ files:
729
755
  - spec/filters/unsupported/enumerable.rb
730
756
  - spec/filters/unsupported/enumerator.rb
731
757
  - spec/filters/unsupported/file.rb
732
- - spec/filters/unsupported/fixnum.rb
733
758
  - spec/filters/unsupported/float.rb
734
- - spec/filters/unsupported/freeze.rb
735
759
  - spec/filters/unsupported/hash.rb
736
760
  - spec/filters/unsupported/integer.rb
737
761
  - spec/filters/unsupported/kernel.rb
@@ -739,10 +763,7 @@ files:
739
763
  - spec/filters/unsupported/marshal.rb
740
764
  - spec/filters/unsupported/matchdata.rb
741
765
  - spec/filters/unsupported/math.rb
742
- - spec/filters/unsupported/pathname.rb
743
766
  - spec/filters/unsupported/privacy.rb
744
- - spec/filters/unsupported/proc.rb
745
- - spec/filters/unsupported/random.rb
746
767
  - spec/filters/unsupported/range.rb
747
768
  - spec/filters/unsupported/regexp.rb
748
769
  - spec/filters/unsupported/set.rb
@@ -750,7 +771,6 @@ files:
750
771
  - spec/filters/unsupported/string.rb
751
772
  - spec/filters/unsupported/struct.rb
752
773
  - spec/filters/unsupported/symbol.rb
753
- - spec/filters/unsupported/taint.rb
754
774
  - spec/filters/unsupported/thread.rb
755
775
  - spec/filters/unsupported/time.rb
756
776
  - spec/filters/unsupported/usage_of_files.rb
@@ -968,6 +988,8 @@ files:
968
988
  - stdlib/date/formatters.rb
969
989
  - stdlib/date/infinity.rb
970
990
  - stdlib/delegate.rb
991
+ - stdlib/deno/base.rb
992
+ - stdlib/deno/file.rb
971
993
  - stdlib/dir.rb
972
994
  - stdlib/e2mmap.rb
973
995
  - stdlib/encoding.rb
@@ -979,7 +1001,9 @@ files:
979
1001
  - stdlib/gjs.rb
980
1002
  - stdlib/gjs/io.rb
981
1003
  - stdlib/gjs/kernel.rb
982
- - stdlib/headless_chrome.rb
1004
+ - stdlib/headless_browser.rb
1005
+ - stdlib/headless_browser/base.rb
1006
+ - stdlib/headless_browser/file.rb
983
1007
  - stdlib/iconv.rb
984
1008
  - stdlib/js.rb
985
1009
  - stdlib/json.rb
@@ -1169,10 +1193,10 @@ licenses:
1169
1193
  metadata:
1170
1194
  homepage_uri: https://opalrb.com/
1171
1195
  bug_tracker_uri: https://github.com/opal/opal/issues
1172
- changelog_uri: https://github.com/opal/opal/blob/v1.6.1/CHANGELOG.md
1173
- readme_uri: https://github.com/opal/opal/blob/v1.6.1/README.md
1174
- api_documentation_uri: http://opalrb.com/docs/api/v1.6.1/index.html
1175
- guides_uri: http://opalrb.com/docs/guides/v1.6.1/index.html
1196
+ changelog_uri: https://github.com/opal/opal/blob/v1.7.0/CHANGELOG.md
1197
+ readme_uri: https://github.com/opal/opal/blob/v1.7.0/README.md
1198
+ api_documentation_uri: http://opalrb.com/docs/api/v1.7.0/index.html
1199
+ guides_uri: http://opalrb.com/docs/guides/v1.7.0/index.html
1176
1200
  chat_uri: https://gitter.im/opal/opal
1177
1201
  source_code_uri: https://github.com/opal/opal
1178
1202
  post_install_message:
@@ -1252,6 +1276,7 @@ test_files:
1252
1276
  - benchmark/bm_array_uniq_numbers.rb
1253
1277
  - benchmark/bm_array_uniq_objects.rb
1254
1278
  - benchmark/bm_array_uniq_strings.rb
1279
+ - benchmark/bm_call_overhead.yml
1255
1280
  - benchmark/bm_constant_lookup_big.rb
1256
1281
  - benchmark/bm_constant_lookup_small.rb
1257
1282
  - benchmark/bm_dispatch_bind_table.rb
@@ -1345,13 +1370,15 @@ test_files:
1345
1370
  - bin/yarn
1346
1371
  - config.ru
1347
1372
  - docs/async.md
1373
+ - docs/cdp_common.json
1374
+ - docs/cdp_common.md
1348
1375
  - docs/compiled_ruby.md
1349
1376
  - docs/compiler.md
1350
1377
  - docs/compiler_directives.md
1351
1378
  - docs/configuring_gems.md
1352
1379
  - docs/encoding.md
1353
1380
  - docs/getting_started.md
1354
- - docs/headless_chrome.md
1381
+ - docs/headless_browsers.md
1355
1382
  - docs/index.md
1356
1383
  - docs/jquery.md
1357
1384
  - docs/opal_parser.md
@@ -1405,9 +1432,15 @@ test_files:
1405
1432
  - lib/opal/cli_runners/chrome.rb
1406
1433
  - lib/opal/cli_runners/chrome_cdp_interface.rb
1407
1434
  - lib/opal/cli_runners/compiler.rb
1435
+ - lib/opal/cli_runners/deno.rb
1436
+ - lib/opal/cli_runners/firefox.rb
1437
+ - lib/opal/cli_runners/firefox_cdp_interface.rb
1408
1438
  - lib/opal/cli_runners/gjs.rb
1409
1439
  - lib/opal/cli_runners/mini_racer.rb
1410
1440
  - lib/opal/cli_runners/nashorn.rb
1441
+ - lib/opal/cli_runners/node_modules/.bin/chrome-remote-interface.cmd
1442
+ - lib/opal/cli_runners/node_modules/.bin/chrome-remote-interface.ps1
1443
+ - lib/opal/cli_runners/node_modules/.package-lock.json
1411
1444
  - lib/opal/cli_runners/node_modules/chrome-remote-interface/LICENSE
1412
1445
  - lib/opal/cli_runners/node_modules/chrome-remote-interface/README.md
1413
1446
  - lib/opal/cli_runners/node_modules/chrome-remote-interface/bin/client.js
@@ -1422,30 +1455,30 @@ test_files:
1422
1455
  - lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/websocket-wrapper.js
1423
1456
  - lib/opal/cli_runners/node_modules/chrome-remote-interface/package.json
1424
1457
  - lib/opal/cli_runners/node_modules/chrome-remote-interface/webpack.config.js
1458
+ - lib/opal/cli_runners/node_modules/commander/History.md
1459
+ - lib/opal/cli_runners/node_modules/commander/LICENSE
1425
1460
  - lib/opal/cli_runners/node_modules/commander/Readme.md
1426
1461
  - lib/opal/cli_runners/node_modules/commander/index.js
1427
1462
  - lib/opal/cli_runners/node_modules/commander/package.json
1428
- - lib/opal/cli_runners/node_modules/ultron/LICENSE
1429
- - lib/opal/cli_runners/node_modules/ultron/index.js
1430
- - lib/opal/cli_runners/node_modules/ultron/package.json
1431
1463
  - lib/opal/cli_runners/node_modules/ws/LICENSE
1432
1464
  - lib/opal/cli_runners/node_modules/ws/README.md
1433
- - lib/opal/cli_runners/node_modules/ws/SECURITY.md
1465
+ - lib/opal/cli_runners/node_modules/ws/browser.js
1434
1466
  - lib/opal/cli_runners/node_modules/ws/index.js
1435
- - lib/opal/cli_runners/node_modules/ws/lib/BufferUtil.fallback.js
1436
- - lib/opal/cli_runners/node_modules/ws/lib/BufferUtil.js
1437
- - lib/opal/cli_runners/node_modules/ws/lib/ErrorCodes.js
1438
- - lib/opal/cli_runners/node_modules/ws/lib/EventTarget.js
1439
- - lib/opal/cli_runners/node_modules/ws/lib/Extensions.js
1440
- - lib/opal/cli_runners/node_modules/ws/lib/PerMessageDeflate.js
1441
- - lib/opal/cli_runners/node_modules/ws/lib/Receiver.js
1442
- - lib/opal/cli_runners/node_modules/ws/lib/Sender.js
1443
- - lib/opal/cli_runners/node_modules/ws/lib/Validation.fallback.js
1444
- - lib/opal/cli_runners/node_modules/ws/lib/Validation.js
1445
- - lib/opal/cli_runners/node_modules/ws/lib/WebSocket.js
1446
- - lib/opal/cli_runners/node_modules/ws/lib/WebSocketServer.js
1467
+ - lib/opal/cli_runners/node_modules/ws/lib/buffer-util.js
1468
+ - lib/opal/cli_runners/node_modules/ws/lib/constants.js
1469
+ - lib/opal/cli_runners/node_modules/ws/lib/event-target.js
1470
+ - lib/opal/cli_runners/node_modules/ws/lib/extension.js
1471
+ - lib/opal/cli_runners/node_modules/ws/lib/limiter.js
1472
+ - lib/opal/cli_runners/node_modules/ws/lib/permessage-deflate.js
1473
+ - lib/opal/cli_runners/node_modules/ws/lib/receiver.js
1474
+ - lib/opal/cli_runners/node_modules/ws/lib/sender.js
1475
+ - lib/opal/cli_runners/node_modules/ws/lib/stream.js
1476
+ - lib/opal/cli_runners/node_modules/ws/lib/validation.js
1477
+ - lib/opal/cli_runners/node_modules/ws/lib/websocket-server.js
1478
+ - lib/opal/cli_runners/node_modules/ws/lib/websocket.js
1447
1479
  - lib/opal/cli_runners/node_modules/ws/package.json
1448
1480
  - lib/opal/cli_runners/nodejs.rb
1481
+ - lib/opal/cli_runners/package-lock.json
1449
1482
  - lib/opal/cli_runners/package.json
1450
1483
  - lib/opal/cli_runners/quickjs.rb
1451
1484
  - lib/opal/cli_runners/server.rb
@@ -1543,6 +1576,7 @@ test_files:
1543
1576
  - lib/opal/rewriters/pattern_matching.rb
1544
1577
  - lib/opal/rewriters/returnable_logic.rb
1545
1578
  - lib/opal/rewriters/rubyspec/filters_rewriter.rb
1579
+ - lib/opal/rewriters/targeted_patches.rb
1546
1580
  - lib/opal/rewriters/thrower_finder.rb
1547
1581
  - lib/opal/server.rb
1548
1582
  - lib/opal/simple_server.rb
@@ -1612,6 +1646,7 @@ test_files:
1612
1646
  - opal/corelib/rational/base.rb
1613
1647
  - opal/corelib/regexp.rb
1614
1648
  - opal/corelib/runtime.js
1649
+ - opal/corelib/set.rb
1615
1650
  - opal/corelib/string.rb
1616
1651
  - opal/corelib/string/encoding.rb
1617
1652
  - opal/corelib/string/unpack.rb
@@ -1641,6 +1676,8 @@ test_files:
1641
1676
  - stdlib/date/formatters.rb
1642
1677
  - stdlib/date/infinity.rb
1643
1678
  - stdlib/delegate.rb
1679
+ - stdlib/deno/base.rb
1680
+ - stdlib/deno/file.rb
1644
1681
  - stdlib/dir.rb
1645
1682
  - stdlib/e2mmap.rb
1646
1683
  - stdlib/encoding.rb
@@ -1652,7 +1689,9 @@ test_files:
1652
1689
  - stdlib/gjs.rb
1653
1690
  - stdlib/gjs/io.rb
1654
1691
  - stdlib/gjs/kernel.rb
1655
- - stdlib/headless_chrome.rb
1692
+ - stdlib/headless_browser.rb
1693
+ - stdlib/headless_browser/base.rb
1694
+ - stdlib/headless_browser/file.rb
1656
1695
  - stdlib/iconv.rb
1657
1696
  - stdlib/js.rb
1658
1697
  - stdlib/json.rb
@@ -1,22 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2015 Unshift.io, Arnout Kazemier, the Contributors.
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
22
-
@@ -1,138 +0,0 @@
1
- 'use strict';
2
-
3
- var has = Object.prototype.hasOwnProperty;
4
-
5
- /**
6
- * An auto incrementing id which we can use to create "unique" Ultron instances
7
- * so we can track the event emitters that are added through the Ultron
8
- * interface.
9
- *
10
- * @type {Number}
11
- * @private
12
- */
13
- var id = 0;
14
-
15
- /**
16
- * Ultron is high-intelligence robot. It gathers intelligence so it can start improving
17
- * upon his rudimentary design. It will learn from your EventEmitting patterns
18
- * and exterminate them.
19
- *
20
- * @constructor
21
- * @param {EventEmitter} ee EventEmitter instance we need to wrap.
22
- * @api public
23
- */
24
- function Ultron(ee) {
25
- if (!(this instanceof Ultron)) return new Ultron(ee);
26
-
27
- this.id = id++;
28
- this.ee = ee;
29
- }
30
-
31
- /**
32
- * Register a new EventListener for the given event.
33
- *
34
- * @param {String} event Name of the event.
35
- * @param {Functon} fn Callback function.
36
- * @param {Mixed} context The context of the function.
37
- * @returns {Ultron}
38
- * @api public
39
- */
40
- Ultron.prototype.on = function on(event, fn, context) {
41
- fn.__ultron = this.id;
42
- this.ee.on(event, fn, context);
43
-
44
- return this;
45
- };
46
- /**
47
- * Add an EventListener that's only called once.
48
- *
49
- * @param {String} event Name of the event.
50
- * @param {Function} fn Callback function.
51
- * @param {Mixed} context The context of the function.
52
- * @returns {Ultron}
53
- * @api public
54
- */
55
- Ultron.prototype.once = function once(event, fn, context) {
56
- fn.__ultron = this.id;
57
- this.ee.once(event, fn, context);
58
-
59
- return this;
60
- };
61
-
62
- /**
63
- * Remove the listeners we assigned for the given event.
64
- *
65
- * @returns {Ultron}
66
- * @api public
67
- */
68
- Ultron.prototype.remove = function remove() {
69
- var args = arguments
70
- , ee = this.ee
71
- , event;
72
-
73
- //
74
- // When no event names are provided we assume that we need to clear all the
75
- // events that were assigned through us.
76
- //
77
- if (args.length === 1 && 'string' === typeof args[0]) {
78
- args = args[0].split(/[, ]+/);
79
- } else if (!args.length) {
80
- if (ee.eventNames) {
81
- args = ee.eventNames();
82
- } else if (ee._events) {
83
- args = [];
84
-
85
- for (event in ee._events) {
86
- if (has.call(ee._events, event)) args.push(event);
87
- }
88
-
89
- if (Object.getOwnPropertySymbols) {
90
- args = args.concat(Object.getOwnPropertySymbols(ee._events));
91
- }
92
- }
93
- }
94
-
95
- for (var i = 0; i < args.length; i++) {
96
- var listeners = ee.listeners(args[i]);
97
-
98
- for (var j = 0; j < listeners.length; j++) {
99
- event = listeners[j];
100
-
101
- //
102
- // Once listeners have a `listener` property that stores the real listener
103
- // in the EventEmitter that ships with Node.js.
104
- //
105
- if (event.listener) {
106
- if (event.listener.__ultron !== this.id) continue;
107
- delete event.listener.__ultron;
108
- } else {
109
- if (event.__ultron !== this.id) continue;
110
- delete event.__ultron;
111
- }
112
-
113
- ee.removeListener(args[i], event);
114
- }
115
- }
116
-
117
- return this;
118
- };
119
-
120
- /**
121
- * Destroy the Ultron instance, remove all listeners and release all references.
122
- *
123
- * @returns {Boolean}
124
- * @api public
125
- */
126
- Ultron.prototype.destroy = function destroy() {
127
- if (!this.ee) return false;
128
-
129
- this.remove();
130
- this.ee = null;
131
-
132
- return true;
133
- };
134
-
135
- //
136
- // Expose the module.
137
- //
138
- module.exports = Ultron;
@@ -1,112 +0,0 @@
1
- {
2
- "_args": [
3
- [
4
- {
5
- "raw": "ultron@~1.1.0",
6
- "scope": null,
7
- "escapedName": "ultron",
8
- "name": "ultron",
9
- "rawSpec": "~1.1.0",
10
- "spec": ">=1.1.0 <1.2.0",
11
- "type": "range"
12
- },
13
- "/Users/ilya/Work/opal/lib/opal/cli_runners/node_modules/ws"
14
- ]
15
- ],
16
- "_from": "ultron@>=1.1.0 <1.2.0",
17
- "_id": "ultron@1.1.0",
18
- "_inCache": true,
19
- "_location": "/ultron",
20
- "_nodeVersion": "6.2.1",
21
- "_npmOperationalInternal": {
22
- "host": "packages-12-west.internal.npmjs.com",
23
- "tmp": "tmp/ultron-1.1.0.tgz_1483969751660_0.8877595944795758"
24
- },
25
- "_npmUser": {
26
- "name": "3rdeden",
27
- "email": "npm@3rd-Eden.com"
28
- },
29
- "_npmVersion": "3.9.3",
30
- "_phantomChildren": {},
31
- "_requested": {
32
- "raw": "ultron@~1.1.0",
33
- "scope": null,
34
- "escapedName": "ultron",
35
- "name": "ultron",
36
- "rawSpec": "~1.1.0",
37
- "spec": ">=1.1.0 <1.2.0",
38
- "type": "range"
39
- },
40
- "_requiredBy": [
41
- "/ws"
42
- ],
43
- "_resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.0.tgz",
44
- "_shasum": "b07a2e6a541a815fc6a34ccd4533baec307ca864",
45
- "_shrinkwrap": null,
46
- "_spec": "ultron@~1.1.0",
47
- "_where": "/Users/ilya/Work/opal/lib/opal/cli_runners/node_modules/ws",
48
- "author": {
49
- "name": "Arnout Kazemier"
50
- },
51
- "bugs": {
52
- "url": "https://github.com/unshiftio/ultron/issues"
53
- },
54
- "dependencies": {},
55
- "description": "Ultron is high-intelligence robot. It gathers intel so it can start improving upon his rudimentary design",
56
- "devDependencies": {
57
- "assume": "1.4.x",
58
- "eventemitter3": "2.0.x",
59
- "istanbul": "0.4.x",
60
- "mocha": "~3.2.0",
61
- "pre-commit": "~1.2.0"
62
- },
63
- "directories": {},
64
- "dist": {
65
- "shasum": "b07a2e6a541a815fc6a34ccd4533baec307ca864",
66
- "tarball": "https://registry.npmjs.org/ultron/-/ultron-1.1.0.tgz"
67
- },
68
- "gitHead": "6eb97b74402978aebda4a9d497cb6243ec80c9f1",
69
- "homepage": "https://github.com/unshiftio/ultron",
70
- "keywords": [
71
- "Ultron",
72
- "robot",
73
- "gather",
74
- "intelligence",
75
- "event",
76
- "events",
77
- "eventemitter",
78
- "emitter",
79
- "cleanup"
80
- ],
81
- "license": "MIT",
82
- "main": "index.js",
83
- "maintainers": [
84
- {
85
- "name": "unshift",
86
- "email": "npm@unshift.io"
87
- },
88
- {
89
- "name": "v1",
90
- "email": "info@3rd-Eden.com"
91
- },
92
- {
93
- "name": "3rdeden",
94
- "email": "npm@3rd-Eden.com"
95
- }
96
- ],
97
- "name": "ultron",
98
- "optionalDependencies": {},
99
- "readme": "ERROR: No README data found!",
100
- "repository": {
101
- "type": "git",
102
- "url": "git+https://github.com/unshiftio/ultron.git"
103
- },
104
- "scripts": {
105
- "100%": "istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100",
106
- "coverage": "istanbul cover _mocha -- test.js",
107
- "test": "mocha test.js",
108
- "test-travis": "istanbul cover _mocha --report lcovonly -- test.js",
109
- "watch": "mocha --watch test.js"
110
- },
111
- "version": "1.1.0"
112
- }
@@ -1,33 +0,0 @@
1
- # Security Guidelines
2
-
3
- Please contact us directly at **security@3rd-Eden.com** for any bug that might
4
- impact the security of this project. Please prefix the subject of your email
5
- with `[security]` in lowercase and square brackets. Our email filters will
6
- automatically prevent these messages from being moved to our spam box.
7
-
8
- You will receive an acknowledgement of your report within **24 hours**.
9
-
10
- All emails that do not include security vulnerabilities will be removed and
11
- blocked instantly.
12
-
13
- ## Exceptions
14
-
15
- If you do not receive an acknowledgement within the said time frame please give
16
- us the benefit of the doubt as it's possible that we haven't seen it yet. In
17
- this case please send us a message **without details** using one of the
18
- following methods:
19
-
20
- - Contact the lead developers of this project on their personal e-mails. You
21
- can find the e-mails in the git logs, for example using the following command:
22
- `git --no-pager show -s --format='%an <%ae>' <gitsha>` where `<gitsha>` is the
23
- SHA1 of their latest commit in the project.
24
- - Create a GitHub issue stating contact details and the severity of the issue.
25
-
26
- Once we have acknowledged receipt of your report and confirmed the bug
27
- ourselves we will work with you to fix the vulnerability and publicly acknowledge
28
- your responsible disclosure, if you wish. In addition to that we will report
29
- all vulnerabilities to the [Node Security Project](https://nodesecurity.io/).
30
-
31
- ## History
32
-
33
- 04 Jan 2016: [Buffer vulnerablity](https://github.com/websockets/ws/releases/tag/1.0.1)