¿Hay una implementación de JavaScript (ECMAScript) escrita en Python?

¿Hay implementaciones de JavaScript (ECMAScript) escritas en Python puro ? Está bien incluso si su implementación es muy lenta.

Hay uno, de un nivel de integridad desconocido, escrito en RPython (un subconjunto de Python, es decir, se ejecuta como Python normal): https://bitbucket.org/pypy/lang-js/overview

Parece que ya no está en desarrollo activo, pero puede consultar pynarcissus , http://code.google.com/p/pynarcissus/source/browse/trunk/jsparser.py

Parece que también está disponible un enlace a V8 (intérprete de JavaScript en Google Chromium), http://www.advogato.org/article/985.html

Es posible que desee echar un vistazo a pydermonkey o python- spidermonkey , y creo que ambas son implementaciones de python del intérprete de JavaScript de Mozilla.

Le recomendaría que se limite a node.js en su cuadro de desarrollo local, traduzca sus archivos de CoffeeScript a JavaScript e implemente los scripts traducidos con sus aplicaciones.

Entiendo que desea evitar tener node.js en sus servidores, eso es justo y bueno. Saltar a través de aros con Python invocar JavaScript para traducir CoffeeScript me parece más complicado de lo que vale.

Creé Jispy para incrustar JS en Python.

De los documentos:

Un intérprete de JavaScript en Python

Jispy es un intérprete para un subconjunto estricto de JavaScript, llamado con cariño LittleJ (LJ) . Emplea un descenso recursivo para analizar y es muy fácil de extender.

Construido para incrustar JavaScript

La visión original de Jispy era permitir la integración perfecta de progtwigs JavaScript en proyectos de Python. De forma predeterminada, no expone el sistema de archivos del host ni ningún otro elemento sensible. Se proporcionan algunas comprobaciones de bucle infinito y recursión infinita para hacer frente a posibles códigos maliciosos.

Viene con una consola interactiva, para que pueda comenzar a utilizarlo en muy poco tiempo.

Espero que esto ayude.

¿Has oído hablar de PyV8 ? Es una envoltura de Python del motor de JavaScript V8 de Google. Puede ser lo que estás buscando.