opal 1.2.0 → 1.3.0.alpha1

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 (159) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc.await.js +6 -0
  3. data/.eslintrc.js +34 -0
  4. data/.github/workflows/build.yml +8 -0
  5. data/.rubocop.yml +9 -0
  6. data/CHANGELOG.md +4 -0
  7. data/README.md +1 -1
  8. data/Rakefile +1 -0
  9. data/UNRELEASED.md +64 -38
  10. data/docs/async.md +109 -0
  11. data/docs/roda-sprockets.md +0 -2
  12. data/exe/opal +2 -0
  13. data/exe/opal-repl +2 -2
  14. data/lib/opal/builder.rb +5 -1
  15. data/lib/opal/builder_processors.rb +7 -2
  16. data/lib/opal/cache/file_cache.rb +119 -0
  17. data/lib/opal/cache.rb +71 -0
  18. data/lib/opal/cli.rb +35 -1
  19. data/lib/opal/cli_options.rb +21 -0
  20. data/lib/opal/cli_runners/chrome.rb +21 -14
  21. data/lib/opal/cli_runners/chrome_cdp_interface.js +30285 -0
  22. data/lib/opal/cli_runners/{chrome.js → chrome_cdp_interface.rb} +27 -6
  23. data/lib/opal/cli_runners/compiler.rb +2 -1
  24. data/lib/opal/cli_runners/gjs.rb +27 -0
  25. data/lib/opal/cli_runners/mini_racer.rb +36 -0
  26. data/lib/opal/cli_runners/source-map-support-browser.js +276 -91
  27. data/lib/opal/cli_runners/source-map-support-node.js +276 -91
  28. data/lib/opal/cli_runners/source-map-support.js +60 -18
  29. data/lib/opal/cli_runners.rb +2 -0
  30. data/lib/opal/compiler.rb +99 -10
  31. data/lib/opal/fragment.rb +77 -14
  32. data/lib/opal/nodes/args/extract_kwrestarg.rb +6 -4
  33. data/lib/opal/nodes/args/extract_restarg.rb +10 -12
  34. data/lib/opal/nodes/args.rb +28 -0
  35. data/lib/opal/nodes/base.rb +29 -5
  36. data/lib/opal/nodes/call.rb +123 -2
  37. data/lib/opal/nodes/case.rb +7 -1
  38. data/lib/opal/nodes/class.rb +12 -2
  39. data/lib/opal/nodes/def.rb +3 -23
  40. data/lib/opal/nodes/definitions.rb +21 -4
  41. data/lib/opal/nodes/helpers.rb +2 -2
  42. data/lib/opal/nodes/if.rb +39 -9
  43. data/lib/opal/nodes/iter.rb +15 -3
  44. data/lib/opal/nodes/lambda.rb +3 -1
  45. data/lib/opal/nodes/literal.rb +13 -7
  46. data/lib/opal/nodes/logic.rb +2 -2
  47. data/lib/opal/nodes/module.rb +12 -2
  48. data/lib/opal/nodes/rescue.rb +59 -34
  49. data/lib/opal/nodes/scope.rb +88 -6
  50. data/lib/opal/nodes/super.rb +52 -25
  51. data/lib/opal/nodes/top.rb +13 -7
  52. data/lib/opal/nodes/while.rb +7 -1
  53. data/lib/opal/parser/patch.rb +2 -1
  54. data/lib/opal/repl.rb +137 -49
  55. data/lib/opal/rewriters/binary_operator_assignment.rb +10 -10
  56. data/lib/opal/rewriters/block_to_iter.rb +3 -3
  57. data/lib/opal/rewriters/for_rewriter.rb +7 -7
  58. data/lib/opal/rewriters/js_reserved_words.rb +5 -3
  59. data/lib/opal/source_map/file.rb +7 -4
  60. data/lib/opal/source_map/map.rb +17 -3
  61. data/lib/opal/version.rb +1 -1
  62. data/opal/corelib/array.rb +2 -2
  63. data/opal/corelib/binding.rb +46 -0
  64. data/opal/corelib/boolean.rb +54 -4
  65. data/opal/corelib/class.rb +2 -0
  66. data/opal/corelib/constants.rb +2 -2
  67. data/opal/corelib/error.rb +98 -12
  68. data/opal/corelib/io.rb +250 -38
  69. data/opal/corelib/kernel/format.rb +5 -2
  70. data/opal/corelib/kernel.rb +44 -23
  71. data/opal/corelib/main.rb +5 -0
  72. data/opal/corelib/method.rb +1 -0
  73. data/opal/corelib/module.rb +28 -0
  74. data/opal/corelib/number.rb +12 -1
  75. data/opal/corelib/random/seedrandom.js.rb +2 -2
  76. data/opal/corelib/regexp.rb +47 -3
  77. data/opal/corelib/runtime.js +152 -12
  78. data/opal/corelib/string/encoding.rb +17 -17
  79. data/opal/corelib/string.rb +2 -0
  80. data/opal/corelib/struct.rb +10 -3
  81. data/opal/corelib/trace_point.rb +57 -0
  82. data/opal/opal/full.rb +2 -0
  83. data/package.json +3 -2
  84. data/spec/filters/bugs/array.rb +0 -1
  85. data/spec/filters/bugs/basicobject.rb +0 -1
  86. data/spec/filters/bugs/binding.rb +27 -0
  87. data/spec/filters/bugs/enumerator.rb +132 -0
  88. data/spec/filters/bugs/exception.rb +70 -93
  89. data/spec/filters/bugs/float.rb +0 -1
  90. data/spec/filters/bugs/kernel.rb +3 -9
  91. data/spec/filters/bugs/language.rb +15 -58
  92. data/spec/filters/bugs/main.rb +16 -0
  93. data/spec/filters/bugs/matrix.rb +39 -0
  94. data/spec/filters/bugs/method.rb +0 -2
  95. data/spec/filters/bugs/module.rb +36 -79
  96. data/spec/filters/bugs/proc.rb +0 -1
  97. data/spec/filters/bugs/regexp.rb +0 -16
  98. data/spec/filters/bugs/trace_point.rb +12 -0
  99. data/spec/filters/bugs/warnings.rb +0 -4
  100. data/spec/filters/unsupported/freeze.rb +2 -0
  101. data/spec/filters/unsupported/privacy.rb +4 -0
  102. data/spec/lib/compiler_spec.rb +7 -1
  103. data/spec/lib/repl_spec.rb +4 -2
  104. data/spec/lib/source_map/file_spec.rb +1 -1
  105. data/spec/mspec-opal/formatters.rb +18 -4
  106. data/spec/mspec-opal/runner.rb +2 -2
  107. data/spec/opal/core/boolean_spec.rb +44 -0
  108. data/spec/opal/core/hash_spec.rb +8 -0
  109. data/spec/opal/core/number/to_s_spec.rb +11 -0
  110. data/spec/opal/stdlib/json/ext_spec.rb +3 -3
  111. data/spec/opal/stdlib/logger/logger_spec.rb +10 -1
  112. data/spec/ruby_specs +18 -0
  113. data/stdlib/await.rb +83 -0
  114. data/stdlib/base64.rb +4 -4
  115. data/stdlib/bigdecimal/bignumber.js.rb +4 -2
  116. data/stdlib/bigdecimal.rb +1 -0
  117. data/stdlib/gjs/io.rb +33 -0
  118. data/stdlib/gjs/kernel.rb +5 -0
  119. data/stdlib/gjs.rb +2 -0
  120. data/stdlib/js.rb +4 -0
  121. data/stdlib/json.rb +3 -3
  122. data/stdlib/logger.rb +1 -1
  123. data/stdlib/nashorn/file.rb +2 -0
  124. data/stdlib/nodejs/env.rb +7 -0
  125. data/stdlib/nodejs/file.rb +6 -41
  126. data/stdlib/nodejs/io.rb +21 -5
  127. data/stdlib/nodejs/js-yaml-3-6-1.js +2 -2
  128. data/stdlib/opal/miniracer.rb +6 -0
  129. data/stdlib/opal/platform.rb +4 -0
  130. data/stdlib/opal/repl_js.rb +5 -0
  131. data/stdlib/opal/replutils.rb +271 -0
  132. data/stdlib/opal-parser.rb +24 -11
  133. data/stdlib/opal-platform.rb +8 -0
  134. data/stdlib/promise/v2.rb +16 -4
  135. data/stdlib/promise.rb +14 -0
  136. data/stdlib/stringio.rb +13 -110
  137. data/stdlib/thread.rb +29 -0
  138. data/tasks/building.rake +10 -4
  139. data/tasks/linting-parse-eslint-results.js +39 -0
  140. data/tasks/linting.rake +38 -28
  141. data/tasks/performance/asciidoctor_test.rb.erb +6 -0
  142. data/tasks/performance/optimization_status.rb +77 -0
  143. data/tasks/performance.rake +149 -0
  144. data/tasks/testing.rake +9 -1
  145. data/test/nodejs/test_await.rb +169 -0
  146. data/test/opal/promisev2/test_error.rb +9 -3
  147. data/test/opal/unsupported_and_bugs.rb +5 -0
  148. data/vendored-minitest/minitest/benchmark.rb +9 -7
  149. data/vendored-minitest/minitest/test.rb +14 -12
  150. data/vendored-minitest/minitest.rb +19 -16
  151. data/yarn.lock +686 -117
  152. metadata +60 -23
  153. data/.jshintrc +0 -41
  154. data/spec/filters/unsupported/refinements.rb +0 -8
  155. data/vendored-minitest/minitest/hell.rb +0 -11
  156. data/vendored-minitest/minitest/parallel.rb +0 -65
  157. data/vendored-minitest/minitest/pride.rb +0 -4
  158. data/vendored-minitest/minitest/pride_plugin.rb +0 -142
  159. data/vendored-minitest/minitest/unit.rb +0 -45
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.2.0
4
+ version: 1.3.0.alpha1
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: 2021-07-28 00:00:00.000000000 Z
13
+ date: 2021-09-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: ast
@@ -236,6 +236,8 @@ extensions: []
236
236
  extra_rdoc_files: []
237
237
  files:
238
238
  - ".codeclimate.yml"
239
+ - ".eslintrc.await.js"
240
+ - ".eslintrc.js"
239
241
  - ".gitattributes"
240
242
  - ".github/FUNDING.yml"
241
243
  - ".github/ISSUE_TEMPLATE/bug-report.md"
@@ -244,7 +246,6 @@ files:
244
246
  - ".gitignore"
245
247
  - ".gitmodules"
246
248
  - ".inch.yml"
247
- - ".jshintrc"
248
249
  - ".overcommit.yml"
249
250
  - ".rspec"
250
251
  - ".rubocop.yml"
@@ -382,6 +383,7 @@ files:
382
383
  - bin/setup
383
384
  - bin/yarn
384
385
  - config.ru
386
+ - docs/async.md
385
387
  - docs/compiled_ruby.md
386
388
  - docs/compiler.md
387
389
  - docs/compiler_directives.md
@@ -423,13 +425,18 @@ files:
423
425
  - lib/opal/ast/node.rb
424
426
  - lib/opal/builder.rb
425
427
  - lib/opal/builder_processors.rb
428
+ - lib/opal/cache.rb
429
+ - lib/opal/cache/file_cache.rb
426
430
  - lib/opal/cli.rb
427
431
  - lib/opal/cli_options.rb
428
432
  - lib/opal/cli_runners.rb
429
433
  - lib/opal/cli_runners/applescript.rb
430
- - lib/opal/cli_runners/chrome.js
431
434
  - lib/opal/cli_runners/chrome.rb
435
+ - lib/opal/cli_runners/chrome_cdp_interface.js
436
+ - lib/opal/cli_runners/chrome_cdp_interface.rb
432
437
  - lib/opal/cli_runners/compiler.rb
438
+ - lib/opal/cli_runners/gjs.rb
439
+ - lib/opal/cli_runners/mini_racer.rb
433
440
  - lib/opal/cli_runners/nashorn.rb
434
441
  - lib/opal/cli_runners/node_modules/chrome-remote-interface/LICENSE
435
442
  - lib/opal/cli_runners/node_modules/chrome-remote-interface/README.md
@@ -580,6 +587,7 @@ files:
580
587
  - opal/corelib/array.rb
581
588
  - opal/corelib/array/pack.rb
582
589
  - opal/corelib/basic_object.rb
590
+ - opal/corelib/binding.rb
583
591
  - opal/corelib/boolean.rb
584
592
  - opal/corelib/class.rb
585
593
  - opal/corelib/comparable.rb
@@ -624,6 +632,7 @@ files:
624
632
  - opal/corelib/string/unpack.rb
625
633
  - opal/corelib/struct.rb
626
634
  - opal/corelib/time.rb
635
+ - opal/corelib/trace_point.rb
627
636
  - opal/corelib/unsupported.rb
628
637
  - opal/corelib/variables.rb
629
638
  - opal/opal.rb
@@ -636,6 +645,7 @@ files:
636
645
  - spec/filters/bugs/base64.rb
637
646
  - spec/filters/bugs/basicobject.rb
638
647
  - spec/filters/bugs/bigdecimal.rb
648
+ - spec/filters/bugs/binding.rb
639
649
  - spec/filters/bugs/class.rb
640
650
  - spec/filters/bugs/complex.rb
641
651
  - spec/filters/bugs/date.rb
@@ -650,8 +660,10 @@ files:
650
660
  - spec/filters/bugs/io.rb
651
661
  - spec/filters/bugs/kernel.rb
652
662
  - spec/filters/bugs/language.rb
663
+ - spec/filters/bugs/main.rb
653
664
  - spec/filters/bugs/marshal.rb
654
665
  - spec/filters/bugs/math.rb
666
+ - spec/filters/bugs/matrix.rb
655
667
  - spec/filters/bugs/method.rb
656
668
  - spec/filters/bugs/module.rb
657
669
  - spec/filters/bugs/nilclass.rb
@@ -672,6 +684,7 @@ files:
672
684
  - spec/filters/bugs/struct.rb
673
685
  - spec/filters/bugs/symbol.rb
674
686
  - spec/filters/bugs/time.rb
687
+ - spec/filters/bugs/trace_point.rb
675
688
  - spec/filters/bugs/unboundmethod.rb
676
689
  - spec/filters/bugs/warnings.rb
677
690
  - spec/filters/unsupported/array.rb
@@ -697,7 +710,6 @@ files:
697
710
  - spec/filters/unsupported/proc.rb
698
711
  - spec/filters/unsupported/random.rb
699
712
  - spec/filters/unsupported/range.rb
700
- - spec/filters/unsupported/refinements.rb
701
713
  - spec/filters/unsupported/regexp.rb
702
714
  - spec/filters/unsupported/set.rb
703
715
  - spec/filters/unsupported/singleton.rb
@@ -762,6 +774,7 @@ files:
762
774
  - spec/opal/core/array/minus_spec.rb
763
775
  - spec/opal/core/array/union_spec.rb
764
776
  - spec/opal/core/array/uniq_spec.rb
777
+ - spec/opal/core/boolean_spec.rb
765
778
  - spec/opal/core/class/inherited_spec.rb
766
779
  - spec/opal/core/enumerable/all_break_spec.rb
767
780
  - spec/opal/core/enumerable/any_break_spec.rb
@@ -798,6 +811,7 @@ files:
798
811
  - spec/opal/core/fixtures/require_tree_with_dot/file 3.rb
799
812
  - spec/opal/core/fixtures/require_tree_with_dot/index.rb
800
813
  - spec/opal/core/hash/internals_spec.rb
814
+ - spec/opal/core/hash_spec.rb
801
815
  - spec/opal/core/helpers_spec.rb
802
816
  - spec/opal/core/iterable_props_spec.rb
803
817
  - spec/opal/core/kernel/at_exit_spec.rb
@@ -824,6 +838,7 @@ files:
824
838
  - spec/opal/core/marshal/load_spec.rb
825
839
  - spec/opal/core/module_spec.rb
826
840
  - spec/opal/core/number/to_i_spec.rb
841
+ - spec/opal/core/number/to_s_spec.rb
827
842
  - spec/opal/core/object_id_spec.rb
828
843
  - spec/opal/core/regexp/interpolation_spec.rb
829
844
  - spec/opal/core/regexp/match_spec.rb
@@ -895,6 +910,7 @@ files:
895
910
  - spec/support/rewriters_helper.rb
896
911
  - spec/support/source_map_helper.rb
897
912
  - stdlib/README.md
913
+ - stdlib/await.rb
898
914
  - stdlib/base64.rb
899
915
  - stdlib/benchmark.rb
900
916
  - stdlib/bigdecimal.rb
@@ -914,6 +930,9 @@ files:
914
930
  - stdlib/file.rb
915
931
  - stdlib/fileutils.rb
916
932
  - stdlib/forwardable.rb
933
+ - stdlib/gjs.rb
934
+ - stdlib/gjs/io.rb
935
+ - stdlib/gjs/kernel.rb
917
936
  - stdlib/headless_chrome.rb
918
937
  - stdlib/iconv.rb
919
938
  - stdlib/js.rb
@@ -1007,7 +1026,10 @@ files:
1007
1026
  - stdlib/opal-parser.rb
1008
1027
  - stdlib/opal-platform.rb
1009
1028
  - stdlib/opal-source-maps.rb
1029
+ - stdlib/opal/miniracer.rb
1010
1030
  - stdlib/opal/platform.rb
1031
+ - stdlib/opal/repl_js.rb
1032
+ - stdlib/opal/replutils.rb
1011
1033
  - stdlib/open-uri.rb
1012
1034
  - stdlib/ostruct.rb
1013
1035
  - stdlib/pathname.rb
@@ -1031,7 +1053,11 @@ files:
1031
1053
  - tasks/benchmarking.rake
1032
1054
  - tasks/building.rake
1033
1055
  - tasks/github.rake
1056
+ - tasks/linting-parse-eslint-results.js
1034
1057
  - tasks/linting.rake
1058
+ - tasks/performance.rake
1059
+ - tasks/performance/asciidoctor_test.rb.erb
1060
+ - tasks/performance/optimization_status.rb
1035
1061
  - tasks/releasing.rake
1036
1062
  - tasks/testing.rake
1037
1063
  - tasks/testing/mspec_special_calls.rb
@@ -1041,6 +1067,7 @@ files:
1041
1067
  - test/nodejs/fixtures/iso88591.txt
1042
1068
  - test/nodejs/fixtures/utf8.txt
1043
1069
  - test/nodejs/fixtures/win1258.txt
1070
+ - test/nodejs/test_await.rb
1044
1071
  - test/nodejs/test_dir.rb
1045
1072
  - test/nodejs/test_env.rb
1046
1073
  - test/nodejs/test_error.rb
@@ -1069,14 +1096,9 @@ files:
1069
1096
  - vendored-minitest/minitest/autorun.rb
1070
1097
  - vendored-minitest/minitest/benchmark.rb
1071
1098
  - vendored-minitest/minitest/expectations.rb
1072
- - vendored-minitest/minitest/hell.rb
1073
1099
  - vendored-minitest/minitest/mock.rb
1074
- - vendored-minitest/minitest/parallel.rb
1075
- - vendored-minitest/minitest/pride.rb
1076
- - vendored-minitest/minitest/pride_plugin.rb
1077
1100
  - vendored-minitest/minitest/spec.rb
1078
1101
  - vendored-minitest/minitest/test.rb
1079
- - vendored-minitest/minitest/unit.rb
1080
1102
  - vendored-minitest/test/unit.rb
1081
1103
  - yarn.lock
1082
1104
  homepage: https://opalrb.com
@@ -1085,10 +1107,10 @@ licenses:
1085
1107
  metadata:
1086
1108
  homepage_uri: https://opalrb.com/
1087
1109
  bug_tracker_uri: https://github.com/opal/opal/issues
1088
- changelog_uri: https://github.com/opal/opal/blob/v1.2.0/CHANGELOG.md
1089
- readme_uri: https://github.com/opal/opal/blob/v1.2.0/README.md
1090
- api_documentation_uri: http://opalrb.com/docs/api/v1.2.0/index.html
1091
- guides_uri: http://opalrb.com/docs/guides/v1.2.0/index.html
1110
+ changelog_uri: https://github.com/opal/opal/blob/v1.3.0.alpha1/CHANGELOG.md
1111
+ readme_uri: https://github.com/opal/opal/blob/v1.3.0.alpha1/README.md
1112
+ api_documentation_uri: http://opalrb.com/docs/api/v1.3.0.alpha1/index.html
1113
+ guides_uri: http://opalrb.com/docs/guides/v1.3.0.alpha1/index.html
1092
1114
  chat_uri: https://gitter.im/opal/opal
1093
1115
  source_code_uri: https://github.com/opal/opal
1094
1116
  post_install_message:
@@ -1102,9 +1124,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
1102
1124
  version: '2.3'
1103
1125
  required_rubygems_version: !ruby/object:Gem::Requirement
1104
1126
  requirements:
1105
- - - ">="
1127
+ - - ">"
1106
1128
  - !ruby/object:Gem::Version
1107
- version: '0'
1129
+ version: 1.3.1
1108
1130
  requirements: []
1109
1131
  rubygems_version: 3.2.3
1110
1132
  signing_key:
@@ -1112,6 +1134,8 @@ specification_version: 4
1112
1134
  summary: Ruby runtime and core library for JavaScript
1113
1135
  test_files:
1114
1136
  - ".codeclimate.yml"
1137
+ - ".eslintrc.await.js"
1138
+ - ".eslintrc.js"
1115
1139
  - ".gitattributes"
1116
1140
  - ".github/FUNDING.yml"
1117
1141
  - ".github/ISSUE_TEMPLATE/bug-report.md"
@@ -1120,7 +1144,6 @@ test_files:
1120
1144
  - ".gitignore"
1121
1145
  - ".gitmodules"
1122
1146
  - ".inch.yml"
1123
- - ".jshintrc"
1124
1147
  - ".overcommit.yml"
1125
1148
  - ".rspec"
1126
1149
  - ".rubocop.yml"
@@ -1258,6 +1281,7 @@ test_files:
1258
1281
  - bin/setup
1259
1282
  - bin/yarn
1260
1283
  - config.ru
1284
+ - docs/async.md
1261
1285
  - docs/compiled_ruby.md
1262
1286
  - docs/compiler.md
1263
1287
  - docs/compiler_directives.md
@@ -1299,13 +1323,18 @@ test_files:
1299
1323
  - lib/opal/ast/node.rb
1300
1324
  - lib/opal/builder.rb
1301
1325
  - lib/opal/builder_processors.rb
1326
+ - lib/opal/cache.rb
1327
+ - lib/opal/cache/file_cache.rb
1302
1328
  - lib/opal/cli.rb
1303
1329
  - lib/opal/cli_options.rb
1304
1330
  - lib/opal/cli_runners.rb
1305
1331
  - lib/opal/cli_runners/applescript.rb
1306
- - lib/opal/cli_runners/chrome.js
1307
1332
  - lib/opal/cli_runners/chrome.rb
1333
+ - lib/opal/cli_runners/chrome_cdp_interface.js
1334
+ - lib/opal/cli_runners/chrome_cdp_interface.rb
1308
1335
  - lib/opal/cli_runners/compiler.rb
1336
+ - lib/opal/cli_runners/gjs.rb
1337
+ - lib/opal/cli_runners/mini_racer.rb
1309
1338
  - lib/opal/cli_runners/nashorn.rb
1310
1339
  - lib/opal/cli_runners/node_modules/chrome-remote-interface/LICENSE
1311
1340
  - lib/opal/cli_runners/node_modules/chrome-remote-interface/README.md
@@ -1456,6 +1485,7 @@ test_files:
1456
1485
  - opal/corelib/array.rb
1457
1486
  - opal/corelib/array/pack.rb
1458
1487
  - opal/corelib/basic_object.rb
1488
+ - opal/corelib/binding.rb
1459
1489
  - opal/corelib/boolean.rb
1460
1490
  - opal/corelib/class.rb
1461
1491
  - opal/corelib/comparable.rb
@@ -1500,6 +1530,7 @@ test_files:
1500
1530
  - opal/corelib/string/unpack.rb
1501
1531
  - opal/corelib/struct.rb
1502
1532
  - opal/corelib/time.rb
1533
+ - opal/corelib/trace_point.rb
1503
1534
  - opal/corelib/unsupported.rb
1504
1535
  - opal/corelib/variables.rb
1505
1536
  - opal/opal.rb
@@ -1508,6 +1539,7 @@ test_files:
1508
1539
  - opal/opal/mini.rb
1509
1540
  - package.json
1510
1541
  - stdlib/README.md
1542
+ - stdlib/await.rb
1511
1543
  - stdlib/base64.rb
1512
1544
  - stdlib/benchmark.rb
1513
1545
  - stdlib/bigdecimal.rb
@@ -1527,6 +1559,9 @@ test_files:
1527
1559
  - stdlib/file.rb
1528
1560
  - stdlib/fileutils.rb
1529
1561
  - stdlib/forwardable.rb
1562
+ - stdlib/gjs.rb
1563
+ - stdlib/gjs/io.rb
1564
+ - stdlib/gjs/kernel.rb
1530
1565
  - stdlib/headless_chrome.rb
1531
1566
  - stdlib/iconv.rb
1532
1567
  - stdlib/js.rb
@@ -1620,7 +1655,10 @@ test_files:
1620
1655
  - stdlib/opal-parser.rb
1621
1656
  - stdlib/opal-platform.rb
1622
1657
  - stdlib/opal-source-maps.rb
1658
+ - stdlib/opal/miniracer.rb
1623
1659
  - stdlib/opal/platform.rb
1660
+ - stdlib/opal/repl_js.rb
1661
+ - stdlib/opal/replutils.rb
1624
1662
  - stdlib/open-uri.rb
1625
1663
  - stdlib/ostruct.rb
1626
1664
  - stdlib/pathname.rb
@@ -1644,7 +1682,11 @@ test_files:
1644
1682
  - tasks/benchmarking.rake
1645
1683
  - tasks/building.rake
1646
1684
  - tasks/github.rake
1685
+ - tasks/linting-parse-eslint-results.js
1647
1686
  - tasks/linting.rake
1687
+ - tasks/performance.rake
1688
+ - tasks/performance/asciidoctor_test.rb.erb
1689
+ - tasks/performance/optimization_status.rb
1648
1690
  - tasks/releasing.rake
1649
1691
  - tasks/testing.rake
1650
1692
  - tasks/testing/mspec_special_calls.rb
@@ -1654,13 +1696,8 @@ test_files:
1654
1696
  - vendored-minitest/minitest/autorun.rb
1655
1697
  - vendored-minitest/minitest/benchmark.rb
1656
1698
  - vendored-minitest/minitest/expectations.rb
1657
- - vendored-minitest/minitest/hell.rb
1658
1699
  - vendored-minitest/minitest/mock.rb
1659
- - vendored-minitest/minitest/parallel.rb
1660
- - vendored-minitest/minitest/pride.rb
1661
- - vendored-minitest/minitest/pride_plugin.rb
1662
1700
  - vendored-minitest/minitest/spec.rb
1663
1701
  - vendored-minitest/minitest/test.rb
1664
- - vendored-minitest/minitest/unit.rb
1665
1702
  - vendored-minitest/test/unit.rb
1666
1703
  - yarn.lock
data/.jshintrc DELETED
@@ -1,41 +0,0 @@
1
- {
2
- // http://jshint.com/docs/options
3
-
4
- "curly" : true, // Require curly braces around blocks in loops and conditionals
5
- "eqeqeq" : true, // Prohibit the use of == and != in favor of === and !==
6
- "es3" : true, // Adhere to ECMAScript 3 specification
7
- "forin" : true, // Require all for in loops to filter object's items (hasOwnProperty)
8
- "latedef" : "nofunc", // Prohibit the use of a variable before it was defined (allow function declarations to be ignored)
9
- "noarg" : true, // Prohibit the use of arguments.caller and arguments.callee
10
- "undef" : true, // Prohibit the use of explicitly undeclared variables
11
- "unused" : true, // Warn when you define and never use your variables
12
-
13
- "predef" : ["Opal", "JSON", "Java", "OpalNode", "jsyaml", "globalThis", "FinalizationRegistry", "WeakMap"],
14
-
15
- "browser": true,
16
- "node": true,
17
-
18
- // Currently the following checks are failing:
19
-
20
- // To investigate:
21
- "-W053": false, // Do not use String as a constructor
22
- "-W069": false, // ['prop'] is better written in dot notation
23
- "-W089": false, // The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype
24
-
25
- // Compiler:
26
- "-W021": false, // '$ClassName' is a function
27
- "-W027": false, // Unreachable ';' after 'return'
28
- "-W030": false, // Expected an assignment or function call and instead saw an expression
29
- "-W032": false, // Unnecessary semicolon
30
- "-W033": false, // Missing semicolon
31
- "-W083": false, // Don't make functions within a loop
32
- "-W093": false, // Did you mean to return a conditional instead of an assignment?
33
- "-W098": false, // 'variable' is defined but never used
34
- "-W116": false, // Expected '===' and instead saw '=='
35
- "-W120": false, // You might be leaking a variable ($ClassName) here
36
-
37
- // Keeping these:
38
- "-W061": false, // eval can be harmful
39
- "-W086": false, // Expected a 'break' statement before 'case'
40
- "-W100": false // This character may get silently deleted by one or more browsers
41
- }
@@ -1,8 +0,0 @@
1
- # NOTE: run bin/format-filters after changing this file
2
- opal_unsupported_filter "Refinements" do
3
- fails "Kernel#eval with refinements activates refinements from the binding" # NoMethodError: undefined method `refine' for #<Module:0x7ad6a>
4
- fails "Kernel#eval with refinements activates refinements from the eval scope" # NoMethodError: undefined method `refine' for #<Module:0x7ad6e>
5
- fails "Pattern matching refinements are used for #=== in constant pattern" # NoMethodError: undefined method `refine' for #<Module:0x46556>
6
- fails "Pattern matching refinements are used for #deconstruct" # NoMethodError: undefined method `refine' for #<Module:0x4655e>
7
- fails "Pattern matching refinements are used for #deconstruct_keys" # NoMethodError: undefined method `refine' for #<Module:0x4655a>
8
- end
@@ -1,11 +0,0 @@
1
- require "minitest/parallel"
2
-
3
- class Minitest::Test
4
- class << self
5
- alias :old_test_order :test_order # :nodoc:
6
-
7
- def test_order # :nodoc:
8
- :parallel
9
- end
10
- end
11
- end
@@ -1,65 +0,0 @@
1
- module Minitest
2
- module Parallel
3
-
4
- ##
5
- # The engine used to run multiple tests in parallel.
6
-
7
- class Executor
8
-
9
- ##
10
- # The size of the pool of workers.
11
-
12
- attr_reader :size
13
-
14
- ##
15
- # Create a parallel test executor of with +size+ workers.
16
-
17
- def initialize size
18
- @size = size
19
- @queue = Queue.new
20
- # @pool = size.times.map {
21
- # Thread.new(@queue) do |queue|
22
- # Thread.current.abort_on_exception = true
23
- # while job = queue.pop
24
- # klass, method, reporter = job
25
- # result = Minitest.run_one_method klass, method
26
- # reporter.synchronize { reporter.record result }
27
- # end
28
- # end
29
- # }
30
- end
31
-
32
- ##
33
- # Add a job to the queue
34
-
35
- def << work; @queue << work; end
36
-
37
- ##
38
- # Shuts down the pool of workers by signalling them to quit and
39
- # waiting for them all to finish what they're currently working
40
- # on.
41
-
42
- def shutdown
43
- # size.times { @queue << nil }
44
- # @pool.each(&:join)
45
- @queue.each do |job|
46
- klass, method, reporter = job
47
- result = Minitest.run_one_method klass, method
48
- reporter.record result
49
- # reporter.synchronize { reporter.record result }
50
- end
51
- end
52
- end
53
-
54
- module Test
55
- def _synchronize; Test.io_lock.synchronize { yield }; end # :nodoc:
56
-
57
- module ClassMethods
58
- def run_one_method klass, method_name, reporter # :nodoc:
59
- Minitest.parallel_executor << [klass, method_name, reporter]
60
- end
61
- def test_order; :parallel; end # :nodoc:
62
- end
63
- end
64
- end
65
- end
@@ -1,4 +0,0 @@
1
- require "minitest"
2
-
3
- Minitest.load_plugins
4
- Minitest::PrideIO.pride!
@@ -1,142 +0,0 @@
1
- require "minitest"
2
-
3
- module Minitest
4
- def self.plugin_pride_options opts, options # :nodoc:
5
- opts.on "-p", "--pride", "Pride. Show your testing pride!" do
6
- PrideIO.pride!
7
- end
8
- end
9
-
10
- def self.plugin_pride_init options # :nodoc:
11
- if PrideIO.pride? then
12
- klass = ENV["TERM"] =~ /^xterm|-256color$/ ? PrideLOL : PrideIO
13
- io = klass.new options[:io]
14
-
15
- self.reporter.reporters.grep(Minitest::Reporter).each do |rep|
16
- rep.io = io
17
- end
18
- end
19
- end
20
-
21
- ##
22
- # Show your testing pride!
23
-
24
- class PrideIO
25
- ##
26
- # Activate the pride plugin. Called from both -p option and minitest/pride
27
-
28
- def self.pride!
29
- @pride = true
30
- end
31
-
32
- ##
33
- # Are we showing our testing pride?
34
-
35
- def self.pride?
36
- @pride ||= false
37
- end
38
-
39
- # Start an escape sequence
40
- ESC = "\e["
41
-
42
- # End the escape sequence
43
- NND = "#{ESC}0m"
44
-
45
- # The IO we're going to pipe through.
46
- attr_reader :io
47
-
48
- def initialize io # :nodoc:
49
- @io = io
50
- # stolen from /System/Library/Perl/5.10.0/Term/ANSIColor.pm
51
- # also reference http://en.wikipedia.org/wiki/ANSI_escape_code
52
- @colors ||= (31..36).to_a
53
- @size = @colors.size
54
- @index = 0
55
- end
56
-
57
- ##
58
- # Wrap print to colorize the output.
59
-
60
- def print o
61
- case o
62
- when "." then
63
- io.print pride o
64
- when "E", "F" then
65
- io.print "#{ESC}41m#{ESC}37m#{o}#{NND}"
66
- when "S" then
67
- io.print pride o
68
- else
69
- io.print o
70
- end
71
- end
72
-
73
- def puts(*o) # :nodoc:
74
- o.map! { |s|
75
- s.to_s.sub(/Finished/) {
76
- @index = 0
77
- 'Fabulous run'.split(//).map { |c|
78
- pride(c)
79
- }.join
80
- }
81
- }
82
-
83
- io.puts(*o)
84
- end
85
-
86
- ##
87
- # Color a string.
88
-
89
- def pride string
90
- string = "*" if string == "."
91
- c = @colors[@index % @size]
92
- @index += 1
93
- "#{ESC}#{c}m#{string}#{NND}"
94
- end
95
-
96
- def method_missing msg, *args # :nodoc:
97
- io.send(msg, *args)
98
- end
99
- end
100
-
101
- ##
102
- # If you thought the PrideIO was colorful...
103
- #
104
- # (Inspired by lolcat, but with clean math)
105
-
106
- class PrideLOL < PrideIO
107
- PI_3 = Math::PI / 3 # :nodoc:
108
-
109
- def initialize io # :nodoc:
110
- # walk red, green, and blue around a circle separated by equal thirds.
111
- #
112
- # To visualize, type this into wolfram-alpha:
113
- #
114
- # plot (3*sin(x)+3), (3*sin(x+2*pi/3)+3), (3*sin(x+4*pi/3)+3)
115
-
116
- # 6 has wide pretty gradients. 3 == lolcat, about half the width
117
- @colors = (0...(6 * 7)).map { |n|
118
- n *= 1.0 / 6
119
- r = (3 * Math.sin(n ) + 3).to_i
120
- g = (3 * Math.sin(n + 2 * PI_3) + 3).to_i
121
- b = (3 * Math.sin(n + 4 * PI_3) + 3).to_i
122
-
123
- # Then we take rgb and encode them in a single number using base 6.
124
- # For some mysterious reason, we add 16... to clear the bottom 4 bits?
125
- # Yes... they're ugly.
126
-
127
- 36 * r + 6 * g + b + 16
128
- }
129
-
130
- super
131
- end
132
-
133
- ##
134
- # Make the string even more colorful. Damnit.
135
-
136
- def pride string
137
- c = @colors[@index % @size]
138
- @index += 1
139
- "#{ESC}38;5;#{c}m#{string}#{NND}"
140
- end
141
- end
142
- end
@@ -1,45 +0,0 @@
1
- # :stopdoc:
2
-
3
- unless defined?(Minitest) then
4
- # all of this crap is just to avoid circular requires and is only
5
- # needed if a user requires "minitest/unit" directly instead of
6
- # "minitest/autorun", so we also warn
7
-
8
- from = caller.reject { |s| s =~ /rubygems/ }.join("\n ")
9
- warn "Warning: you should require 'minitest/autorun' instead."
10
- warn %(Warning: or add 'gem "minitest"' before 'require "minitest/autorun"')
11
- warn "From:\n #{from}"
12
-
13
- module Minitest; end
14
- MiniTest = Minitest # prevents minitest.rb from requiring back to us
15
- require "minitest"
16
- end
17
-
18
- MiniTest = Minitest unless defined?(MiniTest)
19
-
20
- module Minitest
21
- class Unit
22
- VERSION = Minitest::VERSION
23
- class TestCase < Minitest::Test
24
- def self.inherited klass # :nodoc:
25
- from = caller.first
26
- warn "MiniTest::Unit::TestCase is now Minitest::Test. From #{from}"
27
- super
28
- end
29
- end
30
-
31
- def self.autorun # :nodoc:
32
- from = caller.first
33
- warn "MiniTest::Unit.autorun is now Minitest.autorun. From #{from}"
34
- Minitest.autorun
35
- end
36
-
37
- def self.after_tests(&b)
38
- from = caller.first
39
- warn "MiniTest::Unit.after_tests is now Minitest.after_run. From #{from}"
40
- Minitest.after_run(&b)
41
- end
42
- end
43
- end
44
-
45
- # :startdoc: