# Babel: what changed from 7 to 8 - Product: Babel (https://whatsnew.fyi/product/babel) - Vendor: Babel - Range: changelog entries numbered after v7.29.8 up to and including v8.0.4, stable releases only - Entries below: 5 releases (newest first) - Resolved: 7 is v7.29.8 and 8 is v8.0.4, the newest stable release of each major we track - Carrying security changes: 0 · CVEs mentioned: 0 · Mentioning breaking changes: 2 · Removing or deprecating something: 2 - Page: https://whatsnew.fyi/product/babel/compare/7...8 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## What changed (14 changes, grouped by kind) ### Changed #### v8.0.0 (2026-06-16) - Only extract source map comments at the end of the file for improved performance - Fallback to assuming ESM support with `modules: auto` ### Fixed #### v8.0.4 (2026-07-09) - Disallow `declare module M {}` in TypeScript - Forbid `let x!` and `let x! =` syntax in TypeScript - `replaceWith` in `Visitor#exit` should not stop traversal #### v8.0.3 (2026-06-27) - Remove `isTSX` from `babel-plugin-syntax-typescript` types - Use `runtime: 'classic'` in the browser for React in babel-standalone #### v8.0.2 (2026-06-20) - Use the @babel/core version when asserting version in @babel/standalone - Avoid double escaping slash in identifier validation #### v8.0.0 (2026-06-16) - Improve new callee parens check in generator - Support __proto__ as an export name in systemjs plugin ### Removed #### v8.0.1 (2026-06-17) - Remove preset-env's useBuiltIns option #### v8.0.0 (2026-06-16) - Remove corejs exports for `@babel/runtime-corejs3` - Remove `locations: "packed"` from babel-parser ## Release notes ### v8.0.4 - Date: 2026-07-09 - Version: v8.0.4 - Original notes: https://github.com/babel/babel/releases/tag/v8.0.4 - Permalink: https://whatsnew.fyi/product/babel/releases/v8.0.4 - **fixed** — Disallow `declare module M {}` in TypeScript - **fixed** — Forbid `let x!` and `let x! =` syntax in TypeScript - **fixed** — `replaceWith` in `Visitor#exit` should not stop traversal ##### v8.0.4 (2026-07-09) ###### :eyeglasses: Spec Compliance * `babel-parser`, `babel-plugin-transform-typescript` * [#18120](https://github.com/babel/babel/pull/18120) fix(parser): disallow `declare module M {}` ([@JLHwung](https://github.com/JLHwung)) * `babel-generator`, `babel-parser`, `babel-plugin-transform-typescript` * [#18100](https://github.com/babel/babel/pull/18100) fix(parser): forbid let x! and let x! = ([@JLHwung](https://github.com/JLHwung)) ###### :bug: Bug Fix * `babel-traverse` * [#18122](https://github.com/babel/babel/pull/18122) fix: `replaceWith` in `Visitor#exit` should not stop traversal ([@liuxingbaoyu](https://github.com/liuxingbaoyu)) ###### :house: Internal * `babel-helper-validator-identifier` * [#18084](https://github.com/babel/babel/pull/18084) refactor: Shrink validator identifier size ([@JLHwung](https://github.com/JLHwung)) ###### Committers: 4 - Babel Bot ([@babel-bot](https://github.com/babel-bot)) - Huáng Jùnliàng ([@JLHwung](https://github.com/JLHwung)) - Nicolò Ribaudo ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - [@liuxingbaoyu](https://github.com/liuxingbaoyu) ### v8.0.3 - Date: 2026-06-27 - Version: v8.0.3 - Original notes: https://github.com/babel/babel/releases/tag/v8.0.3 - Permalink: https://whatsnew.fyi/product/babel/releases/v8.0.3 - **fixed** — Remove `isTSX` from `babel-plugin-syntax-typescript` types - **fixed** — Use `runtime: 'classic'` in the browser for React in babel-standalone ##### v8.0.3 (2026-06-27) ###### :bug: Bug Fix * `babel-core`, `babel-plugin-syntax-typescript` * [#18089](https://github.com/babel/babel/pull/18089) fix: Remove `isTSX` from `babel-plugin-syntax-typescript` types ([@liuxingbaoyu](https://github.com/liuxingbaoyu)) * `babel-standalone` * [#18086](https://github.com/babel/babel/pull/18086) fix: Use `runtime: 'classic'` in the browser for React ([@liuxingbaoyu](https://github.com/liuxingbaoyu)) ###### Committers: 2 - Nicolò Ribaudo ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - [@liuxingbaoyu](https://github.com/liuxingbaoyu) ### v8.0.2 - Date: 2026-06-20 - Version: v8.0.2 - Original notes: https://github.com/babel/babel/releases/tag/v8.0.2 - Permalink: https://whatsnew.fyi/product/babel/releases/v8.0.2 - **fixed** — Use the @babel/core version when asserting version in @babel/standalone - **fixed** — Avoid double escaping slash in identifier validation ##### v8.0.2 (2026-06-18) ###### :bug: Bug Fix * Other * [#18083](https://github.com/babel/babel/pull/18083) Use the `@babel/core` version when asserting version in `@babel/standalone` ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) * `babel-helper-validator-identifier` * [#18075](https://github.com/babel/babel/pull/18075) fix(identifier): avoid double escaping slash ([@JLHwung](https://github.com/JLHwung)) ###### :house: Internal * `babel-plugin-proposal-decorators`, `babel-plugin-transform-regenerator`, `babel-preset-env` * [#18081](https://github.com/babel/babel/pull/18081) Update `@babel/preset-modules` and polyfill packages ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) ###### Committers: 2 - Huáng Jùnliàng ([@JLHwung](https://github.com/JLHwung)) - Nicolò Ribaudo ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) ### v8.0.1 - Date: 2026-06-17 - Version: v8.0.1 - Original notes: https://github.com/babel/babel/releases/tag/v8.0.1 - Permalink: https://whatsnew.fyi/product/babel/releases/v8.0.1 - **removed** — Remove preset-env's useBuiltIns option ##### v8.0.1 (2026-06-17) This release includes a breaking change that was in the Babel 8 migration guide's [Getting ready](https://babeljs.io/docs/v8-migration/#getting-ready) section and [in the release post](https://babeljs.io/blog/2026/06/16/8.0.0/#extract-polyfill-injection-to-separate-packages), but the actual removal of the feature from the codebase was accidentally not complete. ###### :boom: Breaking Change * `babel-core`, `babel-plugin-transform-object-rest-spread`, `babel-plugin-transform-runtime`, `babel-preset-env`, `babel-standalone` * [#18079](https://github.com/babel/babel/pull/18079) Actually remove `preset-env`'s `useBuiltIns` ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) ###### Committers: 2 - Huáng Jùnliàng ([@JLHwung](https://github.com/JLHwung)) - Nicolò Ribaudo ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) ### v8.0.0 - Date: 2026-06-16 - Version: v8.0.0 - Original notes: https://github.com/babel/babel/releases/tag/v8.0.0 - Permalink: https://whatsnew.fyi/product/babel/releases/v8.0.0 - **changed** — Only extract source map comments at the end of the file for improved performance - **changed** — Fallback to assuming ESM support with `modules: auto` - **removed** — Remove corejs exports for `@babel/runtime-corejs3` - **removed** — Remove `locations: "packed"` from babel-parser - **fixed** — Improve new callee parens check in generator - **fixed** — Support __proto__ as an export name in systemjs plugin ##### v8.0.0 (2026-06-16) **NOTE:** The changelog below is relative to v8.0.0-rc.6. You can find a summary of all the breaking changes shipped in the Babel 8 release line in the [migration guide for users](https://babeljs.io/docs/v8-migration) and [migration guide for plugin developers](https://babeljs.io/docs/v8-migration-api). Read the release blog post at http://babeljs.io/blog/2026/06/16/8.0.0! ###### :eyeglasses: Spec Compliance * `babel-core` * [#18039](https://github.com/babel/babel/pull/18039) perf: Only extract source map comments at the end of the file ([@liuxingbaoyu](https://github.com/liuxingbaoyu)) ###### :boom: Breaking Change * `babel-cli`, `babel-node`, `babel-plugin-proposal-decorators`, `babel-plugin-transform-classes`, `babel-plugin-transform-function-name`, `babel-plugin-transform-modules-commonjs`, `babel-plugin-transform-object-rest-spread`, `babel-plugin-transform-parameters`, `babel-plugin-transform-react-constant-elements`, `babel-plugin-transform-regenerator`, `babel-preset-env`, `babel-register` * [#18069](https://github.com/babel/babel/pull/18069) Fallback to assuming ESM support with `modules: auto` ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) * `babel-plugin-transform-runtime`, `babel-runtime-corejs3`, `babel-runtime` * [#18036](https://github.com/babel/babel/pull/18036) Remove corejs exports for `@babe/runtime-corejs3` ([@liuxingbaoyu](https://github.com/liuxingbaoyu)) * `babel-parser` * [#18034](https://github.com/babel/babel/pull/18034) Remove `locations: "packed"` ([@liuxingbaoyu](https://github.com/liuxingbaoyu)) ###### :bug: Bug Fix * `babel-generator` * [#18046](https://github.com/babel/babel/pull/18046) fix(generator): improve new callee parens check ([@JLHwung](https://github.com/JLHwung)) * `babel-plugin-transform-modules-systemjs` * [#18032](https://github.com/babel/babel/pull/18032) fix(systemjs): support __proto__ as an export name ([@JLHwung](https://github.com/JLHwung)) ###### :memo: Documentation * [#18070](https://github.com/babel/babel/pull/18070) Add EOL date for Babel 7 (end of June 2027) to SECURITY.md ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) ###### :house: Internal * [#18018](https://github.com/babel/babel/pull/18018) ci: enforce yarn integrity ([@JLHwung](https://github.com/JLHwung)) ###### :running_woman: Performance * `babel-core` * [#18039](https://github.com/babel/babel/pull/18039) perf: Only extract source map comments at the end of the file ([@liuxingbaoyu](https://github.com/liuxingbaoyu)) ###### Committers: 6 - Babel Bot ([@babel-bot](https://github.com/babel-bot)) - Huáng Jùnliàng ([@JLHwung](https://github.com/JLHwung)) - James Garbutt ([@43081j](https://github.com/43081j)) - Nicolò Ribaudo ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo)) - Sandy Chen ([@sandy2008](https://github.com/sandy2008)) - [@liuxingbaoyu](https://github.com/liuxingbaoyu)