Skip to content

Commit 4318d97

Browse files
author
Artem Tyurin
committed
Revert "Resolve promise inside async generator"
This reverts commit 3e42791.
1 parent fa94fb0 commit 4318d97

13 files changed

+71
-568
lines changed

src/compiler/transformers/esnext.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -922,14 +922,7 @@ namespace ts {
922922
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
923923
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
924924
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
925-
function step(r) {
926-
if (r.value instanceof __await) {
927-
Promise.resolve(r.value.v).then(fulfill, reject);
928-
} else if (r.value instanceof Promise) {
929-
r.value.then(function(rv) { settle(q[0][2], resolve(r, rv)); }, function(e) { settle(q[0][3], resolve(r, e)); });
930-
} else { settle(q[0][2], r); }
931-
}
932-
function resolve(r, rv) { return { value: rv, done: r.done }; }
925+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
933926
function fulfill(value) { resume("next", value); }
934927
function reject(value) { resume("throw", value); }
935928
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }

tests/baselines/reference/asyncImportNestedYield.js

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,7 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
3838
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
3939
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
4040
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
41-
function step(r) {
42-
if (r.value instanceof __await) {
43-
Promise.resolve(r.value.v).then(fulfill, reject);
44-
} else if (r.value instanceof Promise) {
45-
r.value.then(function(rv) { settle(q[0][2], resolve(r, rv)); }, function(e) { settle(q[0][3], resolve(r, e)); });
46-
} else { settle(q[0][2], r); }
47-
}
48-
function resolve(r, rv) { return { value: rv, done: r.done }; }
41+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
4942
function fulfill(value) { resume("next", value); }
5043
function reject(value) { resume("throw", value); }
5144
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }

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

Lines changed: 9 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,7 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
6868
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
6969
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
7070
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
71-
function step(r) {
72-
if (r.value instanceof __await) {
73-
Promise.resolve(r.value.v).then(fulfill, reject);
74-
} else if (r.value instanceof Promise) {
75-
r.value.then(function(rv) { settle(q[0][2], resolve(r, rv)); }, function(e) { settle(q[0][3], resolve(r, e)); });
76-
} else { settle(q[0][2], r); }
77-
}
78-
function resolve(r, rv) { return { value: rv, done: r.done }; }
71+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
7972
function fulfill(value) { resume("next", value); }
8073
function reject(value) { resume("throw", value); }
8174
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
@@ -94,14 +87,7 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
9487
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
9588
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
9689
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
97-
function step(r) {
98-
if (r.value instanceof __await) {
99-
Promise.resolve(r.value.v).then(fulfill, reject);
100-
} else if (r.value instanceof Promise) {
101-
r.value.then(function(rv) { settle(q[0][2], resolve(r, rv)); }, function(e) { settle(q[0][3], resolve(r, e)); });
102-
} else { settle(q[0][2], r); }
103-
}
104-
function resolve(r, rv) { return { value: rv, done: r.done }; }
90+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
10591
function fulfill(value) { resume("next", value); }
10692
function reject(value) { resume("throw", value); }
10793
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
@@ -121,14 +107,7 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
121107
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
122108
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
123109
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
124-
function step(r) {
125-
if (r.value instanceof __await) {
126-
Promise.resolve(r.value.v).then(fulfill, reject);
127-
} else if (r.value instanceof Promise) {
128-
r.value.then(function(rv) { settle(q[0][2], resolve(r, rv)); }, function(e) { settle(q[0][3], resolve(r, e)); });
129-
} else { settle(q[0][2], r); }
130-
}
131-
function resolve(r, rv) { return { value: rv, done: r.done }; }
110+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
132111
function fulfill(value) { resume("next", value); }
133112
function reject(value) { resume("throw", value); }
134113
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
@@ -158,14 +137,7 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
158137
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
159138
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
160139
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
161-
function step(r) {
162-
if (r.value instanceof __await) {
163-
Promise.resolve(r.value.v).then(fulfill, reject);
164-
} else if (r.value instanceof Promise) {
165-
r.value.then(function(rv) { settle(q[0][2], resolve(r, rv)); }, function(e) { settle(q[0][3], resolve(r, e)); });
166-
} else { settle(q[0][2], r); }
167-
}
168-
function resolve(r, rv) { return { value: rv, done: r.done }; }
140+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
169141
function fulfill(value) { resume("next", value); }
170142
function reject(value) { resume("throw", value); }
171143
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
@@ -185,14 +157,7 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
185157
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
186158
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
187159
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
188-
function step(r) {
189-
if (r.value instanceof __await) {
190-
Promise.resolve(r.value.v).then(fulfill, reject);
191-
} else if (r.value instanceof Promise) {
192-
r.value.then(function(rv) { settle(q[0][2], resolve(r, rv)); }, function(e) { settle(q[0][3], resolve(r, e)); });
193-
} else { settle(q[0][2], r); }
194-
}
195-
function resolve(r, rv) { return { value: rv, done: r.done }; }
160+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
196161
function fulfill(value) { resume("next", value); }
197162
function reject(value) { resume("throw", value); }
198163
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
@@ -222,14 +187,7 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
222187
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
223188
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
224189
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
225-
function step(r) {
226-
if (r.value instanceof __await) {
227-
Promise.resolve(r.value.v).then(fulfill, reject);
228-
} else if (r.value instanceof Promise) {
229-
r.value.then(function(rv) { settle(q[0][2], resolve(r, rv)); }, function(e) { settle(q[0][3], resolve(r, e)); });
230-
} else { settle(q[0][2], r); }
231-
}
232-
function resolve(r, rv) { return { value: rv, done: r.done }; }
190+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
233191
function fulfill(value) { resume("next", value); }
234192
function reject(value) { resume("throw", value); }
235193
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
@@ -249,14 +207,7 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
249207
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
250208
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
251209
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
252-
function step(r) {
253-
if (r.value instanceof __await) {
254-
Promise.resolve(r.value.v).then(fulfill, reject);
255-
} else if (r.value instanceof Promise) {
256-
r.value.then(function(rv) { settle(q[0][2], resolve(r, rv)); }, function(e) { settle(q[0][3], resolve(r, e)); });
257-
} else { settle(q[0][2], r); }
258-
}
259-
function resolve(r, rv) { return { value: rv, done: r.done }; }
210+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
260211
function fulfill(value) { resume("next", value); }
261212
function reject(value) { resume("throw", value); }
262213
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
@@ -276,14 +227,7 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
276227
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
277228
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
278229
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
279-
function step(r) {
280-
if (r.value instanceof __await) {
281-
Promise.resolve(r.value.v).then(fulfill, reject);
282-
} else if (r.value instanceof Promise) {
283-
r.value.then(function(rv) { settle(q[0][2], resolve(r, rv)); }, function(e) { settle(q[0][3], resolve(r, e)); });
284-
} else { settle(q[0][2], r); }
285-
}
286-
function resolve(r, rv) { return { value: rv, done: r.done }; }
230+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
287231
function fulfill(value) { resume("next", value); }
288232
function reject(value) { resume("throw", value); }
289233
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
@@ -305,14 +249,7 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
305249
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
306250
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
307251
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
308-
function step(r) {
309-
if (r.value instanceof __await) {
310-
Promise.resolve(r.value.v).then(fulfill, reject);
311-
} else if (r.value instanceof Promise) {
312-
r.value.then(function(rv) { settle(q[0][2], resolve(r, rv)); }, function(e) { settle(q[0][3], resolve(r, e)); });
313-
} else { settle(q[0][2], r); }
314-
}
315-
function resolve(r, rv) { return { value: rv, done: r.done }; }
252+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
316253
function fulfill(value) { resume("next", value); }
317254
function reject(value) { resume("throw", value); }
318255
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }

0 commit comments

Comments
 (0)