unstale

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

@unstale/cli 0.2.4 on npm

@babel/runtime 837 changes

Breaking changes 32

  • Removed from the plugin pass; use addNamed or addDefault from @babel/helper-module-imports instead.

    8.0.0upgrade guide

  • The default export no longer accepts the third parameter; behavior matches Babel 7's default, with includeUpdateExpression true.

    8.0.0upgrade guide

  • This undocumented sub-export is removed; use core-js-compat/data.json instead.

    8.0.0upgrade guide

  • This undocumented sub-export is removed; use @babel/compat-data/native-modules instead.

    8.0.0upgrade guide

  • This undocumented sub-export is removed; use core-js-compat/data.json instead.

    8.0.0upgrade guide

  • This undocumented sub-export is removed; use @babel/compat-data/plugins instead.

    8.0.0upgrade guide

  • This undocumented sub-export is removed; use the unreleasedLabels export from @babel/helper-compilation-targets instead.

    8.0.0upgrade guide

  • The package is discontinued; migrate to core-js@3 and babel-plugin-polyfill-corejs3.

    8.0.0upgrade guide

  • BigIntLiteral.value is a bigint rather than a string, aligning it with NumericLiteral; JSON.stringify cannot serialize bigint.

    8.0.0upgrade guide

  • The named export is removed from @babel/helper-replace-supers; import it from @babel/helper-environment-visitor instead.

    8.0.0upgrade guide

  • The function is removed; add chalk to your dependencies if you need to use it.

    8.0.0upgrade guide

  • Removed from the plugin pass; use pass.file.getModuleName instead.

    8.0.0upgrade guide

  • Dynamic import() is represented by an ImportExpression node instead of a CallExpression with an Import callee.

    8.0.0upgrade guide

  • Importing internal files is disallowed; use the exported API only.

    8.0.0upgrade guide

  • The undocumented API is removed; use isRequired from @babel/helper-compilation-targets instead.

    8.0.0upgrade guide

  • Plugin fields can no longer be named exports; export a plugin object or factory function as the default export.

    8.0.0upgrade guide

  • Babel 8 packages require Node.js ^22.18.0 or >=24.11.0; Babel itself will not run on older versions.

    8.0.0upgrade guide

  • 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.

    8.0.0upgrade guide

  • The parameters field is renamed to params on TSCallSignatureDeclaration, TSConstructSignatureDeclaration, TSFunctionType, TSConstructorType, and TSMethodSignature.

    8.0.0upgrade guide

  • The typeAnnotation field is renamed to returnType on TSCallSignatureDeclaration, TSConstructSignatureDeclaration, TSFunctionType, TSConstructorType, and TSMethodSignature.

    8.0.0upgrade guide

  • The named export is removed; use requeueComputedKeyAndDecorators from @babel/helper-environment-visitor instead.

    8.0.0upgrade guide

  • The superTypeParameters field is renamed to superTypeArguments in ClassDeclaration and ClassExpression.

    8.0.0upgrade guide

  • Class implements entries use TSClassImplements instead of TSExpressionWithTypeArguments; qualified expressions are parsed as MemberExpression.

    8.0.0upgrade guide

  • TSEnumDeclaration members are wrapped within a TSEnumBody node.

    8.0.0upgrade guide

  • An exported TSImportEqualsDeclaration is parsed inside an ExportNamedDeclaration, and its isExport field is removed.

    8.0.0upgrade guide

  • The TSImportType argument field is renamed to source.

    8.0.0upgrade guide

  • Interface extends entries use TSInterfaceHeritage instead of TSExpressionWithTypeArguments.

    8.0.0upgrade guide

  • TSMappedType flattens typeParameter into key and constraint properties on the node.

    8.0.0upgrade guide

  • A dotted namespace name is represented by one TSModuleDeclaration whose name is a TSQualifiedName, rather than nested TSModuleDeclaration nodes.

    8.0.0upgrade guide

  • Interpolated template literal types produce a TSTemplateLiteralType node; non-interpolated template literal types are unchanged.

    8.0.0upgrade guide

  • TSTypeParameter.name is an Identifier node rather than a plain string.

    8.0.0upgrade guide

  • The typeParameters field is renamed to typeArguments on CallExpression, JSXOpeningElement, NewExpression, OptionalCallExpression, TSImportType, TSInstantiationExpression, TSTypeQuery, and TSTypeReference.

    8.0.0upgrade guide

New APIs and options 1

  • When both estree and typescript parser plugins are enabled, the parser creates TSAbstractMethodDefinition and TSPropertyDefinition nodes.

    8.0.0upgrade guide

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.

    8.0.0upgrade guide

  • TSParenthesizedType is not generated unless createParenthesizedExpression is enabled; node.extra.parenthesized can indicate parentheses when it is false.

    8.0.0upgrade guide

Fixes and other changes 2

  • Fixes the helper so it does not bypass a custom Symbol.iterator on array-backed Proxies.

    8.0.8release notes

  • TSTypeQuery.exprName can be a ThisExpression rather than a this Identifier.

    8.0.0upgrade guide