Thanks Ben, I see how those are less optimal, I was hoping for something along the lines of context->global()->GetFunctionTemplate("constructor"), or something along those lines. The only problem I have with my approach is that I need a Finalize function on each wrapped class that pretty much just resets the permanent handles.
Thanks Again! On Sunday, October 11, 2020 at 1:49:10 AM UTC-6 Ben Noordhuis wrote: > On Sat, Oct 10, 2020 at 10:44 PM Rodrigo Hernandez > <kwizatz.ae...@gmail.com> wrote: > > > > Hello, > > > > So, suppose I am wrapping a C++ class around a JS constructor, I've > already created and initialized the isolate, created and initialized a > context, I have the FunctionTemplate for the constructor and I have > instantiated the function and I can call it from Js as x() or new X(), > > all this is fine, the function template context is finished and the > handle lost. > > > > But then I want to create another wrapped object for a class that > inherits from the first one. > > Is there a way to retrieve the base class FunctionTemplate so in the > child class I can call child->Inherit(base)? > > > > Is there another way of doing this? > > > > Right now I am keeping a C++ unordered_map of isolate to persistent > handle to function templates, and that works, but is that the only option? > > > > Thanks! > > It's not the only option but it's a pretty good solution. Less optimal > solutions: > > - store them in the snapshot with SnapshotCreator::AddData() (but you > can only retrieve it once) > - scan the heap for them with Isolate::VisitHandlesWithClassIds(). > > No doubt there are more ways to stow them away somewhere. > -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-users/9cf27dce-1cc2-4b46-b11a-3696c7825966n%40googlegroups.com.