Is there a native machine code compiler for JavaScript? [closed]

Is there a native machine code compiler for JavaScript? I'm not talking about a VM. If it doesn't exist can it be done?
I am wondering if it can be compiled to binary due to the dynamic nature of the language.


As far as I know, there are no static compilers for JavaScript. It is certainly theoretically possible; however, a static compilation of JavaScript would need a very heavyweight runtime to support all of its features (such as dynamic typing and eval). As a small aside, when presented with the need to statically compile Python (another dynamic language), the PyPy developers ended up creating a language which was a very restricted subset of Python (called RPython), void of some of Python's more dynamic features, that was capable of being statically compiled.

If you're asking this for the purpose of creating a standalone executable from JavaScript code, I'm sure there must be wrappers which essentially would create an executable containing your script and an embedded JavaScript VM (sadly, I don't know any offhand).


It's definitely doable, although the only way I know how to do it at the moment is a two step process...

  1. Compile the javascript to Java using Mozilla Rhino JSC.
  2. Compile the resulting java class file to executable using something like GNU's GCJ.

Why would you want to, though? What advantage do you expect to find?


Google V8 engine compiles JavaScript into native machine code. This feature is used in the EncloseJS compiler which I wrote for for node.js and io.js projects.


Please note that all of these solutions are DOMless, so no libraries like angular.js or jquery, only underscore.js/lodash

Following up to Falaina's answer, PyPy does have a dist for JavaScript

Also, Appcelerator Titanium has a js > JavaBit > android

Finally, node.js can use nexe Explained in this other answer