npm / @babel/runtime
@babel/runtime
What changed in @babel/runtime 8, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-23.
32 breaking1 new APIs and options2 behavior and defaults2 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@babel/runtime 837 changes
Breaking changes 32
Removed from the plugin pass; use addNamed or addDefault from @babel/helper-module-imports instead.
The default export no longer accepts the third parameter; behavior matches Babel 7's default, with includeUpdateExpression true.
This undocumented sub-export is removed; use core-js-compat/data.json instead.
This undocumented sub-export is removed; use @babel/compat-data/native-modules instead.
This undocumented sub-export is removed; use core-js-compat/data.json instead.
This undocumented sub-export is removed; use @babel/compat-data/plugins instead.
This undocumented sub-export is removed; use the unreleasedLabels export from @babel/helper-compilation-targets instead.
The package is discontinued; migrate to core-js@3 and babel-plugin-polyfill-corejs3.
BigIntLiteral.value is a bigint rather than a string, aligning it with NumericLiteral; JSON.stringify cannot serialize bigint.
The named export is removed from @babel/helper-replace-supers; import it from @babel/helper-environment-visitor instead.
The function is removed; add chalk to your dependencies if you need to use it.
Removed from the plugin pass; use pass.file.getModuleName instead.
Dynamic import() is represented by an ImportExpression node instead of a CallExpression with an Import callee.
Importing internal files is disallowed; use the exported API only.
The undocumented API is removed; use isRequired from @babel/helper-compilation-targets instead.
Plugin fields can no longer be named exports; export a plugin object or factory function as the default export.
Babel 8 packages require Node.js ^22.18.0 or >=24.11.0; Babel itself will not run on older versions.
Bundling @babel/plugin-transform-runtime now uses package.json#imports with a browser condition instead of package.json#browser; configure the browser condition and ensure bundler support for imports.
The parameters field is renamed to params on TSCallSignatureDeclaration, TSConstructSignatureDeclaration, TSFunctionType, TSConstructorType, and TSMethodSignature.
The typeAnnotation field is renamed to returnType on TSCallSignatureDeclaration, TSConstructSignatureDeclaration, TSFunctionType, TSConstructorType, and TSMethodSignature.
The named export is removed; use requeueComputedKeyAndDecorators from @babel/helper-environment-visitor instead.
The superTypeParameters field is renamed to superTypeArguments in ClassDeclaration and ClassExpression.
Class implements entries use TSClassImplements instead of TSExpressionWithTypeArguments; qualified expressions are parsed as MemberExpression.
TSEnumDeclaration members are wrapped within a TSEnumBody node.
An exported TSImportEqualsDeclaration is parsed inside an ExportNamedDeclaration, and its isExport field is removed.
The TSImportType argument field is renamed to source.
Interface extends entries use TSInterfaceHeritage instead of TSExpressionWithTypeArguments.
TSMappedType flattens typeParameter into key and constraint properties on the node.
A dotted namespace name is represented by one TSModuleDeclaration whose name is a TSQualifiedName, rather than nested TSModuleDeclaration nodes.
Interpolated template literal types produce a TSTemplateLiteralType node; non-interpolated template literal types are unchanged.
TSTypeParameter.name is an Identifier node rather than a plain string.
The typeParameters field is renamed to typeArguments on CallExpression, JSXOpeningElement, NewExpression, OptionalCallExpression, TSImportType, TSInstantiationExpression, TSTypeQuery, and TSTypeReference.
New APIs and options 1
When both estree and typescript parser plugins are enabled, the parser creates TSAbstractMethodDefinition and TSPropertyDefinition nodes.
Behavior and default changes 2
@babel/runtime now automatically exposes ES modules when needed through package.json exports, so the useESModules option is no longer needed.
TSParenthesizedType is not generated unless createParenthesizedExpression is enabled; node.extra.parenthesized can indicate parentheses when it is false.
Fixes and other changes 2
Fixes the helper so it does not bypass a custom Symbol.iterator on array-backed Proxies.
TSTypeQuery.exprName can be a ThisExpression rather than a
thisIdentifier.