class V8::Weak::WeakValueMap
def self.ensure_cleanup(values,key,ref)
def self.ensure_cleanup(values,key,ref) proc { values.delete(key) if values[key] == ref } end
def [](key)
def [](key) if ref = @values[key] ref.object end end
def []=(key, value)
def []=(key, value) ref = V8::Weak::Ref.new(value) ObjectSpace.define_finalizer(value, self.class.ensure_cleanup(@values, key, ref)) @values[key] = ref end
def initialize
def initialize @values = {} end