@gbaldeck coroutines, both in JVM and in JS,
are not about threads at all. Coroutines are just functions that can be suspended somewhere during their execution, nothing more. Using this mechanism, it's possible to create different things, like asynchronous computations, generators (aka yield), fibers, etc-etc. Both JVM and JS support
suspend
keyword, which allows to (obviously) to suspend execution of a function at a certain point. See
https://github.com/Kotlin/kotlin-coroutines/blob/master/kotlin-coroutines-informal.md for details