Turns out JS can throw an error on a line like return 42
;
generator
- loops forever sleeping 1s at a time, and when you try to stop it, it waits 1s and then throws an error.
iteration
- calls generator
via a for-await
and attempts to return
within the iteration. This forces iteration
to wait for generator
s finally
section to run which includes a 1s await!