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:
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
@@ -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);
|
||||
});
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"minNodeVersion": "8.0.0"
|
||||
}
|
||||
@@ -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);
|
||||
});
|
||||
Reference in New Issue
Block a user