It uses generators and their yield as the yield point (and supports running arbitrary functions under a debugger)