developit / developit/microbundle

[Transpiling] Rest parameters with async bug

オープン
#1,001 コメント 0 件 リアクション 1 件 担当者 0 名 GitHub で見る
主要言語
JavaScript
スター
8.1k
フォーク
358
PR マージ指標
30日以内にマージされた PR はありません

説明

Minimal test case:

```javascript
export const brokenArgsRest = async (...props) => {
await someAsyncFunction(async () => {
console.log(props)
})
}

export const someAsyncFunction = async callback => {
await callback()
}
```

generates

```javascript
var brokenArgsRest = function brokenArgsRest() {
return Promise.resolve(someAsyncFunction(function () {
try {
var _arguments2 = arguments;
console.log([].slice.call(_arguments2));
return Promise.resolve();
} catch (e) {
return Promise.reject(e);
}
})).then(function () {});
};
var someAsyncFunction = function someAsyncFunction(callback) {
try {
return Promise.resolve(callback()).then(function () {});
} catch (e) {
return Promise.reject(e);
}
};
```

` var _arguments2 = arguments;` should be one more level up

Context:
We hit this bug on fcl-js lib : https://github.com/onflow/flow-js-testing/issues/182

PS: my js knowledge is limited, but seems related to inlining somehow.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。