I have started a similar project, but stopped working on it, and seeing this I decided to put it on GitHub, even though it's not very well tested and not feature complete.
The most complex feature in my code is the ability to turn var into let/const optimally using an esgraph-based dataflow analysis, and it also has the ability to introduce arrow functions, shorthand/method properties and classes.
It is implemented as a fork of Babel with slightly changed packaging and a bunch of ES5-to-ES6 passes.
I'm not sure if I'm going to do any further work on this, so feel free to incorporate the code into your project if you find it useful or start maintaining a fork.
It has been tested a bit but as much as it should, so it may not just work out of the box.
Yes, And it's 3 days younger than xto6. It does not support function/prototype => classes. And also it is trying to encourage people to convert their ES5 codes into ES6 but it's implemented in ES5 itself !
Interesting idea, but the backwards compatibility of ES6 means that you can refactor a project piece by piece as you work on it - IMO that's a better approach.
Often when you use a bunch of functions together, you end up passing the same arguments. Those arguments represent some kind of state that your pass around from functions to functions. Sometimes you might even add an argument to a function just to pass it over to another function. After a while you might get tired of changing your function signatures and it makes sense to group those common arguments into a single data structure that can be accessed by your bunch of functions working together. While you're at it you might as well put the functions in that data structure too, so you can see clearly how they relate to each other. That's basically what a class is for.
That's a big question, its usually a first year software engineering degree assignment. Its the question of object orientated programming vs procedural programming.
The main thing with having classes is about encapsulating functionality into objects which can be tested, reused and extended as a component in its own right.
ES6 will be nice when I can write it without the worry of a compilation stage. I still use MooTools on my personal projects. I don't care. I get shit done.
The most complex feature in my code is the ability to turn var into let/const optimally using an esgraph-based dataflow analysis, and it also has the ability to introduce arrow functions, shorthand/method properties and classes.
It is implemented as a fork of Babel with slightly changed packaging and a bunch of ES5-to-ES6 passes.
I'm not sure if I'm going to do any further work on this, so feel free to incorporate the code into your project if you find it useful or start maintaining a fork.
It has been tested a bit but as much as it should, so it may not just work out of the box.
You can find it at https://github.com/luca-barbieri/5to6