How does the finalizer actually work? I have created many objects with: ``` Napi::Object obj = Napi::Object::New(env); obj.AddFinalizer(MyDeleter, my_ptr); ``` But the finalizer is only called when my program exits. I want to make the NodeJS call `MyDeleter()` when the object lifetime ends.