You're looking for Persistent::MakeWeak. You can use MakeWeak to specify
a callback to be invoked when the object is about to be garbage
collected.

You should be careful about building in an alternate way to free your C
++ objects. The garbage collector is guaranteed to be run, ever, even
after the context has been disposed.

See this for more details:
http://stackoverflow.com/questions/173366/how-do-you-free-a-wrapped-c-object-when-associated-javascript-object-is-garbage

Best,
Alfred

On Sun, 2010-02-21 at 08:24 -0800, deadmorous wrote:
> Hello,
> I'm trying to use V8 to expose functionality of my app to JS.
> In my app, there are objects with properties and methods, organized as
> a tree of properties;
> object instances can be created and added to the tree.
> I understand how to expose my properties using V8 interceptors, and
> think that it's correct to expose my
> methods as properties of prototypes. Further, I would like objects to
> be creatable from JS code,
> so I would expose my native constructors to JS. It happens that I have
> to have a duality between my instances
> and JS instances. In my app, I would put a handle to JS instance
> corresponding to my instance;
> and vice versa, I can put a pointer to my instance into corresponding
> JS instance, by using
> Object::SetInternalField(), and using a value of type External.
> 
> Now to my question. What I really don't understand - how can I know
> that a JS object is being destroyed?
> I really need to know that, at least in order to destroy my instance
> attached to the one being destroyed in JS.
> 


-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users

Reply via email to