Skip to content

Commit 0cadbd0

Browse files
authored
Merge pull request #30 from Microsoft/updateAsyncGeneratorHelpers
Update async generator helpers
2 parents b687af3 + 13a29ac commit 0cadbd0

File tree

6 files changed

+51
-32
lines changed

6 files changed

+51
-32
lines changed

README.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,31 @@ For the latest stable version:
99
## npm
1010

1111
```sh
12+
# TypeScript 2.3.3 or later
1213
npm install tslib
14+
15+
# TypeScript 2.3.2 or earlier
16+
npm install [email protected]
1317
```
1418

1519
## bower
1620

1721
```sh
22+
# TypeScript 2.3.3 or later
1823
bower install tslib
24+
25+
# TypeScript 2.3.2 or earlier
26+
bower install [email protected]
1927
```
2028

2129
## JSPM
2230

2331
```sh
32+
# TypeScript 2.3.3 or later
2433
jspm install npm:tslib
34+
35+
# TypeScript 2.3.2 or earlier
36+
jspm install npm:[email protected]
2537
```
2638

2739
# Usage
@@ -68,7 +80,7 @@ For JSPM users:
6880
"importHelpers": true,
6981
"baseUrl": "./",
7082
"paths": {
71-
"tslib" : ["jspm_packages/npm/tslib@1.6.1/tslib.d.ts"]
83+
"tslib" : ["jspm_packages/npm/tslib@1.7.0/tslib.d.ts"]
7284
}
7385
}
7486
}

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"Microsoft Corp."
55
],
66
"homepage": "http://typescriptlang.org/",
7-
"version": "1.6.0",
7+
"version": "1.7.0",
88
"license": "Apache-2.0",
99
"description": "Runtime library for TypeScript helper functions",
1010
"keywords": [

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "tslib",
33
"author": "Microsoft Corp.",
44
"homepage": "http://typescriptlang.org/",
5-
"version": "1.6.1",
5+
"version": "1.7.0",
66
"license": "Apache-2.0",
77
"description": "Runtime library for TypeScript helper functions",
88
"keywords": [

tslib.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export declare function __exportStar(m: any, exports: any): void;
2424
export declare function __values(o: any): any;
2525
export declare function __read(o: any, n?: number): any[];
2626
export declare function __spread(...args: any[]): any[];
27+
export declare function __await(v: any): any;
2728
export declare function __asyncGenerator(thisArg: any, _arguments: any, generator: Function): any;
2829
export declare function __asyncDelegator(o: any): any;
2930
export declare function __asyncValues(o: any): any;

tslib.es6.js

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export var __assign = Object.assign || function __assign(t) {
3030
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
3131
}
3232
return t;
33-
};
33+
}
3434

3535
export function __rest(s, e) {
3636
var t = {};
@@ -107,7 +107,7 @@ export function __values(o) {
107107
return { value: o && o[i++], done: !o };
108108
}
109109
};
110-
};
110+
}
111111

112112
export function __read(o, n) {
113113
var m = typeof Symbol === "function" && o[Symbol.iterator];
@@ -124,36 +124,38 @@ export function __read(o, n) {
124124
finally { if (e) throw e.error; }
125125
}
126126
return ar;
127-
};
127+
}
128128

129129
export function __spread() {
130130
for (var ar = [], i = 0; i < arguments.length; i++)
131131
ar = ar.concat(__read(arguments[i]));
132132
return ar;
133-
};
133+
}
134+
135+
export function __await(v) {
136+
return this instanceof __await ? (this.v = v, this) : new __await(v);
137+
}
134138

135139
export function __asyncGenerator(thisArg, _arguments, generator) {
136140
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
137-
var g = generator.apply(thisArg, _arguments || []), q = [], c, i;
138-
return i = { next: verb("next"), "throw": verb("throw"), "return": verb("return") }, i[Symbol.asyncIterator] = function () { return this; }, i;
139-
function verb(n) { return function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]), next(); }); }; }
140-
function next() { if (!c && q.length) resume((c = q.shift())[0], c[1]); }
141-
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(c[3], e); } }
142-
function step(r) { r.done ? settle(c[2], r) : Promise.resolve(r.value[1]).then(r.value[0] === "yield" ? send : fulfill, reject); }
143-
function send(value) { settle(c[2], { value: value, done: false }); }
141+
var g = generator.apply(thisArg, _arguments || []), i, q = [];
142+
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
143+
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); }); }; }
144+
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
145+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
144146
function fulfill(value) { resume("next", value); }
145147
function reject(value) { resume("throw", value); }
146-
function settle(f, v) { c = void 0, f(v), next(); }
147-
};
148+
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
149+
}
148150

149151
export function __asyncDelegator(o) {
150-
var i = { next: verb("next"), "throw": verb("throw", function (e) { throw e; }), "return": verb("return", function (v) { return { value: v, done: true }; }) }, p;
151-
return o = __asyncValues(o), i[Symbol.iterator] = function () { return this; }, i;
152-
function verb(n, f) { return function (v) { return v = p && n === "throw" ? f(v) : p && v.done ? v : { value: p ? ["yield", v.value] : ["await", (o[n] || f).call(o, v)], done: false }, p = !p, v; }; }
153-
};
152+
var i, p;
153+
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
154+
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
155+
}
154156

155157
export function __asyncValues(o) {
156158
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
157159
var m = o[Symbol.asyncIterator];
158160
return m ? m.call(o) : typeof __values === "function" ? __values(o) : o[Symbol.iterator]();
159-
};
161+
}

tslib.js

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ var __exportStar;
2525
var __values;
2626
var __read;
2727
var __spread;
28+
var __await;
2829
var __asyncGenerator;
2930
var __asyncDelegator;
3031
var __asyncValues;
@@ -162,24 +163,26 @@ var __asyncValues;
162163
return ar;
163164
};
164165

166+
__await = function (v) {
167+
return this instanceof __await ? (this.v = v, this) : new __await(v);
168+
};
169+
165170
__asyncGenerator = function (thisArg, _arguments, generator) {
166171
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
167-
var g = generator.apply(thisArg, _arguments || []), q = [], c, i;
168-
return i = { next: verb("next"), "throw": verb("throw"), "return": verb("return") }, i[Symbol.asyncIterator] = function () { return this; }, i;
169-
function verb(n) { return function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]), next(); }); }; }
170-
function next() { if (!c && q.length) resume((c = q.shift())[0], c[1]); }
171-
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(c[3], e); } }
172-
function step(r) { r.done ? settle(c[2], r) : Promise.resolve(r.value[1]).then(r.value[0] === "yield" ? send : fulfill, reject); }
173-
function send(value) { settle(c[2], { value: value, done: false }); }
172+
var g = generator.apply(thisArg, _arguments || []), i, q = [];
173+
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
174+
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); }); }; }
175+
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
176+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
174177
function fulfill(value) { resume("next", value); }
175178
function reject(value) { resume("throw", value); }
176-
function settle(f, v) { c = void 0, f(v), next(); }
179+
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
177180
};
178181

179182
__asyncDelegator = function (o) {
180-
var i = { next: verb("next"), "throw": verb("throw", function (e) { throw e; }), "return": verb("return", function (v) { return { value: v, done: true }; }) }, p;
181-
return o = __asyncValues(o), i[Symbol.iterator] = function () { return this; }, i;
182-
function verb(n, f) { return function (v) { return v = p && n === "throw" ? f(v) : p && v.done ? v : { value: p ? ["yield", v.value] : ["await", (o[n] || f).call(o, v)], done: false }, p = !p, v; }; }
183+
var i, p;
184+
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
185+
function verb(n) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : v; }; }
183186
};
184187

185188
__asyncValues = function (o) {
@@ -200,6 +203,7 @@ var __asyncValues;
200203
exporter("__values", __values);
201204
exporter("__read", __read);
202205
exporter("__spread", __spread);
206+
exporter("__await", __await);
203207
exporter("__asyncGenerator", __asyncGenerator);
204208
exporter("__asyncDelegator", __asyncDelegator);
205209
exporter("__asyncValues", __asyncValues);

0 commit comments

Comments
 (0)