https://github.com/tbluemel/quickjscpp/blob/master/patches/2024-01-13/0001-Add-C-Closures.patch implements functions bound with user data pointers directly, instead of requiring packing data into runtime tracked JSValue's. I think this would be a useful to have in quickjs-ng.