Skip to content

Skip for await in transform-for-of - #18292

Merged
JLHwung merged 1 commit into
babel:mainfrom
brunoborta:fix/for-of-skip-for-await
Oct 5, 2026
Merged

JLHwung merged 1 commit into
babel:mainfrom
brunoborta:fix/for-of-skip-for-await

Conversation

@brunoborta

Copy link
Copy Markdown
Contributor
Q A
Fixed Issues? Fixes #18291
Patch: Bug Fix? y
Major: Breaking Change?
Minor: New Feature?
Tests Added + Pass? Yes
Documentation PR Link
Any Dependency Changes?
License MIT

The main ForOfStatement visitor had no await check, so with the plugin standalone (or transform-async-generator-functions excluded from preset-env) a for await loop was rewritten into a synchronous createForOfIteratorHelper loop and the await was dropped. This adds the same guard the iterableIsArray visitor already has. If you'd rather throw a buildCodeFrameError instead of skipping, I can change it.

The main `ForOfStatement` visitor had no `await` check, so when the plugin
ran without `transform-async-generator-functions` (standalone, or excluded
from preset-env) a `for await (x of xs)` loop was rewritten into a
synchronous `createForOfIteratorHelper` loop and the `await` was silently
dropped. The `iterableIsArray` visitor already had this guard.

Assisted-by: Claude Fable 5.1
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown

Thanks for opening this pull request! 🎉

We really appreciate you taking the time to contribute, @brunoborta.

A maintainer will take a look as soon as they can. In the meantime, please make sure that:

  • the description explains what changed and why
  • any related issues are linked
  • existing tests still pass

If anything needs adjusting we'll leave comments here. Thanks again!

@babel-bot

Copy link
Copy Markdown
Collaborator

Build successful! You can test your changes in the REPL here: https://babeljs.io/repl/build/62271

@JLHwung JLHwung left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks.

@pkg-pr-new

pkg-pr-new Bot commented Oct 5, 2026

Copy link
Copy Markdown

Open in StackBlitz

commit: f1209f2

@liuxingbaoyu liuxingbaoyu left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@JLHwung JLHwung added the PR: Bug Fix 🐛 A type of pull request used for our changelog categories label Oct 5, 2026
@JLHwung
JLHwung merged commit 913a4f0 into babel:main Oct 5, 2026
65 checks passed
brandhaug added a commit to brandhaug/b2b-saas-starter that referenced this pull request Oct 10, 2026
## pnpm-workspace.yaml (default)

## Dependency Updates

| Package | From | To | Type |
| --- | --- | --- | --- |
| `@babel/core` | 8.0.6 | 8.0.7 | patch |
| `@react-email/ui` | 6.11.0 | 6.11.1 | patch |
| `ai` | 7.0.128 | 7.0.130 | patch |
| `react-email` | 6.11.0 | 6.11.1 | patch |
| `shadcn` | 4.21.3 | 4.21.4 | patch |

## Release Notes

<details>
<summary><b>@<!---->babel/core</b> (8.0.6 → 8.0.7)</summary>

## v8.0.7 (2026-10-07)

Thanks @<!---->brunoborta, @<!---->CINC0S, @<!---->hoobnn, and
@<!---->jpradelle for your first PRs!

#### 🐛 Bug Fix
* `babel-helper-create-regexp-features-plugin`,
`babel-plugin-transform-dotall-regex`,
`babel-plugin-transform-unicode-sets-regex`, `babel-preset-env`
* [#18295](babel/babel#18295) Bump regexpu-core
to 6.5.3 ([@<!---->JLHwung](https://github.com/JLHwung))
* `babel-plugin-transform-for-of`
* [#18292](babel/babel#18292) Skip `for await`
in `transform-for-of`
([@<!---->brunoborta](https://github.com/brunoborta))
* `babel-helpers`, `babel-plugin-transform-async-generator-functions`,
`babel-runtime-corejs3`
* [#18283](babel/babel#18283) Fix
`asyncIterator` helper forwarding `.throw()` to `.return()`
([@<!---->brunoborta](https://github.com/brunoborta))
* `babel-parser`
* [#18288](babel/babel#18288) fix(parser): allow
await as a function expression name inside async arrow
([@<!---->JLHwung](https://github.com/JLHwung))
* `babel-helpers`, `babel-plugin-transform-class-properties`,
`babel-plugin-transform-modules-systemjs`, `babel-runtime-corejs3`
* [#18284](babel/babel#18284) Guard
`@@toPrimitive` usage in toPrimitive helper
([@<!---->nicolo-ribaudo](https://github.com/nicolo-ribaudo))
* `babel-plugin-transform-block-scoping`
* [#18195](babel/babel#18195) fix: closures in
for-loop init capture wrong binding
([@<!---->joelle-a-dev](https://github.com/joelle-a-dev))
* `babel-helper-create-class-features-plugin`,
`babel-plugin-transform-private-property-in-object`
* [#18265](babel/babel#18265) Return false for
`#x in` on static private fields before initialization
([@<!---->hoobnn](https://github.com/hoobnn))
* `babel-traverse`
* [#18151](babel/babel#18151) Evaluate
TypeScript expression wrappers in `NodePath#evaluate`
([@<!---->CINC0S](https://github.com/CINC0S))
  * [#18250](https://github

…[full notes](https://github.com/babel/babel/releases/tag/v8.0.7)

</details>

<details>
<summary><b>react-email</b> (6.11.0 → 6.11.1)</summary>

### Patch Changes

* 54769fc: Prevent `email export` from deleting the project, the home
directory, the email templates or the static assets when `--outDir`
points at them.
* 6926bac: `<Markdown>` now applies `markdownCustomStyles.th` to table
header cells. Header cells were previously styled with `td`, so any `th`
styles were ignored.

</details>

<details>
<summary><b>shadcn</b> (4.21.3 → 4.21.4)</summary>

### Patch Changes

- [#12189](shadcn-ui/ui#12189)
[`76fd499595ba7cc01f49d159bd7ac82d7aca8e63`](shadcn-ui/ui@76fd499)
Thanks [@<!---->shadcn](https://github.com/shadcn)! - Drop the ts-morph
dependency from @<!---->shadcn/registry.

- [#12184](shadcn-ui/ui#12184)
[`995c2cfff44c373bd210d451089726ec097ab917`](shadcn-ui/ui@995c2cf)
Thanks [@<!---->shadcn](https://github.com/shadcn)! - Run the icons and
asChild transformers without ts-morph.

- [#12160](shadcn-ui/ui#12160)
[`6efecd8fe9aa167886fe2cc0c05c5623a5bb5670`](shadcn-ui/ui@6efecd8)
Thanks [@<!---->shadcn](https://github.com/shadcn)! - Edit the Next.js
layout for font items without ts-morph, and skip it with a warning
instead of writing a broken layout.

- [#12188](shadcn-ui/ui#12188)
[`efa11781f756c86debb0392fbea4fe468250b41b`](shadcn-ui/ui@efa1178)
Thanks [@<!---->shadcn](https://github.com/shadcn)! - Rewrite imports
and crawl file imports without ts-morph.

- [#12177](shadcn-ui/ui#12177)
[`e8c3143b1cd191280befcd6c9538284bb43399a8`](shadcn-ui/ui@e8c3143)
Thanks [@<!---->shadcn](https://github.com/shadcn)! - Edit
tailwind.config without ts-morph, and skip it with a warning instead of
writing a broken config.

- [#12183](shadcn-ui/ui#12183)
[`f56bbd7282f0116a925a601cb6d7e0c3fede448b`](shadcn-ui/ui@f56bbd7)
Thanks [@<!---->shadcn](https://github.com/shadcn)! - Run the rsc,
import, CSS variable, cleanup, font and menu transformers without
ts-morph.

- [#12185](shadcn-ui/ui#12185)
[`4a90344c42dc9ae47494179065219377ff5f2a8f`](https://github.com/shadcn-ui/u

…[full
notes](https://github.com/shadcn-ui/ui/releases/tag/shadcn%404.21.4)

</details>

---
*This PR was auto-generated by
[catalog-update-action](https://github.com/brandhaug/catalog-update-action).*

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PR: Bug Fix 🐛 A type of pull request used for our changelog categories

Projects

None yet

Development

Successfully merging this pull request may close these issues.

transform-for-of silently rewrites for await as a synchronous loop

4 participants

Sponsor
SponsoredKunjungi sekarang
Promo