>> окей, никто это не читает
> Читать то - читаем, просто помочь не можем, ввиду отсутствия подобного опыта
> и знаний.да ладно, я рисуюсь, конечно. но спасибо, иногда даже просто «keep it up» (или «да ты балабол!») помогают.
> P.S. Если допилить их js движок окажется очень сложно, насколько сложно прикрутить
> чужой js движок?
сильно‐сильно сложнее. у каракана своя… как бы это сказать поприличней… «экосистема», пардон май фрэнч. форматы объектов, API, идеи о том, как он себя ведёт — это вот всё. чтобы заменить — фактически, надо знать *точно* как работает каракан, и вдобавок обладать столь же глубокими знаниями о другом движке. конечно, сразу отвалится стрекоза — что для меня потеря невосполнимая, например. короче: заменить намного сложнее.
тут дело даже не в том, что допилить каракан сложно, а в том, что не хочется в нём откровенно гадить: там очень чисто и культурно всё. а тут я такой, с пивными банками, окурками, сэмками везде плевать… как жывтоне какое‐то. фу.
я пока не понимаю, как он смотрит во внешние области видимости для создания замыканий. скорее всего, можно без try/finally трюка, но надо понять эту часть. автора бы на интервью…
а вот что реально сложно сделать, например — это yield. если let — всего лишь вопрос правильно сгенерированого кода для VM, то с yield всё значительно хуже: это требует переделки «нативного» кодогенератора. то есть, двигатель попросту не умеет в ситуацию, когда надо заморозить выполнение функции, а потом с этого же места продолжить. опять же: это можно обойти при помощи генерации cps-кода, но тогда про эффективность можно забыть навсегда. поэтому за yield я даже не возьмусь. по крайней мере не раньше, чем пойму, как там всё‐всё работает (что малореально).
p.s.: точнее, в заморозить‐продолжить умеет, но именно с места заморозки, не выполняя между этим другого кода. и да, трюк с try/finally я потихоньку реализовываю, что уж тут. тоже некрасиво, но…