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.
- checksums.yaml +4 -4
- data/.eslintrc.await.js +6 -0
- data/.eslintrc.js +34 -0
- data/.github/workflows/build.yml +8 -0
- data/.rubocop.yml +9 -0
- data/CHANGELOG.md +4 -0
- data/README.md +1 -1
- data/Rakefile +1 -0
- data/UNRELEASED.md +64 -38
- data/docs/async.md +109 -0
- data/docs/roda-sprockets.md +0 -2
- data/exe/opal +2 -0
- data/exe/opal-repl +2 -2
- data/lib/opal/builder.rb +5 -1
- data/lib/opal/builder_processors.rb +7 -2
- data/lib/opal/cache/file_cache.rb +119 -0
- data/lib/opal/cache.rb +71 -0
- data/lib/opal/cli.rb +35 -1
- data/lib/opal/cli_options.rb +21 -0
- data/lib/opal/cli_runners/chrome.rb +21 -14
- data/lib/opal/cli_runners/chrome_cdp_interface.js +30285 -0
- data/lib/opal/cli_runners/{chrome.js → chrome_cdp_interface.rb} +27 -6
- data/lib/opal/cli_runners/compiler.rb +2 -1
- data/lib/opal/cli_runners/gjs.rb +27 -0
- data/lib/opal/cli_runners/mini_racer.rb +36 -0
- data/lib/opal/cli_runners/source-map-support-browser.js +276 -91
- data/lib/opal/cli_runners/source-map-support-node.js +276 -91
- data/lib/opal/cli_runners/source-map-support.js +60 -18
- data/lib/opal/cli_runners.rb +2 -0
- data/lib/opal/compiler.rb +99 -10
- data/lib/opal/fragment.rb +77 -14
- data/lib/opal/nodes/args/extract_kwrestarg.rb +6 -4
- data/lib/opal/nodes/args/extract_restarg.rb +10 -12
- data/lib/opal/nodes/args.rb +28 -0
- data/lib/opal/nodes/base.rb +29 -5
- data/lib/opal/nodes/call.rb +123 -2
- data/lib/opal/nodes/case.rb +7 -1
- data/lib/opal/nodes/class.rb +12 -2
- data/lib/opal/nodes/def.rb +3 -23
- data/lib/opal/nodes/definitions.rb +21 -4
- data/lib/opal/nodes/helpers.rb +2 -2
- data/lib/opal/nodes/if.rb +39 -9
- data/lib/opal/nodes/iter.rb +15 -3
- data/lib/opal/nodes/lambda.rb +3 -1
- data/lib/opal/nodes/literal.rb +13 -7
- data/lib/opal/nodes/logic.rb +2 -2
- data/lib/opal/nodes/module.rb +12 -2
- data/lib/opal/nodes/rescue.rb +59 -34
- data/lib/opal/nodes/scope.rb +88 -6
- data/lib/opal/nodes/super.rb +52 -25
- data/lib/opal/nodes/top.rb +13 -7
- data/lib/opal/nodes/while.rb +7 -1
- data/lib/opal/parser/patch.rb +2 -1
- data/lib/opal/repl.rb +137 -49
- data/lib/opal/rewriters/binary_operator_assignment.rb +10 -10
- data/lib/opal/rewriters/block_to_iter.rb +3 -3
- data/lib/opal/rewriters/for_rewriter.rb +7 -7
- data/lib/opal/rewriters/js_reserved_words.rb +5 -3
- data/lib/opal/source_map/file.rb +7 -4
- data/lib/opal/source_map/map.rb +17 -3
- data/lib/opal/version.rb +1 -1
- data/opal/corelib/array.rb +2 -2
- data/opal/corelib/binding.rb +46 -0
- data/opal/corelib/boolean.rb +54 -4
- data/opal/corelib/class.rb +2 -0
- data/opal/corelib/constants.rb +2 -2
- data/opal/corelib/error.rb +98 -12
- data/opal/corelib/io.rb +250 -38
- data/opal/corelib/kernel/format.rb +5 -2
- data/opal/corelib/kernel.rb +44 -23
- data/opal/corelib/main.rb +5 -0
- data/opal/corelib/method.rb +1 -0
- data/opal/corelib/module.rb +28 -0
- data/opal/corelib/number.rb +12 -1
- data/opal/corelib/random/seedrandom.js.rb +2 -2
- data/opal/corelib/regexp.rb +47 -3
- data/opal/corelib/runtime.js +152 -12
- data/opal/corelib/string/encoding.rb +17 -17
- data/opal/corelib/string.rb +2 -0
- data/opal/corelib/struct.rb +10 -3
- data/opal/corelib/trace_point.rb +57 -0
- data/opal/opal/full.rb +2 -0
- data/package.json +3 -2
- data/spec/filters/bugs/array.rb +0 -1
- data/spec/filters/bugs/basicobject.rb +0 -1
- data/spec/filters/bugs/binding.rb +27 -0
- data/spec/filters/bugs/enumerator.rb +132 -0
- data/spec/filters/bugs/exception.rb +70 -93
- data/spec/filters/bugs/float.rb +0 -1
- data/spec/filters/bugs/kernel.rb +3 -9
- data/spec/filters/bugs/language.rb +15 -58
- data/spec/filters/bugs/main.rb +16 -0
- data/spec/filters/bugs/matrix.rb +39 -0
- data/spec/filters/bugs/method.rb +0 -2
- data/spec/filters/bugs/module.rb +36 -79
- data/spec/filters/bugs/proc.rb +0 -1
- data/spec/filters/bugs/regexp.rb +0 -16
- data/spec/filters/bugs/trace_point.rb +12 -0
- data/spec/filters/bugs/warnings.rb +0 -4
- data/spec/filters/unsupported/freeze.rb +2 -0
- data/spec/filters/unsupported/privacy.rb +4 -0
- data/spec/lib/compiler_spec.rb +7 -1
- data/spec/lib/repl_spec.rb +4 -2
- data/spec/lib/source_map/file_spec.rb +1 -1
- data/spec/mspec-opal/formatters.rb +18 -4
- data/spec/mspec-opal/runner.rb +2 -2
- data/spec/opal/core/boolean_spec.rb +44 -0
- data/spec/opal/core/hash_spec.rb +8 -0
- data/spec/opal/core/number/to_s_spec.rb +11 -0
- data/spec/opal/stdlib/json/ext_spec.rb +3 -3
- data/spec/opal/stdlib/logger/logger_spec.rb +10 -1
- data/spec/ruby_specs +18 -0
- data/stdlib/await.rb +83 -0
- data/stdlib/base64.rb +4 -4
- data/stdlib/bigdecimal/bignumber.js.rb +4 -2
- data/stdlib/bigdecimal.rb +1 -0
- data/stdlib/gjs/io.rb +33 -0
- data/stdlib/gjs/kernel.rb +5 -0
- data/stdlib/gjs.rb +2 -0
- data/stdlib/js.rb +4 -0
- data/stdlib/json.rb +3 -3
- data/stdlib/logger.rb +1 -1
- data/stdlib/nashorn/file.rb +2 -0
- data/stdlib/nodejs/env.rb +7 -0
- data/stdlib/nodejs/file.rb +6 -41
- data/stdlib/nodejs/io.rb +21 -5
- data/stdlib/nodejs/js-yaml-3-6-1.js +2 -2
- data/stdlib/opal/miniracer.rb +6 -0
- data/stdlib/opal/platform.rb +4 -0
- data/stdlib/opal/repl_js.rb +5 -0
- data/stdlib/opal/replutils.rb +271 -0
- data/stdlib/opal-parser.rb +24 -11
- data/stdlib/opal-platform.rb +8 -0
- data/stdlib/promise/v2.rb +16 -4
- data/stdlib/promise.rb +14 -0
- data/stdlib/stringio.rb +13 -110
- data/stdlib/thread.rb +29 -0
- data/tasks/building.rake +10 -4
- data/tasks/linting-parse-eslint-results.js +39 -0
- data/tasks/linting.rake +38 -28
- data/tasks/performance/asciidoctor_test.rb.erb +6 -0
- data/tasks/performance/optimization_status.rb +77 -0
- data/tasks/performance.rake +149 -0
- data/tasks/testing.rake +9 -1
- data/test/nodejs/test_await.rb +169 -0
- data/test/opal/promisev2/test_error.rb +9 -3
- data/test/opal/unsupported_and_bugs.rb +5 -0
- data/vendored-minitest/minitest/benchmark.rb +9 -7
- data/vendored-minitest/minitest/test.rb +14 -12
- data/vendored-minitest/minitest.rb +19 -16
- data/yarn.lock +686 -117
- metadata +60 -23
- data/.jshintrc +0 -41
- data/spec/filters/unsupported/refinements.rb +0 -8
- data/vendored-minitest/minitest/hell.rb +0 -11
- data/vendored-minitest/minitest/parallel.rb +0 -65
- data/vendored-minitest/minitest/pride.rb +0 -4
- data/vendored-minitest/minitest/pride_plugin.rb +0 -142
- 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.
|
|
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-
|
|
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.
|
|
1089
|
-
readme_uri: https://github.com/opal/opal/blob/v1.
|
|
1090
|
-
api_documentation_uri: http://opalrb.com/docs/api/v1.
|
|
1091
|
-
guides_uri: http://opalrb.com/docs/guides/v1.
|
|
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:
|
|
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,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,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:
|