babel/kneden

Incorrect result with async arrow functions when not using `babel-preset-es2015`

Open

#19 ouverte le 14 févr. 2016

Voir sur GitHub
 (6 commentaires) (0 réactions) (0 assignés)JavaScript (37 forks)batch import
enhancementhelp wanted

Métriques du dépôt

Stars
 (519 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

I tried kneden out on some test files where I was previously using babel-transform-async-to-generator and came across a failing case.

In this project I wasn't using babel-preset-es2015 as I just wanted to compile async/await down to es6.

I've simplified the test case down to this:

.babelrc

{
  "plugins": ["../../../src"]
}

actual.js

function test() {
  let server;
  before(async () => server = await TestServer.start());
}

The output I get from running the test is:

function test() {
  let server;
  before(() => {
    return Promise.resolve();
  });
}

which is definitely not right :)

If I add "presets": ["es2015"] to .babelrc in the fixture dir I get the more correct looking:

function test() {
  var server = undefined;
  before(function () {
    return Promise.resolve().then(function () {
      return TestServer.start();
    }).then(function (_resp) {
      return server = _resp;
    });
  });
}

Guide contributeur