Es6

- 使用 generator 重写
- 增加测试用例

#8 
之后把这里的 gulp 去掉