Class: Capybara::Simulated::WorkerRuntime

Inherits:
Object
  • Object
show all
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

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)

#disposeObject



27
# File 'lib/capybara/simulated/worker_runtime.rb', line 27

def dispose                    = @dispose.call

#drain_microtasksObject



24
# File 'lib/capybara/simulated/worker_runtime.rb', line 24

def drain_microtasks           = @drain_microtasks.call

#drain_timersObject



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

Returns:

  • (Boolean)


26
# File 'lib/capybara/simulated/worker_runtime.rb', line 26

def has_ready_timer?           = @has_ready_timer.call