From 7ecf6d5293e2485c11e4cebc30d7ae4b14702e9e Mon Sep 17 00:00:00 2001 From: Tan Li Hau Date: Mon, 5 Apr 2021 21:27:39 -0400 Subject: [PATCH] include generators for do expression --- .../fixtures/do-expressions/await-yield/exec.js | 15 +++++++++++++++ .../fixtures/do-expressions/await-yield/input.js | 8 ++++++++ .../do-expressions/await-yield/options.json | 3 +++ .../fixtures/do-expressions/await-yield/output.js | 7 +++++++ .../test/fixtures/do-expressions/yield/exec.js | 14 ++++++++++++++ .../test/fixtures/do-expressions/yield/input.js | 8 ++++++++ .../fixtures/do-expressions/yield/options.json | 3 +++ .../test/fixtures/do-expressions/yield/output.js | 7 +++++++ 8 files changed, 65 insertions(+) create mode 100644 packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/await-yield/exec.js create mode 100644 packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/await-yield/input.js create mode 100644 packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/await-yield/options.json create mode 100644 packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/await-yield/output.js create mode 100644 packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/yield/exec.js create mode 100644 packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/yield/input.js create mode 100644 packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/yield/options.json create mode 100644 packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/yield/output.js diff --git a/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/await-yield/exec.js b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/await-yield/exec.js new file mode 100644 index 000000000000..fce8d59e2eaa --- /dev/null +++ b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/await-yield/exec.js @@ -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 }); diff --git a/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/await-yield/input.js b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/await-yield/input.js new file mode 100644 index 000000000000..6e7fa1ff88ef --- /dev/null +++ b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/await-yield/input.js @@ -0,0 +1,8 @@ +async function* asyncGenerator(x) { + const y = do { + let z; + yield await x; + }; + + return y; +} \ No newline at end of file diff --git a/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/await-yield/options.json b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/await-yield/options.json new file mode 100644 index 000000000000..ae1d62e8aaa7 --- /dev/null +++ b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/await-yield/options.json @@ -0,0 +1,3 @@ +{ + "minNodeVersion": "10.0.0" +} \ No newline at end of file diff --git a/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/await-yield/output.js b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/await-yield/output.js new file mode 100644 index 000000000000..72ed429c9e56 --- /dev/null +++ b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/await-yield/output.js @@ -0,0 +1,7 @@ +async function* asyncGenerator(x) { + const y = yield* await async function* () { + let z; + return yield await x; + }(); + return y; +} diff --git a/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/yield/exec.js b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/yield/exec.js new file mode 100644 index 000000000000..90e7c35ed31b --- /dev/null +++ b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/yield/exec.js @@ -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); \ No newline at end of file diff --git a/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/yield/input.js b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/yield/input.js new file mode 100644 index 000000000000..a8fa76c8100e --- /dev/null +++ b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/yield/input.js @@ -0,0 +1,8 @@ +function * g() { + const y = do { + let z; + yield 1; + }; + + return y; +} \ No newline at end of file diff --git a/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/yield/options.json b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/yield/options.json new file mode 100644 index 000000000000..7edb6d2fc815 --- /dev/null +++ b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/yield/options.json @@ -0,0 +1,3 @@ +{ + "minNodeVersion": "8.0.0" +} \ No newline at end of file diff --git a/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/yield/output.js b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/yield/output.js new file mode 100644 index 000000000000..12f1022282a3 --- /dev/null +++ b/packages/babel-plugin-proposal-do-expressions/test/fixtures/do-expressions/yield/output.js @@ -0,0 +1,7 @@ +function* g() { + const y = yield* function* () { + let z; + return yield 1; + }(); + return y; +}