evanw / evanw/node-source-map-support

Only first line working?

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

説明

`node v8.0.0`

src/throw-err.js (not compiled)

```javascript
import 'source-map-support/register'

const main = async () => {
throw new Error('wooot')
}

main().catch(console.error)
```

lib/throw-err.js (compiled with babel)

```javascript
'use strict';

require('source-map-support/register');

function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }

const main = (() => {
var _ref = _asyncToGenerator(function* () {
throw new Error('wooot');
});

return function main() {
return _ref.apply(this, arguments);
};
})();

main().catch(console.error);
//# sourceMappingURL=throw-err.js.map

```

lib/throw-err.js.map (source map)

```json
{"version":3,"sources":["../src/throw-err.js"],"names":["main","Error","catch","console","error"],"mappings":";;AAAA;;;;AAEA,MAAMA;AAAA,+BAAO,aAAY;AACvB,UAAM,IAAIC,KAAJ,CAAU,OAAV,CAAN;AACD,GAFK;;AAAA;AAAA;AAAA;AAAA,IAAN;;AAIAD,OAAOE,KAAP,CAAaC,QAAQC,KAArB","file":"throw-err.js","sourcesContent":["import 'source-map-support/register'\n\nconst main = async () => {\n throw new Error('wooot')\n}\n\nmain().catch(console.error)\n"]}
```

```
$ node lib/throw-err.js
Error: wooot
at /Users/olalonde/code/binded/filepunk/src/throw-err.js:4:9
at Generator.next ()
at step (/Users/olalonde/code/binded/filepunk/lib/throw-err.js:5:191)
at /Users/olalonde/code/binded/filepunk/lib/throw-err.js:5:437
at Promise ()
at /Users/olalonde/code/binded/filepunk/lib/throw-err.js:5:99
at main (/Users/olalonde/code/binded/filepunk/src/throw-err.js:3:7)
at Object. (/Users/olalonde/code/binded/filepunk/src/throw-err.js:7:1)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
```

Why Is only the first line of the stack trace correct? `at Generator.next ()` and lines with `lib/` should not be there.

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

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

調査の方向性

示されている lib/throw-err.js を実行し、src/throw-err.js とその throw-err.js.map を参照入力として使用して、Node v8 で報告を再現します。source-map-support/register から開始し、スタックがどのようにマッピングされるかを調査します。この例を実行したときに、非同期エラースタックに Generator.next や lib/ フレームが含まれなくなれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
javascript, node.js
領域
devtools
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

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

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