Skip to content

Commit 027ce57

Browse files
committed
Add runtime utility module.
1 parent 5ec11fa commit 027ce57

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

runtime.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
exports.async = function(generator) {
2+
return new Promise(function(resolve, reject) {
3+
var callNext = step.bind(generator.next);
4+
var callThrow = step.bind(generator.throw);
5+
6+
function step(arg) {
7+
try {
8+
var info = this(arg);
9+
var value = info.value;
10+
} catch (error) {
11+
reject(error);
12+
return;
13+
}
14+
15+
if (info.done) {
16+
resolve(value);
17+
} else {
18+
Promise.resolve(value).then(callNext, callThrow);
19+
}
20+
}
21+
22+
callNext();
23+
});
24+
};

0 commit comments

Comments
 (0)