module ExecJS::Xtrn::VM
Constants
- Error
Private Class Methods
included(base)
click to toggle source
# File lib/execjs/xtrn/vm.rb, line 12 def self.included base def base.child # override class.child @child ||= super # Single child for engine end end
Private Instance Methods
child()
click to toggle source
# File lib/execjs/xtrn/vm.rb, line 18 def child @child ||= self.class.child end
say(code)
click to toggle source
# File lib/execjs/xtrn/vm.rb, line 22 def say code @stats ||= {} @stats[:once] = 1 c = child c.stats @stats c.say vm: vm, js: code end
vm()
click to toggle source
# File lib/execjs/xtrn/vm.rb, line 30 def vm return @vm if @vm c = child vm = c.say({vm: 0})['vm'] raise Error, 'Cannot create VM' unless vm cs = self.class.class_stats 0 cs[:m] ||= 0 cs[:m] += 1 ObjectSpace.define_finalizer self do cs[:x] ||= 0 cs[:x] += 1 c.say vm: vm rescue nil end @vm = vm end