Previous Entry Share Next Entry
2016-01

Javascript in 10 days

So, in 10 days I reached 30% test coverage with my JS to Lua transpiler (3659 out of 11725 from ECMAScript 5 test suite) and decided it was enough :)

Results are under MIT license at https://bitbucket.org/cosi2/js2lua and https://github.com/wizzard0/js2lua for Mercurial and Git lovers, respectively.

Despite all shortcuts and hacks, the bootstrapping stage (ability to translate esprima and other node.js modules used) wasnt reached. Or "developed in 10 days" is really "designed in 10 days", not "developed"? :)

This entry was originally posted at http://wizzard.dreamwidth.org/418376.html. It has comment count unavailable comments. Please comment there using OpenID.

  • 1
avnik January 22nd, 2015
Оно пока еще не self-hosted? ;)

wizzard0 January 22nd, 2015
Пока нет :) Основная засада в том, что в луа нет регексов, прикручивать lrexlib-pcre к luajit 2.1 я обломался, а разных недорегексов на esprima (парсер) вроде не хватает.

Так-то да, много чего уже работает. Но не всё :)

avnik January 22nd, 2015
ну там разные недо-... да. Надо смотреть, что скармливать им, а что можно "продвигать" до "родных" луашных.
И еще -- если хочешь, чтобы было быстро -- надо еще найти/написать быстрый класс строк (который не-interned будет), потому что intern хорошо для всяких классов/полей итд, но зверски тупит когда у тебя просто 100500 строк.

avnik January 22nd, 2015
и чего у тебя кстати генереные файлы от typescript закоммичены?

wizzard0 January 22nd, 2015
Чтобы npm test сразу работал, например

avnik January 22nd, 2015
ну все равно же это как-то пересобирать надо, а ничего похожего на Makefile (или чего там положено js'у я не увидел)

wizzard0 January 23rd, 2015
Ооооо! Спасибо!

wizzard0 January 23rd, 2015
> Why Polyfilling CSS Is Hard

Ооо, товарищ знает толк в извращениях!

slonopotamus January 22nd, 2015
Непонятно одно - зачем?

_winnie January 22nd, 2015
1) Возможно что я что-то недооцениваю, но кажется что транслятор регулярок написать существенно проще, чем транслятор JS.

2) Дикая идея: можно кросскомпилировать в JS исходники JS :]
2б) Или просто вручную перенести.

  • 1
?

Log in

No account? Create an account