ES6 Generators: How do they work?