Flexible generator-based asynchronous control flow for Node.js