If the browser was the operating system, then JavaScript would be the equivalent of assembler on the browserOS.
People complain that JS is different for different browsers ... well, guess what, assembler has different implementations depending on which CPU you use. Let me quote: "a program written for one architecture won’t work on another one without a complete rewrite. High level languages solve this problem."
I remember the days when writing Pascal / C had pieces of inline assembler to improve performance in certain cases, these days compilers are so smart that writing assembler by hand is obsolete (unless you're in a niche market like the business of writing compilers).
Using a high-level language like Dart makes writing JavaScript by hand obsolete.