Features Timeline

Which major new features did we introduce in each Babel version? This page includes a very short summary for each minor release, or you can read the full changelog on GitHub! Additionally, use this timeline to track some other important efforts, such as the babel-polyfills project.

  1. Babel 7.25.0

    blog post

  2. Babel 7.24.0

    blog post

  3. Babel 7.23.0

    blog post

  4. Babel 7.22.0

    blog post

    • Enable the Stage 4 RegExp v flag proposal by default
    • Support for the explicit resource management proposal Stage 3 proposal, including the async version

      JavaScript

      1. {
      2. await using db = connect(databaseURL);
      3. let user = await db.getUserById(userId);
      4. await db.createPost(user.name, "Hi! :)");
      5. } // Automatically close the db
    • Support for the updates of the decorators proposal that reached consensus in the March 2023 and May 2023 TC39 meetings

    • Parsing support for the Stage 3 import attributes proposal, previously known as “import assertions”

      JavaScript

      1. import data from "./data.json" with { type: "json" };
  5. Babel 7.21.0

    blog post

  6. Babel 7.20.0

    blog post

    • TypeScript 4.9 support
    • Parser support for the explicit resource management Stage 2 proposal

      JavaScript

      1. {
      2. using handle = openFile(name, "w+");
      3. write(handle, "Hi!\n");
      4. write(handle, ":)\n");
      5. } // Automatically close the file
    • Parser support for the import reflection Stage 2 proposal

      JavaScript

      1. import module mod from "./mod.js";
      2. // later ...
      3. import(mod);

    babel-loader 9.0.0

    release

  7. Babel 7.19.0

    blog post

    • Support for the Stage 3 version of the decorators proposal
    • Transform support for the duplicate named capturing groups Stage 3 proposal

      JavaScript

      1. /(?<year>\d\d\d\d)-(?<month>\d\d)|(?<month>\d\d)-(?<year>\d\d\d\d)/
  8. Babel 7.18.0

    blog post

    • TypeScript 4.7 support
    • Transform support for the Private destructuring Stage 2 proposal

      JavaScript

      1. class A {
      2. #x = 2;
      3. method() {
      4. const { #x: x } = this;
      5. }
      6. }
    • No more need to manually include the regenerator-runtime helper when compiling generators

  9. Babel 7.17.0

    blog post

    • Support for the new version of the decorators Stage 2 proposal

      JavaScript

      1. class A {
      2. @reactive #x = 2;
      3. @logger
      4. method() {
      5. this.#x++;
      6. }
      7. }
    • Support for the RegExp set notation and properties of strings Stage 2 proposal

      JavaScript

      1. /[\p{RGI_Emoji}&&[\0-\uFFFF]]/v;
    • Parser support for the private destructuring Stage 2 proposal

      JavaScript

      1. class A {
      2. #x = 2;
      3. method() {
      4. const { #x: x } = this;
      5. }
      6. }
  10. Babel 7.16.0

    blog post

  11. Babel 7.15.0

    blog post

    • Enable parsing for the top-level await Stage 4 proposal by default

      JavaScript

      1. import db from "db";
      2. await db.connect();
    • Enable the Private Brand Checks Stage 4 proposal by default

      JavaScript

      1. class A {
      2. static { initialize(A); } // static block
      3. #field;
      4. is(obj) {
      5. return #field in obj; // private brand check
      6. }
      7. }
    • Support the “Hack-style” pipeline operator Stage 2 proposal

      JavaScript

      1. const result = "World" |> `Hello, ${%}!` |> alert(%);
    • TypeScript 4.4 support

  12. Babel 7.14.0

    blog post

  13. Babel 7.13.0

    blog post

  14. Babel 7.12.0

    blog post

  15. Babel 7.11.0

    blog post

  16. @babel/eslint-parser

    blog post

  17. Babel 7.10.0

    blog post

  18. babel-polyfills

    repository

  19. Babel 7.9.0

    blog post

    • bugfixes option in @babel/preset-env, to workaround browsers bugs rather than compiling whole Features
    • TypeScript 3.8 support
    • Support for Flow declare class fields
    • Support for the automatic JSX runtime
  20. Babel 7.8.0

    blog post

  21. Babel 7.7.0

    blog post

    • Parser support for the top-level await proposal

      JavaScript

      1. import db from "./database.js";
      2. await db.connect();
    • Add error recovery support for Early Errors in @babel/parser

    • Support .json and .cjs configuration files
    • TypeScript 3.7 support
  22. Babel 7.6.0

    blog post

    • Support for static private accessors, part of the static class features proposal

      JavaScript

      1. class Dog {
      2. static get #className() { return "Dog"; }
      3. }
  23. Babel 7.5.0

    blog post

    • Support for the F# pipeline operator proposal

      JavaScript

      1. num |> add(2) |> double
    • TypeScript namespace support

  24. Babel 7.4.0

    blog post

    • Support for injecting core-js@3 polyfills
    • Support for the Partial Application proposal

      JavaScript

      1. strings.map(parseInt(?));
    • Support for static private methods, part of the static class features proposal

      JavaScript

      1. class Dog {
      2. static #register() { /* ... */ }
      3. }
    • TypeScript 3.4 support

  25. Babel 7.3.0

    blog post

    • Support for instance private accessors, part of the private methods proposal

      JavaScript

      1. class Dog {
      2. get #randomId() { return Math.random(); }
      3. }
    • Support for the smart pipeline operator proposal

      JavaScript

      1. num |> add(2, #) |> double
    • Support for named capturing groups in regular expressions

      JavaScript

      1. str.match({String.raw`/^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/`})
    • TypeScript 3.2 and 2.9 support

  26. Babel 7.2.0

    blog post

    • Support for instance private methods, part of the private methods proposal

      JavaScript

      1. class Dog {
      2. #bark() { console.log("Mew!") }
      3. }
  27. Babel 7.1.0

    blog post

    • Support for the decorators proposal, as it was specified in September 2018

      JavaScript

      1. class Person {
      2. @autoIncrement age;
      3. }
    • Support for static private fields, part of the static class features proposal

      JavaScript

      1. class Person {
      2. static #classId = 3;
      3. }
  28. Babel 7

    blog post

    This has a lot more changes since it was 2 years of pre-releases.