GWT doesn't do Scala. That puts it out of the equation as far as most Scala.js developers are concerned. Also, it's interoperability story is seriously lacking behind Scala.js.
TeaVM is a fun and impressive project. However, although they can compile Scala-emitted bytecode (since a few weeks ago [1]), that's not their main focus. They are unlikely to ever optimize Scala code as well as Scala.js, because Scala.js focuses on optimizing idiomatic Scala. They do have an undeniable advantage over Scala.js, though, which is that they can also compile Java libraries used by a Scala program.
[1] https://groups.google.com/d/msg/scala-js/3jbX9ajIbHM/MbLWIqp...