df225c0c7f
The coroutine transformation would leave locals in the local variable table across the code that reloads local variables from the continuation on reentry. However, when reentering the function the local has no value until after the reloads from the continuation. This change splits the locals in the local variable table to avoid such uninitialized locals. A local alive across a suspension point has its range split in two. One that goes from the original start to the state label for the restart after the suspension. The other goes from after the local has been reloaded from the continuation until the previous end of the local.