# Pastebin wHbkPcH5 // A utility for weakly holding a persistent handle to a v8::Data. template class WeakPersistent { public: WeakPersistent() { } void Set(v8::Local data) { handle_.Reset(data); handle_.SetWeak(this, Finalize, Nan::WeakCallbackType::kParameter); } v8::Local Get() { return Nan::New(handle_); } private: static void Finalize(const Nan::WeakCallbackInfo>& data) { WeakPersistent *persistent = data.GetParameter(); persistent->handle_.Reset(); delete persistent; } Nan::Persistent handle_; };