babel/kneden

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

Open

#19 opened on Feb 14, 2016

View on GitHub
 (6 comments) (0 reactions) (0 assignees)JavaScript (37 forks)batch import
enhancementhelp wanted

Repository metrics

Stars
 (519 stars)
PR merge metrics
 (No merged PRs in 30d)

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;
    });
  });
}

Contributor guide