opal 1.2.0 → 1.3.0.alpha1

Sign up to get free protection for your applications and to get access to all the features.
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: