Skip to content

Commit 507dc76

Browse files
rbucktonmhegazy
authored andcommitted
Fix issue with throw in async delegator.
1 parent 2dd4c8a commit 507dc76

9 files changed

+34
-34
lines changed

src/compiler/transformers/esnext.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -929,8 +929,8 @@ namespace ts {
929929
text: `
930930
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
931931
var i, p;
932-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
933-
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
932+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
933+
function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; }
934934
};
935935
`
936936
};

tests/baselines/reference/emitter.asyncGenerators.classMethods.es2015.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,8 @@ var __asyncValues = (this && this.__asyncIterator) || function (o) {
128128
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
129129
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
130130
var i, p;
131-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
132-
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
131+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
132+
function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; }
133133
};
134134
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
135135
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
@@ -169,8 +169,8 @@ var __asyncValues = (this && this.__asyncIterator) || function (o) {
169169
};
170170
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
171171
var i, p;
172-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
173-
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
172+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
173+
function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; }
174174
};
175175
class C5 {
176176
f() {

tests/baselines/reference/emitter.asyncGenerators.classMethods.es5.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -264,8 +264,8 @@ var __asyncValues = (this && this.__asyncIterator) || function (o) {
264264
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
265265
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
266266
var i, p;
267-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
268-
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
267+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
268+
function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; }
269269
};
270270
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
271271
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
@@ -354,8 +354,8 @@ var __asyncValues = (this && this.__asyncIterator) || function (o) {
354354
};
355355
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
356356
var i, p;
357-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
358-
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
357+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
358+
function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; }
359359
};
360360
var __values = (this && this.__values) || function (o) {
361361
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;

tests/baselines/reference/emitter.asyncGenerators.functionDeclarations.es2015.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ var __asyncValues = (this && this.__asyncIterator) || function (o) {
9191
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
9292
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
9393
var i, p;
94-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
95-
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
94+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
95+
function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; }
9696
};
9797
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
9898
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
@@ -130,8 +130,8 @@ var __asyncValues = (this && this.__asyncIterator) || function (o) {
130130
};
131131
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
132132
var i, p;
133-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
134-
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
133+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
134+
function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; }
135135
};
136136
function f5() {
137137
return __asyncGenerator(this, arguments, function* f5_1() {

tests/baselines/reference/emitter.asyncGenerators.functionDeclarations.es5.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,8 @@ var __asyncValues = (this && this.__asyncIterator) || function (o) {
218218
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
219219
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
220220
var i, p;
221-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
222-
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
221+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
222+
function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; }
223223
};
224224
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
225225
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
@@ -303,8 +303,8 @@ var __asyncValues = (this && this.__asyncIterator) || function (o) {
303303
};
304304
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
305305
var i, p;
306-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
307-
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
306+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
307+
function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; }
308308
};
309309
var __values = (this && this.__values) || function (o) {
310310
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;

tests/baselines/reference/emitter.asyncGenerators.functionExpressions.es2015.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ var __asyncValues = (this && this.__asyncIterator) || function (o) {
9191
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
9292
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
9393
var i, p;
94-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
95-
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
94+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
95+
function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; }
9696
};
9797
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
9898
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
@@ -130,8 +130,8 @@ var __asyncValues = (this && this.__asyncIterator) || function (o) {
130130
};
131131
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
132132
var i, p;
133-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
134-
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
133+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
134+
function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; }
135135
};
136136
const f5 = function () {
137137
return __asyncGenerator(this, arguments, function* () {

tests/baselines/reference/emitter.asyncGenerators.functionExpressions.es5.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,8 @@ var __asyncValues = (this && this.__asyncIterator) || function (o) {
218218
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
219219
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
220220
var i, p;
221-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
222-
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
221+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
222+
function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; }
223223
};
224224
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
225225
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
@@ -303,8 +303,8 @@ var __asyncValues = (this && this.__asyncIterator) || function (o) {
303303
};
304304
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
305305
var i, p;
306-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
307-
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
306+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
307+
function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; }
308308
};
309309
var __values = (this && this.__values) || function (o) {
310310
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;

tests/baselines/reference/emitter.asyncGenerators.objectLiteralMethods.es2015.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ var __asyncValues = (this && this.__asyncIterator) || function (o) {
111111
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
112112
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
113113
var i, p;
114-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
115-
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
114+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
115+
function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; }
116116
};
117117
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
118118
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
@@ -152,8 +152,8 @@ var __asyncValues = (this && this.__asyncIterator) || function (o) {
152152
};
153153
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
154154
var i, p;
155-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
156-
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
155+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
156+
function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; }
157157
};
158158
const o5 = {
159159
f() {

tests/baselines/reference/emitter.asyncGenerators.objectLiteralMethods.es5.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -238,8 +238,8 @@ var __asyncValues = (this && this.__asyncIterator) || function (o) {
238238
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
239239
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
240240
var i, p;
241-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
242-
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
241+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
242+
function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; }
243243
};
244244
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
245245
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
@@ -325,8 +325,8 @@ var __asyncValues = (this && this.__asyncIterator) || function (o) {
325325
};
326326
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
327327
var i, p;
328-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
329-
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
328+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
329+
function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; }; }
330330
};
331331
var __values = (this && this.__values) || function (o) {
332332
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;

0 commit comments

Comments
 (0)