Gerhans:
It seems like you are leaking memory from the void* not getting cleaned up, and that the void* is being passed to the SetAccessor function for some generic getter/setter purpose?
If its the case that the callback is not firing, perhaps its true that the V8 Garbage Collector is not firing the MakeWeak function because there is no reference in your Javascript Context to said External handle? (i.e, you are using the External handle as a data parameter to the SetAccessor function, but since it isn't an internal field of an object that is within the Javascript context, the GC doesn't know about it and thus never sees it on its collection passes and never fires the Weak callback on it because its not on its list?)
Anyone know if thats typical V8 GC behavior?
(Maybe the fix here is to put the MakeWeak callback on the FunctionTemplate itself? That way, if the constructor function ever dissapears from the context and there are no child objects left in the context, the MakeWeak callback will fire and appropriately get rid of the void* data you pass.)