diff --git a/packages/babel-generator/src/generators/statements.js b/packages/babel-generator/src/generators/statements.js index b9e8e736b344..0f7f125a6c38 100644 --- a/packages/babel-generator/src/generators/statements.js +++ b/packages/babel-generator/src/generators/statements.js @@ -87,13 +87,13 @@ const buildForXStatement = function (op) { if (op === "await") { this.word("await"); this.space(); - op = "of"; + // do not attempt to change op here, as it will break subsequent for-await statements } this.token("("); this.print(node.left, node); this.space(); - this.word(op); + this.word(op === "await" ? "of" : op); this.space(); this.print(node.right, node); this.token(")"); diff --git a/packages/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x/expected.js b/packages/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x/expected.js index 9617d7b78f6c..0cffd92db6c7 100644 --- a/packages/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x/expected.js +++ b/packages/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/for-x/expected.js @@ -18,11 +18,11 @@ async function a() { for ({ a } in {}) {} for ({ a } of []) {} async function a() { - for ({ a } of []) {} + for await ({ a } of []) {} } for (a in {}) {} for (a of []) {} async function a() { - for (a of []) {} + for await (a of []) {} }