# What changed in @babel/plugin-transform-runtime

> 40 changes in @babel/plugin-transform-runtime 8 from its official release notes, upgrade guides and advisories: 36 breaking, 3 new APIs and options. Each one cited. Sources checked 2026-10-24. HTML: https://unstale.sh/npm/@babel/plugin-transform-runtime/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @babel/plugin-transform-runtime 8

### Breaking changes

- All presets and plugins require @babel/core@^8.0.0 as a peer dependency. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration)
- The Babel 7 package name @babel/plugin-proposal-async-generator-functions is replaced by this transform package name. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration)
- BigIntLiteral.value is a bigint rather than a string; JSON serialization requires a custom bigint serializer. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The typeParameters field is renamed to typeArguments. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The superTypeParameters field is renamed to superTypeArguments. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The superTypeParameters field is renamed to superTypeArguments. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- TSParenthesizedType is no longer generated unless createParenthesizedExpression is enabled; node.extra.parenthesized can indicate parentheses when disabled. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- Babel is shipped as native ECMAScript modules, affecting how the plugin can be loaded. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration)
- Dynamic import() is represented by an ImportExpression node instead of a CallExpression with an Import callee. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- Importing internal files is disallowed; use the exported API instead. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The typeParameters field is renamed to typeArguments. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The typeParameters field is renamed to typeArguments. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- Babel 8 packages require Node.js ^22.18.0 || >=24.11.0; Babel itself will not run on older Node versions. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration)
- The typeParameters field is renamed to typeArguments. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The parameters field is renamed to params. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The typeAnnotation field is renamed to returnType. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- Class implements entries use TSClassImplements instead of TSExpressionWithTypeArguments, with typeArguments in place of typeParameters. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The parameters field is renamed to params. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The typeAnnotation field is renamed to returnType. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The parameters field is renamed to params. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The typeAnnotation field is renamed to returnType. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- Enum members are wrapped in a TSEnumBody node under the body field. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The parameters field is renamed to params. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The typeAnnotation field is renamed to returnType. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- An exported TSImportEqualsDeclaration is parsed inside an ExportNamedDeclaration; its isExport field is removed. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The argument field is renamed to source. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The typeParameters field is renamed to typeArguments. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The typeParameters field is renamed to typeArguments. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- Interface heritage entries use TSInterfaceHeritage instead of TSExpressionWithTypeArguments, with typeArguments in place of typeParameters. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The typeParameter property is flattened into key and constraint properties on TSMappedType. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The parameters field is renamed to params. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The typeAnnotation field is renamed to returnType. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- A dotted namespace name is represented as one TSQualifiedName instead of nested TSModuleDeclaration nodes. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- TSTypeParameter.name is an Identifier node rather than a plain string. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The typeParameters field is renamed to typeArguments. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The typeParameters field is renamed to typeArguments. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)

### New APIs and options

- When both estree and typescript parser plugins are enabled, Babel creates TSAbstractMethodDefinition nodes. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- When both estree and typescript parser plugins are enabled, Babel creates TSPropertyDefinition nodes. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- Interpolated template literal types are represented by TSTemplateLiteralType; templates without interpolations retain their existing AST shape. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)

### Fixes and other changes

- TSTypeQuery.exprName can be a ThisExpression rather than an Identifier named this. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
