Skip to main content

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

    blog post

  2. Babel 7.20.0

    blog post

    • TypeScript 4.9 support

    • Parser support for the explicit resource management Stage 2 proposal

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

      JavaScript
      import module mod from "./mod.js";

      // later ...
      import(mod);

    babel-loader 9.0.0

    release

  3. 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
      /(?<year>\d\d\d\d)-(?<month>\d\d)|(?<month>\d\d)-(?<year>\d\d\d\d)/
  4. Babel 7.18.0

    blog post

    • TypeScript 4.7 support
    • Transform support for the Private destructuring Stage 2 proposal
      JavaScript
      class A {
      #x = 2;
      method() {
      const { #x: x } = this;
      }
      }
    • No more need to manually include the regenerator-runtime helper when compiling generators
  5. Babel 7.17.0

    blog post

  6. Babel 7.16.0

    blog post

  7. Babel 7.15.0

    blog post

    • Enable parsing for the top-level await Stage 4 proposal by default
      JavaScript
      import db from "db";
      await db.connect();
    • Enable the Private Brand Checks Stage 4 proposal by default
      JavaScript
      class A {
      static { initialize(A); } // static block
      #field;
      is(obj) {
      return #field in obj; // private brand check
      }
      }
    • Support the "Hack-style" pipeline operator Stage 2 proposal
      JavaScript
      const result = "World" |> `Hello, ${%}!` |> alert(%);
    • TypeScript 4.4 support
  8. Babel 7.14.0

    blog post

  9. Babel 7.13.0

    blog post

  10. Babel 7.12.0

    blog post

  11. Babel 7.11.0

    blog post

  12. @babel/eslint-parser

    blog post

  13. Babel 7.10.0

    blog post

  14. babel-polyfills

    repository

  15. 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
  16. Babel 7.8.0

    blog post

  17. Babel 7.7.0

    blog post

    • Parser support for the top-level await proposal

      JavaScript
      import db from "./database.js";

      await db.connect();
    • Add error recovery support for Early Errors in @babel/parser

    • Support .json and .cjs configuration files

    • TypeScript 3.7 support

  18. Babel 7.6.0

    blog post

    • Support for static private accessors, part of the static class features proposal
      JavaScript
      class Dog {
      static get #className() { return "Dog"; }
      }
  19. Babel 7.5.0

    blog post

    • Support for the F# pipeline operator proposal
      JavaScript
      num |> add(2) |> double
    • TypeScript namespace support
  20. Babel 7.4.0

    blog post

    • Support for injecting core-js@3 polyfills
    • Support for the Partial Application proposal
      JavaScript
      strings.map(parseInt(?));
    • Support for static private methods, part of the static class features proposal
      JavaScript
      class Dog {
      static #register() { /* ... */ }
      }
    • TypeScript 3.4 support
  21. Babel 7.3.0

    blog post

    • Support for instance private accessors, part of the private methods proposal
      JavaScript
      class Dog {
      get #randomId() { return Math.random(); }
      }
    • Support for the smart pipeline operator proposal
      JavaScript
      num |> add(2, #) |> double
    • Support for named capturing groups in regular expressions
      JavaScript
      str.match({String.raw`/^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/`})
    • TypeScript 3.2 and 2.9 support
  22. Babel 7.2.0

    blog post

    • Support for instance private methods, part of the private methods proposal
      JavaScript
      class Dog {
      #bark() { console.log("Mew!") }
      }
  23. Babel 7.1.0

    blog post

    • Support for the decorators proposal, as it was specified in September 2018
      JavaScript
      class Person {
      @autoIncrement age;
      }
    • Support for static private fields, part of the static class features proposal
      JavaScript
      class Person {
      static #classId = 3;
      }
  24. Babel 7

    blog post

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