Do not optimize away async/gen arrow functions (#7319)

* Do not optimize away async/gen arrow functions

* Node version 8
This commit is contained in:
Justin Ridgewell
2018-02-03 17:08:12 -05:00
committed by GitHub
parent 2254ed45d2
commit 5ea1bfe780
5 changed files with 45 additions and 1 deletions

View File

@@ -14,7 +14,10 @@ export default function() {
if (operator !== "|>") return;
let optimizeArrow =
t.isArrowFunctionExpression(right) && t.isExpression(right.body);
t.isArrowFunctionExpression(right) &&
t.isExpression(right.body) &&
!right.async &&
!right.generator;
let param;
if (optimizeArrow) {

View File

@@ -0,0 +1,13 @@
function then(fn) {
return async (value) => {
return fn(await value);
};
}
var result = 1
|> (async (x) => await x + 1)
|> then((x) => x + 1);
result.then(val => {
assert.equal(val, 3);
});

View File

@@ -0,0 +1,13 @@
function then(fn) {
return async (value) => {
return fn(await value);
};
}
var result = 1
|> (async (x) => await x + 1)
|> then((x) => x + 1);
result.then(val => {
assert.equal(val, 3);
});

View File

@@ -0,0 +1,3 @@
{
"minNodeVersion": "8.0.0"
}

View File

@@ -0,0 +1,12 @@
var _ref, _;
function then(fn) {
return async value => {
return fn((await value));
};
}
var result = (_ref = (_ = 1, (async x => (await x) + 1)(_)), then(x => x + 1)(_ref));
result.then(val => {
assert.equal(val, 3);
});