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
