Class: MiniRacer::Snapshot

Inherits:
Object
  • Object
show all
Defined in:
lib/mini_racer.rb

Overview

‘size` and `warmup!` public methods are defined in the C class

Instance Method Summary collapse

Constructor Details

#initialize(str = '') ⇒ Snapshot

Returns a new instance of Snapshot.



347
348
349
350
351
352
353
354
355
356
357
358
359
360
# File 'lib/mini_racer.rb', line 347

def initialize(str = '')
  # ensure it first can load
  begin
    ctx = MiniRacer::Context.new
    ctx.eval(str)
  rescue MiniRacer::RuntimeError => e
    raise MiniRacer::SnapshotError.new, e.message, e.backtrace
  end

  @source = str

  # defined in the C class
  load(str)
end

Instance Method Details

#warmup!(src) ⇒ Object



362
363
364
365
366
367
368
369
370
371
372
373
374
375
# File 'lib/mini_racer.rb', line 362

def warmup!(src)
  # we have to do something here
  # we are bloating memory a bit but it is more correct
  # than hitting an exception when attempty to compile invalid source
  begin
    ctx = MiniRacer::Context.new
    ctx.eval(@source)
    ctx.eval(src)
  rescue MiniRacer::RuntimeError => e
    raise MiniRacer::SnapshotError.new, e.message, e.backtrace
  end

  warmup_unsafe!(src)
end