Hello All, I am trying to return a weak persistent handle to JS through a function template. However the v8 is crashing on triggering the codepath. What is the correct way to do it? My intention is to trigger GC on the persistent handle when it goes out of scope.
_____________________________________ *My Function Template:* void QueryFunction(const v8::FunctionCallbackInfo<v8::Value> &args) { // This function is made available as Query() in the JS code . . auto wrapper = new Query::WrapStop(isolate, iterator, it_info.iterable); args.GetReturnValue().Set(wrapper->value); *// How to return this?? Set requires a pointer to Persistent* // The intention is to force GC on wrapper->value when it goes out of scope in JS } ________________________________________ *Definition of WrapStop* struct WrapStop { explicit WrapStop(v8::Isolate *, Query::Iterator *, v8::Local<v8::Value>); virtual ~WrapStop(); v8::Persistent<v8::Value> value; // Force GC on this handle when it goes out of scope Query::Iterator *iterator; static void Callback(const v8::WeakCallbackInfo<WrapStop> &); // Callback triggered on GC }; ________________________________________ *Constructor for WrapStop* Query::WrapStop::WrapStop(v8::Isolate *isolate, Query::Iterator *iter, v8::Local<v8::Value> val) : value(isolate, val), iterator(iter) { value.SetWeak(this, Query::WrapStop::Callback, v8::WeakCallbackType::kParameter); // Set value as weak to force GC } -- -- 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/490983ae-fd94-4b3e-aa4b-0b4ff8e0c23dn%40googlegroups.com.