Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Нормальный транслятор ECMA6 (https://javascript.ru/forum/offtopic/39614-normalnyjj-translyator-ecma6.html)

kobezzza 05.07.2013 14:34

Нормальный транслятор ECMA6
 
Очень хочется уже юзать фичи из ECMA6, тем более уже есть поддержка в IDE (webstorm), но перерыв инет я нашёл не так много трансляторов, а из тех что нашёл только два имхо хоть как то подходят для использования в реальной жизни: six и typescript (т.е. мы не юзаем его специфичные штуки, а только то что будет в ECMA6).

К сожалению представленные выше кандидаты тоже далеки от идеала, т.к. делают весьма скромную поддежку + обладают своими косяками, например six реализует arrow function через бинды (которые оч тормозят в циклах), не умеет делать rest параметры в arrow function и всегда вырезает комменты. TypeScript сложно юзать в роли транслятора, т.к. его статическая структура бесит вносит свои сложности.

Сегодня сел писать свой велосипед, но очень не хочется если честно...мб есть у кого похожие решения?

Рассмотрел:
Traceur - Баженное кривое гавно,
Continuum - реализиция VM на JS, увы как я понял не умеет делать статичную трансляцию
Harmonizr - баженная шняга
Six - писал выше
TypeScript - писал выше

iKillMaxmaxmaximus 05.07.2013 15:28

от гугля же вроде был какой то реализующий все кроме проксей (а может уже и их), не?

kobezzza 05.07.2013 15:33

Цитата:

Сообщение от iKillMaxmaxmaximus (Сообщение 260389)
от гугля же вроде был какой то реализующий все кроме проксей (а может уже и их), не?

Traceur - редкостное говно, подходит только поиграться.

UPD: в общем пока решил заюзать SIX, уповаю на нативную поддержку в браузерах :)

melky 05.07.2013 15:41

Цитата:

Сообщение от kobezzza
Traceur - Баженное кривое гавно,
Continuum - реализиция VM на JS, увы как я понял не умеет делать статичную трансляцию
Harmonizr - баженная шняга
Six - писал выше
TypeScript - писал выше

намекаешь на новый Github'ный проект?

kobezzza 05.07.2013 15:47

Цитата:

Сообщение от melky (Сообщение 260395)
намекаешь на новый Github'ный проект?

Блин, вот еле себя сдерживаю, от того чтобы сесть и начать писать:) Времени жалко, а написание такой штуки с норм отладкой это месяц, а то и два.

monolithed 05.07.2013 15:50

Планируем в ближайшее время использовать в качестве препроцессора:
https://github.com/termi/defs

iKillMaxmaxmaximus 05.07.2013 16:06

планирую добавить поддержку ECMA 6 в код модулей UI)
буду парсить код функций на лету)

nerv_ 10.07.2013 14:02

kobezzza, дай ссылки почитать, что в es6 нового :)

kobezzza 10.07.2013 14:21

Цитата:

Сообщение от nerv_ (Сообщение 261562)
kobezzza, дай ссылки почитать, что в es6 нового :)

http://habrahabr.ru/post/175371/

PS: Таки склепал на коленки себе черновой транслятор: https://github.com/kobezzza/NeJS. Поддерживает let и const (defs.js) + arrow function (реализация без bind, а через замену this на переменную замыкания), rest параметры и параметры по умолчанию, наверно добавлю деструкторизацию параметров. От six отказался, т.к. глючит постоянно и вырезает комменты.

Юзать:

npm install -g nejs
nejs -s исходный файл -o куда сохранить новый

iKillMaxmaxmaximus 10.07.2013 14:38

Цитата:

Сообщение от kobezzza
наверно добавлю деструкторизацию параметров.

годная штука добавляй конешн)

Именованные параметры функций сделай тоже.


Часовой пояс GMT +3, время: 20:06.