Babel v6 - transform-es2015-classes plugin in loose mode throws SyntaxError: Unexpected identifier for async/await

Babel v6 - transform-es2015-classes plugin in loose mode throws SyntaxError: Unexpected identifier for async/await

我已经更新到最新的 babel v6。但是我注意到在 (https://github.com/bkonkle/babel-preset-es2015-loose/blob/master/index.js#L8) 上使用带有松散模式的 transform-es2015-classes 插件会破坏 async/await 函数。例如:

function _asyncFunc (value) {
  return new Promise((resolve) => {
    setTimeout(() => resolve(value), 10);
  });
}

class TestActions {
  async asyncAction(returnValue) {
    const result = await _asyncFunc(returnValue); // exception here
    return result;
  }
}

这条线上的松动中断:

var result = await _asyncFunc(returnValue); ^^^^^^^^^^ SyntaxError: Unexpected identifier

Babelrc 如下所示(我也通过在入口点 import 'babel-runtime/regenerator/runtime'; 中导入它来使用再生器运行时):

{
  "presets": [
    "es2015-loose",
    "react",
    "stage-0"
  ]
}

由于这个 Babel 错误,我需要使用松散模式 - https://phabricator.babeljs.io/T3041

有什么解决方法吗?

这是 Babel v6 中的一个错误,它已经在 6.3.15 中修复,只需更新您的软件包,pr - https://github.com/babel/babel/pull/3135