title: How are coroutines implemented in JVM langs without JVM support?
body: <p>This question came up after reading the <a href="http://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html" rel="noreferrer">Loom proposal</a>, which describes an approach of implementing coroutines in the Java programming language.</p>
  
  <p>Particularly this proposal says that to implement this feature in the language, additional JVM support will be required.</p>
  
  <p>As I understand it there are already several languages on the JVM that have coroutines as part of their feature set such as Kotlin and Scala.</p>
  
  <p>So how is this feature implemented without additional support and can it be implemented efficiently without it?</p>