[フレーム]

Module: ObjectSpace

Defined in:
opal/opal/corelib/object_space.rb

Overview

helpers: respond_to, truthy

Class Method Summary collapse

Class Method Details

.define_finalizer(obj, aproc = undefined, &block) ⇒ Object

36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'opal/opal/corelib/object_space.rb', line 36
def define_finalizer(obj, aproc = undefined, &block)
 %x{
 if ($truthy(block)) aproc = block;
 if (!$truthy(aproc)) aproc = #{::Kernel .proc };
 if (!$respond_to(aproc, '$call')) {
 #{::Kernel .raise  ::ArgumentError , "Wrong type argument #{aproc.class} (should be callable)"};
 }
 var id = #{obj.__id__};
 add_caller(id, aproc);
 try {
 registry.register(obj, id, obj);
 }
 catch (e) {
 delete_callers(id);
 #{::Kernel .raise  ::ArgumentError , "cannot define finalizer for #{obj.class}"};
 }
 return [0, aproc];
 }
end

.undefine_finalizer(obj) ⇒ Object

56
57
58
59
60
61
62
63
# File 'opal/opal/corelib/object_space.rb', line 56
def undefine_finalizer(obj)
 %{
 var id = #{obj.__id__};
 registry.unregister(obj);
 delete_callers(id);
 return obj;
 }
end

AltStyle によって変換されたページ (->オリジナル) /