Click next() to advance the generator one step. Watch execution pause at each
yield, the returned { value, done }, and how local state survives between calls.
Numbers flow through the pipeline one at a time. Click step to pull the next value lazily: keep evens → square them → take 5. No intermediate arrays are built.
Both process the same heavy workload. The blocking loop freezes the UI (the spinner stops!). The generator yields control between chunks, so the spinner keeps spinning and progress updates.