Stack trace: https://pastebin.com/vMh8X7mt To reproduce (this works with any object which errors during finalization, this is just the shortest command I could think of):
I realize that a crash due to writing a bad finalizer routine is technically my fault, but it would be nice if the game told me exactly where I went wrong, instead of panicking all the way to the desktop.
Fair enough, I suppose, and I can work around its absence.
In case you're curious, the reason I came across this is that I'm experimenting with building a layer on top of the gui element API, and I had wanted to be able to release the names of destroyed elements to be used again. Since element.destroy() immediately (from the perspective of the modder) renders all children invalid it would have been simplest to just allow the garbage collector to clean up the bits I created. Ideally, then the garbage collector would finalize my stuff and let me release the names. I can restructure to side-step the issue, so the absence of __gc is nbd.