The anatomy of async iterators (aka await, foreach, yield)