Support yield in do expression (#10101)

Co-authored-by: Huáng Jùnliàng <jlhwung@gmail.com>
This commit is contained in:
Tan Li Hau
2021-04-06 23:09:14 +08:00
committed by GitHub
parent 7fe3ebf4db
commit 6b57145d38
9 changed files with 84 additions and 4 deletions

View File

@@ -0,0 +1,15 @@
async function* asyncGenerator(x) {
const y = do {
let z;
yield 3;
yield await x;
};
return y;
}
const promise = Promise.resolve(5);
const gen = asyncGenerator(promise);
expect(gen.next()).resolves.toMatchObject({ value: 3, done: false });
expect(gen.next()).resolves.toMatchObject({ value: 5, done: false });
expect(gen.next(10)).resolves.toMatchObject({ value: 10, done: true });

View File

@@ -0,0 +1,8 @@
async function* asyncGenerator(x) {
const y = do {
let z;
yield await x;
};
return y;
}

View File

@@ -0,0 +1,3 @@
{
"minNodeVersion": "10.0.0"
}

View File

@@ -0,0 +1,7 @@
async function* asyncGenerator(x) {
const y = yield* async function* () {
let z;
return yield await x;
}();
return y;
}

View File

@@ -0,0 +1,14 @@
function * generator() {
yield 1;
const y = do {
let z;
yield 2;
};
return y;
}
const gen = generator();
expect(gen.next().value).toBe(1);
expect(gen.next().value).toBe(2);
expect(gen.next(3).value).toBe(3);

View File

@@ -0,0 +1,8 @@
function * g() {
const y = do {
let z;
yield 1;
};
return y;
}

View File

@@ -0,0 +1,3 @@
{
"minNodeVersion": "8.0.0"
}

View File

@@ -0,0 +1,7 @@
function* g() {
const y = yield* function* () {
let z;
return yield 1;
}();
return y;
}