opal 1.6.1 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +17 -0
  3. data/CHANGELOG.md +35 -1
  4. data/Gemfile +1 -0
  5. data/HACKING.md +47 -26
  6. data/benchmark/benchmarks +415 -103
  7. data/benchmark/bm_call_overhead.yml +28 -0
  8. data/benchmark/run.rb +61 -40
  9. data/docs/cdp_common.json +3364 -0
  10. data/docs/cdp_common.md +18 -0
  11. data/docs/{headless_chrome.md → headless_browsers.md} +31 -12
  12. data/lib/opal/ast/builder.rb +1 -1
  13. data/lib/opal/builder.rb +6 -1
  14. data/lib/opal/builder_processors.rb +5 -3
  15. data/lib/opal/cache.rb +1 -7
  16. data/lib/opal/cli_options.rb +72 -58
  17. data/lib/opal/cli_runners/chrome.rb +47 -9
  18. data/lib/opal/cli_runners/chrome_cdp_interface.rb +238 -112
  19. data/lib/opal/cli_runners/compiler.rb +146 -13
  20. data/lib/opal/cli_runners/deno.rb +32 -0
  21. data/lib/opal/cli_runners/firefox.rb +350 -0
  22. data/lib/opal/cli_runners/firefox_cdp_interface.rb +212 -0
  23. data/lib/opal/cli_runners/node_modules/.bin/chrome-remote-interface.cmd +17 -0
  24. data/lib/opal/cli_runners/node_modules/.bin/chrome-remote-interface.ps1 +28 -0
  25. data/lib/opal/cli_runners/node_modules/.package-lock.json +41 -0
  26. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/LICENSE +1 -1
  27. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/README.md +322 -182
  28. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/bin/client.js +99 -114
  29. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/chrome-remote-interface.js +1 -11
  30. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/index.js +16 -11
  31. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/api.js +41 -33
  32. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/chrome.js +224 -214
  33. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/devtools.js +71 -191
  34. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/external-request.js +26 -6
  35. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/protocol.json +20788 -9049
  36. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/websocket-wrapper.js +10 -3
  37. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/package.json +59 -123
  38. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/webpack.config.js +25 -32
  39. data/lib/opal/cli_runners/node_modules/commander/History.md +298 -0
  40. data/lib/opal/cli_runners/node_modules/commander/LICENSE +22 -0
  41. data/lib/opal/cli_runners/node_modules/commander/Readme.md +217 -61
  42. data/lib/opal/cli_runners/node_modules/commander/index.js +431 -145
  43. data/lib/opal/cli_runners/node_modules/commander/package.json +16 -79
  44. data/lib/opal/cli_runners/node_modules/ws/README.md +334 -98
  45. data/lib/opal/cli_runners/node_modules/ws/browser.js +8 -0
  46. data/lib/opal/cli_runners/node_modules/ws/index.js +5 -10
  47. data/lib/opal/cli_runners/node_modules/ws/lib/buffer-util.js +129 -0
  48. data/lib/opal/cli_runners/node_modules/ws/lib/constants.js +10 -0
  49. data/lib/opal/cli_runners/node_modules/ws/lib/event-target.js +184 -0
  50. data/lib/opal/cli_runners/node_modules/ws/lib/extension.js +223 -0
  51. data/lib/opal/cli_runners/node_modules/ws/lib/limiter.js +55 -0
  52. data/lib/opal/cli_runners/node_modules/ws/lib/permessage-deflate.js +518 -0
  53. data/lib/opal/cli_runners/node_modules/ws/lib/receiver.js +607 -0
  54. data/lib/opal/cli_runners/node_modules/ws/lib/sender.js +409 -0
  55. data/lib/opal/cli_runners/node_modules/ws/lib/stream.js +180 -0
  56. data/lib/opal/cli_runners/node_modules/ws/lib/validation.js +104 -0
  57. data/lib/opal/cli_runners/node_modules/ws/lib/websocket-server.js +447 -0
  58. data/lib/opal/cli_runners/node_modules/ws/lib/websocket.js +1195 -0
  59. data/lib/opal/cli_runners/node_modules/ws/package.json +40 -106
  60. data/lib/opal/cli_runners/package-lock.json +62 -0
  61. data/lib/opal/cli_runners/package.json +1 -1
  62. data/lib/opal/cli_runners.rb +26 -4
  63. data/lib/opal/nodes/args/prepare_post_args.rb +2 -2
  64. data/lib/opal/nodes/def.rb +8 -8
  65. data/lib/opal/nodes/iter.rb +12 -12
  66. data/lib/opal/nodes/logic.rb +1 -1
  67. data/lib/opal/nodes/masgn.rb +2 -2
  68. data/lib/opal/parser/with_ruby_lexer.rb +1 -1
  69. data/lib/opal/paths.rb +14 -0
  70. data/lib/opal/rewriter.rb +2 -0
  71. data/lib/opal/rewriters/forward_args.rb +52 -4
  72. data/lib/opal/rewriters/targeted_patches.rb +94 -0
  73. data/lib/opal/version.rb +1 -1
  74. data/opal/corelib/basic_object.rb +1 -1
  75. data/opal/corelib/boolean.rb +2 -2
  76. data/opal/corelib/class.rb +11 -0
  77. data/opal/corelib/constants.rb +3 -3
  78. data/opal/corelib/enumerable.rb +4 -0
  79. data/opal/corelib/enumerator.rb +1 -1
  80. data/opal/corelib/hash.rb +2 -2
  81. data/opal/corelib/helpers.rb +1 -1
  82. data/opal/corelib/kernel.rb +3 -3
  83. data/opal/corelib/method.rb +1 -1
  84. data/opal/corelib/module.rb +29 -8
  85. data/opal/corelib/proc.rb +7 -5
  86. data/opal/corelib/runtime.js +141 -78
  87. data/opal/corelib/set.rb +252 -0
  88. data/opal/corelib/string.rb +2 -1
  89. data/opal/corelib/time.rb +2 -2
  90. data/opal/opal.rb +1 -0
  91. data/opal.gemspec +1 -0
  92. data/spec/filters/bugs/array.rb +22 -13
  93. data/spec/filters/bugs/base64.rb +5 -5
  94. data/spec/filters/bugs/basicobject.rb +16 -8
  95. data/spec/filters/bugs/bigdecimal.rb +161 -160
  96. data/spec/filters/bugs/binding.rb +10 -10
  97. data/spec/filters/bugs/class.rb +8 -8
  98. data/spec/filters/bugs/complex.rb +2 -1
  99. data/spec/filters/bugs/date.rb +79 -81
  100. data/spec/filters/bugs/datetime.rb +29 -29
  101. data/spec/filters/bugs/delegate.rb +1 -3
  102. data/spec/filters/bugs/encoding.rb +69 -69
  103. data/spec/filters/bugs/enumerable.rb +22 -20
  104. data/spec/filters/bugs/enumerator.rb +88 -85
  105. data/spec/filters/bugs/exception.rb +46 -40
  106. data/spec/filters/bugs/file.rb +32 -32
  107. data/spec/filters/bugs/float.rb +26 -21
  108. data/spec/filters/bugs/freeze.rb +88 -0
  109. data/spec/filters/bugs/hash.rb +39 -38
  110. data/spec/filters/bugs/integer.rb +57 -44
  111. data/spec/filters/bugs/io.rb +1 -1
  112. data/spec/filters/bugs/kernel.rb +349 -269
  113. data/spec/filters/bugs/language.rb +220 -188
  114. data/spec/filters/bugs/main.rb +5 -3
  115. data/spec/filters/bugs/marshal.rb +38 -38
  116. data/spec/filters/bugs/math.rb +2 -1
  117. data/spec/filters/bugs/method.rb +73 -62
  118. data/spec/filters/bugs/module.rb +163 -143
  119. data/spec/filters/bugs/numeric.rb +6 -6
  120. data/spec/filters/bugs/objectspace.rb +16 -16
  121. data/spec/filters/bugs/openstruct.rb +1 -1
  122. data/spec/filters/bugs/pack_unpack.rb +51 -51
  123. data/spec/filters/bugs/pathname.rb +7 -7
  124. data/spec/filters/bugs/proc.rb +63 -63
  125. data/spec/filters/bugs/random.rb +7 -6
  126. data/spec/filters/bugs/range.rb +12 -9
  127. data/spec/filters/bugs/rational.rb +8 -7
  128. data/spec/filters/bugs/regexp.rb +49 -48
  129. data/spec/filters/bugs/ruby-32.rb +56 -0
  130. data/spec/filters/bugs/set.rb +30 -30
  131. data/spec/filters/bugs/singleton.rb +4 -4
  132. data/spec/filters/bugs/string.rb +187 -99
  133. data/spec/filters/bugs/stringio.rb +7 -0
  134. data/spec/filters/bugs/stringscanner.rb +68 -68
  135. data/spec/filters/bugs/struct.rb +11 -9
  136. data/spec/filters/bugs/symbol.rb +1 -1
  137. data/spec/filters/bugs/time.rb +78 -63
  138. data/spec/filters/bugs/trace_point.rb +4 -4
  139. data/spec/filters/bugs/unboundmethod.rb +32 -17
  140. data/spec/filters/bugs/warnings.rb +8 -12
  141. data/spec/filters/unsupported/array.rb +24 -107
  142. data/spec/filters/unsupported/basicobject.rb +12 -12
  143. data/spec/filters/unsupported/bignum.rb +27 -52
  144. data/spec/filters/unsupported/class.rb +1 -2
  145. data/spec/filters/unsupported/delegator.rb +3 -3
  146. data/spec/filters/unsupported/enumerable.rb +2 -9
  147. data/spec/filters/unsupported/enumerator.rb +2 -11
  148. data/spec/filters/unsupported/file.rb +1 -1
  149. data/spec/filters/unsupported/float.rb +28 -47
  150. data/spec/filters/unsupported/hash.rb +8 -14
  151. data/spec/filters/unsupported/integer.rb +75 -91
  152. data/spec/filters/unsupported/kernel.rb +17 -35
  153. data/spec/filters/unsupported/language.rb +11 -19
  154. data/spec/filters/unsupported/marshal.rb +22 -41
  155. data/spec/filters/unsupported/matchdata.rb +28 -52
  156. data/spec/filters/unsupported/math.rb +1 -1
  157. data/spec/filters/unsupported/privacy.rb +229 -285
  158. data/spec/filters/unsupported/range.rb +1 -5
  159. data/spec/filters/unsupported/regexp.rb +40 -66
  160. data/spec/filters/unsupported/set.rb +2 -2
  161. data/spec/filters/unsupported/singleton.rb +4 -4
  162. data/spec/filters/unsupported/string.rb +305 -508
  163. data/spec/filters/unsupported/struct.rb +3 -4
  164. data/spec/filters/unsupported/symbol.rb +15 -18
  165. data/spec/filters/unsupported/thread.rb +1 -7
  166. data/spec/filters/unsupported/time.rb +159 -202
  167. data/spec/filters/unsupported/usage_of_files.rb +170 -259
  168. data/spec/lib/builder_spec.rb +4 -4
  169. data/spec/lib/rewriters/forward_args_spec.rb +32 -12
  170. data/spec/mspec-opal/runner.rb +2 -0
  171. data/spec/ruby_specs +4 -0
  172. data/stdlib/deno/base.rb +28 -0
  173. data/stdlib/deno/file.rb +340 -0
  174. data/stdlib/{headless_chrome.rb → headless_browser/base.rb} +1 -1
  175. data/stdlib/headless_browser/file.rb +15 -0
  176. data/stdlib/headless_browser.rb +4 -0
  177. data/stdlib/native.rb +1 -1
  178. data/stdlib/nodejs/file.rb +5 -0
  179. data/stdlib/opal/platform.rb +8 -6
  180. data/stdlib/opal-platform.rb +14 -8
  181. data/stdlib/set.rb +1 -258
  182. data/tasks/benchmarking.rake +62 -19
  183. data/tasks/performance.rake +1 -1
  184. data/tasks/testing.rake +5 -3
  185. data/test/nodejs/test_file.rb +29 -10
  186. data/test/opal/http_server.rb +28 -11
  187. data/test/opal/unsupported_and_bugs.rb +2 -1
  188. metadata +89 -50
  189. data/lib/opal/cli_runners/node_modules/ultron/LICENSE +0 -22
  190. data/lib/opal/cli_runners/node_modules/ultron/index.js +0 -138
  191. data/lib/opal/cli_runners/node_modules/ultron/package.json +0 -112
  192. data/lib/opal/cli_runners/node_modules/ws/SECURITY.md +0 -33
  193. data/lib/opal/cli_runners/node_modules/ws/lib/BufferUtil.fallback.js +0 -56
  194. data/lib/opal/cli_runners/node_modules/ws/lib/BufferUtil.js +0 -15
  195. data/lib/opal/cli_runners/node_modules/ws/lib/ErrorCodes.js +0 -28
  196. data/lib/opal/cli_runners/node_modules/ws/lib/EventTarget.js +0 -158
  197. data/lib/opal/cli_runners/node_modules/ws/lib/Extensions.js +0 -69
  198. data/lib/opal/cli_runners/node_modules/ws/lib/PerMessageDeflate.js +0 -339
  199. data/lib/opal/cli_runners/node_modules/ws/lib/Receiver.js +0 -520
  200. data/lib/opal/cli_runners/node_modules/ws/lib/Sender.js +0 -438
  201. data/lib/opal/cli_runners/node_modules/ws/lib/Validation.fallback.js +0 -9
  202. data/lib/opal/cli_runners/node_modules/ws/lib/Validation.js +0 -17
  203. data/lib/opal/cli_runners/node_modules/ws/lib/WebSocket.js +0 -705
  204. data/lib/opal/cli_runners/node_modules/ws/lib/WebSocketServer.js +0 -336
  205. data/spec/filters/bugs/boolean.rb +0 -3
  206. data/spec/filters/bugs/matrix.rb +0 -3
  207. data/spec/filters/unsupported/fixnum.rb +0 -15
  208. data/spec/filters/unsupported/freeze.rb +0 -102
  209. data/spec/filters/unsupported/pathname.rb +0 -4
  210. data/spec/filters/unsupported/proc.rb +0 -4
  211. data/spec/filters/unsupported/random.rb +0 -5
  212. data/spec/filters/unsupported/taint.rb +0 -162
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)