|
@ -134,8 +134,8 @@ void AddCallback(Handle<Object> proxy, Handle<Function> callback) { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void TargetCallback(Persistent<Value> target, void* arg) { |
|
|
void TargetCallback(Isolate* isolate, Persistent<Value> target, void* arg) { |
|
|
HandleScope scope; |
|
|
HandleScope scope(isolate); |
|
|
|
|
|
|
|
|
assert(target.IsNearDeath()); |
|
|
assert(target.IsNearDeath()); |
|
|
|
|
|
|
|
@ -187,7 +187,9 @@ Handle<Value> Create(const Arguments& args) { |
|
|
cont->proxy = Persistent<Object>::New(proxyClass->NewInstance()); |
|
|
cont->proxy = Persistent<Object>::New(proxyClass->NewInstance()); |
|
|
cont->proxy->SetAlignedPointerInInternalField(0, cont); |
|
|
cont->proxy->SetAlignedPointerInInternalField(0, cont); |
|
|
|
|
|
|
|
|
cont->target.MakeWeak(cont, TargetCallback); |
|
|
cont->target.MakeWeak(Isolate::GetCurrent(), |
|
|
|
|
|
static_cast<void*>(cont), |
|
|
|
|
|
TargetCallback); |
|
|
|
|
|
|
|
|
if (args.Length() >= 2) { |
|
|
if (args.Length() >= 2) { |
|
|
AddCallback(cont->proxy, Handle<Function>::Cast(args[1])); |
|
|
AddCallback(cont->proxy, Handle<Function>::Cast(args[1])); |
|
|