Even machine code vs C is a leaky abstraction which is why people use it. It is making tools that compile the code properly and allow proper debugging that is the problem. I suspect things might improve if and when these newfangled javascript engines provide some standard bytecode that supports metadata for debugging.