Было несколько попыток превратить js в нативный код, это не то, что может быть использовано в производстве любыми средствами, скорее академический интерес.
Интерпретатор Rhino для java имеет возможность превратить js в (java) байт-код, поэтому один из подходов заключается в преобразовании в байт-код, а затем из байт-кода в нативный с GCJ. Есть некоторая дискуссия о Rhino и GCJ, но я не знаю, пытался ли кто-нибудь когда-либо делать именно это. https://groups.google.com/forum/#!msg/netscape.public.mozilla.jseng/c3tqyLZ19fw/8V4HeuMtIXUJ
Другой подход заключается в использовании Python, в частности Py-Py, который сам по себе написан в нестандартном подмножестве Python под названием rPython. rPython не предназначен для потребления человеком, но имеет то преимущество, что его можно скомпилировать в нативный. Один интересный (хотя и дурацкий) эксперимент состоял в том, чтобы скомпилировать Javascript в Python, а затем в некоторых случаях Python оказывается действительным как rPython и может быть скомпилирован до нативного с помощью компилятора rPython.
http://mozakai.blogspot.com/2010/07/experiments-with-static-javascript-as.html
Если файл .exe действительно важен, я бы связал V8 с вашим приложением, поскольку даже если вы можете скомпилировать js в native, вам все равно нужен полный интерпретатор, если вы используете какой-либо eval () или аналогичный. Нетрудно написать инструмент для объединения всего в файл .exe, если ваши пользователи не возражают против 8 МБ exe-файла или 8 МБ V8.dll файла.
Как последняя мысль, Big G начал разрешать «нативные» приложения на основе Chrome (Google: «Chrome Packaged Apps»). Они имеют низкоуровневый доступ к системе и могут использовать средство визуализации WebKit, позволяющее вам создавать графический интерфейс в CSS и HTML, и у них есть собственные окна и значки, поэтому не очевидно, что они работают внутри Chrome. Это, вероятно, все еще преждевременно, но за этим нужно следить в области настольных приложений.