I played a bit with the kotlin playgound, and I found that kotlin indeed produces new showdown$Converter(null);, but it also allocates a variable named that way and assign it the correct constructor : var showdown$Converter = showdown.Converter;.
I don’t really know why it does this trick, but in the end the call to the constructor should work.
My guess is that is has to do with object/nested object naming on the JVM. It’s probably easier for the kotlin compiler to use the same internal object names everywhere and just add the extra variable instead of using 2 different ways to refer to the nested object.