Transforms the coroutine body into three address form with restricted control flow
that contains only try-catch statements, while loops, if-statements, value and
variable declarations, pattern matches, nested blocks and function calls.
Newly synthesized variables get mangled fresh names, and existing variable names are
preserved.
Coroutine operations usages are checked for correctness, and nested contexts, such
as function and class declarations, are checked, but not transformed.
Transforms the coroutine body into three address form with restricted control flow that contains only try-catch statements, while loops, if-statements, value and variable declarations, pattern matches, nested blocks and function calls.
Newly synthesized variables get mangled fresh names, and existing variable names are preserved.
Coroutine operations usages are checked for correctness, and nested contexts, such as function and class declarations, are checked, but not transformed.