Babel 6中异步功能没有被提升

时间:2016-01-16 12:55:46

标签: babeljs

尝试在Babel 6中编译这段代码

function A() {
    return async function B() {
        some.thing = C;
        async function C() {}
    }
}

async function C应该被吊起来,对吗?它确实在babel's online repl site

...
C = function C() {
    ...
};
some.thing = C;
...

但是在我的系统上,它编译的方式不同(并且不正确):

...
some.thing = C;
C = (function () {
    var ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
...

此处C被定义为变量且未被提升,导致some.thing未定义

complete code gist

为什么我的系统出现这种差异?我正在使用Babel 6.3和presets: ['es2015', 'stage-0']

1 个答案:

答案 0 :(得分:1)

这是Babel 6中的一个已知错误。该问题在https://phabricator.babeljs.io/T6760

中进行了跟踪