The advantage of JS as a runtime environment is that it's got the most extensive cross-platform app ecosystem in the world, with a lot of eyeballs on it. Every new difference that arises between the behavior of a JS engine and that of its peers is greeted by a hundred thousand screams from the mouths of a hundred thousand web developers.
Plus, I believe the pain required to get your app to run in all the popular JS engines is mild when you compare it to the ins and outs of cross-platform C libraries.
I dare you to actually try SDL sometime; it is far less pain than doing browser work in JS.
ASCII is intensely simple and, for its intended purpose, very close to perfect. JavaScript is... not.
JavaScript is, at best, the most common language used for today's GUI applications. It and its "toolkit" (the DOM and HTML) need a lot of work, particularly wart removal, if they're going to have the timelessness of ASCII or its successor (UTF-8).
Fortunately there are many serious efforts at improving the language almost all of which compile down to today's javascript for backwards compatibility.
It may or may not meet your particular needs, but that has very little relationship to its perfection.
[1] http://brendaneich.com/2005/06/javascript-1-2-and-in-between...
Every layer of software builds upon the lower software (and hardware) layers (and bugs). It's like a Jenga tower of dependencies. It would be nice if some middle layers could be excised/refactored to simplify our technology stack.