为什么这个es6生成器函数会崩溃babel编译器?

时间:2017-04-03 20:12:40

标签: ecmascript-6 babeljs

我将这个代码从es6生成器函数教程复制到babel的在线编译器中,以便查看生成的代码是什么样的

function* count(){
    for (var x = 0; true; x++) {
        yield x
    }
}

for (var x of count()) {
    console.log(x)
}

启用了以下选项:es2015, es2016, react, stage-2
在粘贴时,标签冻结并崩溃(一直尝试几次)。

链接:

生成器函数教程取自:https://www.promisejs.org/generators/

巴贝尔编译器(官方):https://babeljs.io/repl/

问题

  1. 上面应该编译什么?
  2. babel是否需要启用某种选项来支持浏览器中的生成器功能?
  3. 为什么以上输入会破坏babel编译器? (也许是无法回答的)

1 个答案:

答案 0 :(得分:1)

这是关于使用Babel.js在线工具的问题,而不是更广泛地关于生成器或ES2016的问题。

问题是您的代码会创建一个无限循环。可以编译产生无限循环的代码。然而,执行该代码会使您的浏览器崩溃。您已设置Babel网站工具来评估代码。

如果你取消"评估"选项或从命令行编译代码,Babel将很好地处理转换。