Class: Capybara::Simulated::WorkerRuntime
- Inherits:
-
Object
- Object
- Capybara::Simulated::WorkerRuntime
- Defined in:
- lib/capybara/simulated/worker_runtime.rb
Overview
Engine-uniform adapter Browser#run_worker drives. Each engine class (‘V8Runtime`, `QuickJSRuntime`) has a `build_worker` class method that constructs the engine-specific Context/VM and wires it through these five callbacks. Worker thread doesn’t care which engine it’s running on; it just calls ‘eval` / `call` / `drain_microtasks` / `drain_timers` / `has_ready_timer?` / `dispose`.
Instance Method Summary collapse
- #call(name, *args) ⇒ Object
- #dispose ⇒ Object
- #drain_microtasks ⇒ Object
- #drain_timers ⇒ Object
- #eval(src) ⇒ Object
- #has_ready_timer? ⇒ Boolean
-
#initialize(eval_fn:, call_fn:, drain_microtasks:, drain_timers:, has_ready_timer:, dispose:) ⇒ WorkerRuntime
constructor
A new instance of WorkerRuntime.
Constructor Details
#initialize(eval_fn:, call_fn:, drain_microtasks:, drain_timers:, has_ready_timer:, dispose:) ⇒ WorkerRuntime
Returns a new instance of WorkerRuntime.
13 14 15 16 17 18 19 20 |
# File 'lib/capybara/simulated/worker_runtime.rb', line 13 def initialize(eval_fn:, call_fn:, drain_microtasks:, drain_timers:, has_ready_timer:, dispose:) @eval = eval_fn @call = call_fn @drain_microtasks = drain_microtasks @drain_timers = drain_timers @has_ready_timer = has_ready_timer @dispose = dispose end |
Instance Method Details
#call(name, *args) ⇒ Object
23 |
# File 'lib/capybara/simulated/worker_runtime.rb', line 23 def call(name, *args) = @call.call(name, *args) |
#dispose ⇒ Object
27 |
# File 'lib/capybara/simulated/worker_runtime.rb', line 27 def dispose = @dispose.call |
#drain_microtasks ⇒ Object
24 |
# File 'lib/capybara/simulated/worker_runtime.rb', line 24 def drain_microtasks = @drain_microtasks.call |
#drain_timers ⇒ Object
25 |
# File 'lib/capybara/simulated/worker_runtime.rb', line 25 def drain_timers = @drain_timers.call |
#eval(src) ⇒ Object
22 |
# File 'lib/capybara/simulated/worker_runtime.rb', line 22 def eval(src) = @eval.call(src) |
#has_ready_timer? ⇒ Boolean
26 |
# File 'lib/capybara/simulated/worker_runtime.rb', line 26 def has_ready_timer? = @has_ready_timer.call |