Lebab (Babel spelled backwards) is an ES5 to ES6/7 transpiler. I can’t speak to how good it is, but I do know that some of the people involved are amongst the ECMAScript elite.
I can speak to the likelihood of it being “great”. That is near zero. I’ve been in the business long enough to see tools like this come again and again and again. The first I remember was one used to convert the software for an aircraft computer from 8085 assembly language to PLM/85 (an Intel language with similarities to Pascal and C). I’ve seen serious, multi-million dollar government projects bite into them. In the vast majority of cases, it would have been easier to start over.
“Good”, however, is possible here because it isn’t converting apples to oranges - just apples to better apples.
As to the idea that a concise grammar makes a difference in download size, I doubt it. I’ve made the mistake of spending time reducing file size by concentrating on characters too many times in the past. You almost always end up with a near zero change after compression.
This is because the download size is only marginally related to the size of things on disk. Patterns are patterns and, when they go through compression for transmission across the wire, they tend to come out similar in size if they produce the same functionality, even when the number of characters implementing them is different.
The biggest problem with download size today is library bloat. Many sites are downloading a lot of functionality that they don’t need because of unused functionality - code that is different from other code that you need. It is the stuff that is both different and doesn’t contribute that has the biggest impact on download size.
We will eventually see a bit of a gain because some things moved into the core. The core is already on the machine. i.e. if promises are already implemented, there is no reason to download a promise library.
I think ES6/7 changes are more about making things simpler for newbies and increasing code reuse. For example, the biggest advantage of the arrow function syntax is the difference in the handling of “this”. It makes more sense to those of us who aren’t JS experts.
And code reuse is improved when common functionality is moved into the core. When I search for a library to perform a function, it is easier if I don’t have to find one that is using the same promise library and modularization system as the other libraries I’m using.