"JS has callable attributes, Hobjects are unusable for stable keys...object does not carry any type information, Null everywhere, since ojects are hashes"
I find most of the problems listed are related with dynamic type system of JS. These all can be solved most easily by a statically typed language.
Therefore the debate mostly is between static vs dynamic typing.