yea I noticed that rewriting stuff in js also leads to worse performance if it's just a simple event. I was able to get better performance if I was doing some heavy stuff on the instances, as this evens out the initial overhead.
The reason for it seems to be that getting the instances is slow, no matter if using the iterator or getting the array of instances, maybe due to runtime glue or because they are lazy created? (getting instances by UID was fast again)