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
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
# await: *await*
|
|
2
|
+
|
|
1
3
|
require "optparse"
|
|
2
4
|
require "thread"
|
|
3
5
|
require "mutex_m"
|
|
4
|
-
require "minitest/parallel"
|
|
6
|
+
# require "minitest/parallel"
|
|
7
|
+
require "await"
|
|
5
8
|
|
|
6
9
|
##
|
|
7
10
|
# :include: README.txt
|
|
@@ -19,8 +22,8 @@ module Minitest
|
|
|
19
22
|
##
|
|
20
23
|
# Parallel test executor
|
|
21
24
|
|
|
22
|
-
mc.send :attr_accessor, :parallel_executor
|
|
23
|
-
self.parallel_executor = Parallel::Executor.new((ENV['N'] || 2).to_i)
|
|
25
|
+
# mc.send :attr_accessor, :parallel_executor
|
|
26
|
+
# self.parallel_executor = Parallel::Executor.new((ENV['N'] || 2).to_i)
|
|
24
27
|
|
|
25
28
|
##
|
|
26
29
|
# Filter object for backtraces.
|
|
@@ -53,7 +56,7 @@ module Minitest
|
|
|
53
56
|
exit exit_code || false
|
|
54
57
|
}
|
|
55
58
|
|
|
56
|
-
exit_code = Minitest.run
|
|
59
|
+
exit_code = Minitest.run(ARGV).await
|
|
57
60
|
} unless @@installed_at_exit
|
|
58
61
|
@@installed_at_exit = true
|
|
59
62
|
end
|
|
@@ -124,8 +127,8 @@ module Minitest
|
|
|
124
127
|
self.reporter = nil # runnables shouldn't depend on the reporter, ever
|
|
125
128
|
|
|
126
129
|
reporter.start
|
|
127
|
-
__run
|
|
128
|
-
self.parallel_executor.shutdown
|
|
130
|
+
__run(reporter, options).await
|
|
131
|
+
# self.parallel_executor.shutdown
|
|
129
132
|
reporter.report
|
|
130
133
|
|
|
131
134
|
reporter.passed?
|
|
@@ -147,8 +150,8 @@ module Minitest
|
|
|
147
150
|
# the serial tests won't lock around Reporter#record. Run the serial tests
|
|
148
151
|
# first, so that after they complete, the parallel tests will lock when
|
|
149
152
|
# recording results.
|
|
150
|
-
serial.
|
|
151
|
-
parallel.
|
|
153
|
+
serial.map_await { |suite| suite.run(reporter, options).await } +
|
|
154
|
+
parallel.map_await { |suite| suite.run(reporter, options).await }
|
|
152
155
|
end
|
|
153
156
|
|
|
154
157
|
def self.process_args args = [] # :nodoc:
|
|
@@ -284,11 +287,11 @@ module Minitest
|
|
|
284
287
|
filter === m || filter === "#{self}##{m}"
|
|
285
288
|
}
|
|
286
289
|
|
|
287
|
-
with_info_handler
|
|
288
|
-
filtered_methods.
|
|
289
|
-
run_one_method
|
|
290
|
+
with_info_handler(reporter) do
|
|
291
|
+
filtered_methods.each_await do |method_name|
|
|
292
|
+
run_one_method(self, method_name, reporter).await
|
|
290
293
|
end
|
|
291
|
-
end
|
|
294
|
+
end.await
|
|
292
295
|
end
|
|
293
296
|
|
|
294
297
|
##
|
|
@@ -298,7 +301,7 @@ module Minitest
|
|
|
298
301
|
# test. See Minitest::ParallelTest::ClassMethods for an example.
|
|
299
302
|
|
|
300
303
|
def self.run_one_method klass, method_name, reporter
|
|
301
|
-
reporter.record Minitest.run_one_method(klass, method_name)
|
|
304
|
+
reporter.record Minitest.run_one_method(klass, method_name).await
|
|
302
305
|
end
|
|
303
306
|
|
|
304
307
|
def self.with_info_handler reporter, &block # :nodoc:
|
|
@@ -311,7 +314,7 @@ module Minitest
|
|
|
311
314
|
end
|
|
312
315
|
end
|
|
313
316
|
|
|
314
|
-
on_signal
|
|
317
|
+
on_signal("INFO", handler, &block).await
|
|
315
318
|
end
|
|
316
319
|
|
|
317
320
|
SIGNALS = {} # Signal.list # :nodoc:
|
|
@@ -324,7 +327,7 @@ module Minitest
|
|
|
324
327
|
action.call
|
|
325
328
|
end if supported
|
|
326
329
|
|
|
327
|
-
yield
|
|
330
|
+
yield.await
|
|
328
331
|
ensure
|
|
329
332
|
trap name, old_trap if supported
|
|
330
333
|
end
|
|
@@ -771,7 +774,7 @@ module Minitest
|
|
|
771
774
|
self.backtrace_filter = BacktraceFilter.new
|
|
772
775
|
|
|
773
776
|
def self.run_one_method klass, method_name # :nodoc:
|
|
774
|
-
result = klass.new(method_name).run
|
|
777
|
+
result = klass.new(method_name).run.await
|
|
775
778
|
raise "#{klass}#run _must_ return self" unless klass === result
|
|
776
779
|
result
|
|
777
780
|
end
|