Adhering to async generator yield behavior change (#6452)
This commit is contained in:
committed by
GitHub
parent
39d05da3ed
commit
4684edaec7
@@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
|
||||
const actual = [];
|
||||
const expected = ["foo", "bar", "baz", "xyz"];
|
||||
|
||||
const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
|
||||
|
||||
async function* test() {
|
||||
yield await delay(0).then(() => actual.push("foo"));
|
||||
await delay(0).then(() => actual.push("bar"));
|
||||
yield delay(0).then(() => actual.push("baz"));
|
||||
actual.push("xyz");
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const g = test();
|
||||
g.next();
|
||||
g.next();
|
||||
await g.next();
|
||||
}
|
||||
|
||||
return main().then(() => {
|
||||
assert.deepEqual(actual, expected);
|
||||
});
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"plugins": [
|
||||
"external-helpers",
|
||||
"transform-async-to-generator",
|
||||
"transform-async-generator-functions"
|
||||
],
|
||||
"presets": ["es2015"],
|
||||
"parserOpts": {
|
||||
"allowReturnOutsideFunction": true
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
babelHelpers.asyncToGenerator(function* () {
|
||||
var _iteratorNormalCompletion = true;
|
||||
var _didIteratorError = false;
|
||||
var _iteratorError = undefined;
|
||||
|
||||
var _iteratorError;
|
||||
|
||||
try {
|
||||
for (var _iterator = babelHelpers.asyncIterator(y), _step, _value; _step = yield _iterator.next(), _iteratorNormalCompletion = _step.done, _value = yield _step.value, !_iteratorNormalCompletion; _iteratorNormalCompletion = true) {
|
||||
|
||||
@@ -2,7 +2,8 @@ let f = (() => {
|
||||
var _ref = babelHelpers.asyncToGenerator(function* () {
|
||||
var _iteratorNormalCompletion = true;
|
||||
var _didIteratorError = false;
|
||||
var _iteratorError = undefined;
|
||||
|
||||
var _iteratorError;
|
||||
|
||||
try {
|
||||
for (var _iterator = babelHelpers.asyncIterator(y), _step, _value; _step = yield _iterator.next(), _iteratorNormalCompletion = _step.done, _value = yield _step.value, !_iteratorNormalCompletion; _iteratorNormalCompletion = true) {
|
||||
|
||||
@@ -2,7 +2,8 @@ let g = (() => {
|
||||
var _ref = babelHelpers.wrapAsyncGenerator(function* () {
|
||||
var _iteratorNormalCompletion = true;
|
||||
var _didIteratorError = false;
|
||||
var _iteratorError = undefined;
|
||||
|
||||
var _iteratorError;
|
||||
|
||||
try {
|
||||
for (var _iterator = babelHelpers.asyncIterator(y), _step, _value; _step = yield babelHelpers.awaitAsyncGenerator(_iterator.next()), _iteratorNormalCompletion = _step.done, _value = yield babelHelpers.awaitAsyncGenerator(_step.value), !_iteratorNormalCompletion; _iteratorNormalCompletion = true) {
|
||||
|
||||
@@ -2,7 +2,8 @@ let f = (() => {
|
||||
var _ref = babelHelpers.asyncToGenerator(function* () {
|
||||
var _iteratorNormalCompletion = true;
|
||||
var _didIteratorError = false;
|
||||
var _iteratorError = undefined;
|
||||
|
||||
var _iteratorError;
|
||||
|
||||
try {
|
||||
for (var _iterator = babelHelpers.asyncIterator(a), _step, _value; _step = yield _iterator.next(), _iteratorNormalCompletion = _step.done, _value = yield _step.value, !_iteratorNormalCompletion; _iteratorNormalCompletion = true) {
|
||||
|
||||
Reference in New Issue
Block a user