Do any of these languages solve the debugging problem?
I'd love to write my client-side code in something other than JS, but I'd still be debugging it in JS, and I have trouble believing that's going to help ...
Dart. You debug in Dart and it's (generally) considered a bug if the generated JS deviates in behavior. The JS is rather readable, if needed. It also runs server-side.
Many of the compilers generate relatively human-readable output JS, so if you know JS, you can debug the output. This is still true for JSIL (albeit less than before... sigh) and is obviously true for languages like TypeScript where the mapping is direct.
Go2js (https://github.com/kless/go2js). Translator from Go which was designed to translate line-to-line, but you should debug on Go since it's much easier.