You should probably use Weak persistent handle. With weak persistent handle, you will be notified when the wrapper handle is reclaimed.
Please check line 389 in v8.h, /** * Make the reference to this object weak. When only weak handles * refer to the object, the garbage collector will perform a * callback to the given V8::WeakReferenceCallback function, passing * it the object reference and the given parameters. */ inline void MakeWeak(void* parameters, WeakReferenceCallback callback); Here is an example: http://create.tpsitulsa.com/blog/2009/01/31/persistent-handles/ <http://create.tpsitulsa.com/blog/2009/01/31/persistent-handles/> On Sun, Sep 6, 2009 at 6:41 PM, Kenji <[email protected]> wrote: > > Hi, it's simple. I want my JS script to new/create object of my type. > Let's say Point: > > class Point { > public: > int x, y; > }; > > I know how to "bind" an existing c++ object to JS and so script can > modify that object's content. But I want JS to hold the object or a > "reference" of it. > I'm not sure how the "construct Point function" should be written. > I tried this: > > Handle<Value> Point_func(const Arguments & args) { > Point* p = new Point(); > args.This()->SetInternalField(0, External::New(p)); > return Undefined; > } > > In the setter function I can get the object pointer. But how/when can > I free the object?? > > Or should I provide a JS function to new my Point and c++ keeps the > ownership of it, while JS side just keep a reference of it? > > Can anyone help me? Do you have more documentation? > > Many thanks~ > > Kenji > > > --~--~---------~--~----~------------~-------~--~----~ v8-users mailing list [email protected] http://groups.google.com/group/v8-users -~----------~----~----~----~------~----~------~--~---
