TypeScript Version: nightly (2.2.0-dev.20170227)
Sample code:
async function* asyncGen() {
yield 1;
throw 'nope';
}
(async () => {
for await (let n of asyncGen()) {
console.log(n);
}
})();
The transformed await function:
(function () { return __awaiter(_this, void 0, void 0, function () {
var _a, _b, n, _c, e_1, _d;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
_e.trys.push([0, 6, 7, 12]);
_a = __asyncValues(asyncGen());
return [4 /*yield*/, _a.next()];
case 1:
_b = _e.sent();
_e.label = 2;
case 2:
if (!!_b.done) return [3 /*break*/, 5];
n = _b.value;
console.log(n);
_e.label = 3;
case 3: return [4 /*yield*/, _a.next()];
case 4:
_b = _e.sent();
return [3 /*break*/, 2];
case 5: return [3 /*break*/, 12];
case 6:
_c = _e.sent();
e_1 = { error: e_1_1 }; // <------ ReferenceError: e_1_1 is not defined
return [3 /*break*/, 12];
case 7:
_e.trys.push([7, , 10, 11]);
if (!(_b && !_b.done && (_d = _a.return))) return [3 /*break*/, 9];
return [4 /*yield*/, _d.call(_a)];
case 8:
_e.sent();
_e.label = 9;
case 9: return [3 /*break*/, 11];
case 10:
if (e_1) throw e_1.error;
return [7 /*endfinally*/];
case 11: return [7 /*endfinally*/];
case 12: return [2 /*return*/];
}
});
}); })();
Expected behavior:
case 6 is currently referencing the undeclared variable e_1_1 in e_1 = { error: e_1_1 };. I think the correct transpilation is e_1 = { error: _c };
Actual behavior:
case 6 is transformed with an undeclared variable.
TypeScript Version: nightly (2.2.0-dev.20170227)
Sample code:
The transformed await function:
Expected behavior:
case 6is currently referencing the undeclared variablee_1_1ine_1 = { error: e_1_1 };. I think the correct transpilation ise_1 = { error: _c };Actual behavior:
case 6is transformed with an undeclared variable.