Pequeña implementación de javascript?


Necesito una implementación extremadamente pequeña de (tal vez un subconjunto de?) Javascript. El tamaño del código y el uso de la memoria son extremadamente importantes (la velocidad no está en la pregunta, puede correr tan lento como quiera). Debe estar escrito en C (no en C++), y eso también, ANSI C (las extensiones GCC están bien). Si se ejecuta en una VM sería mejor, porque tendré que escribir un compilador para ella. Alguna sugerencia?

EDITAR: Las dos respuestas que tengo parecen buenas, excepto:

SpiderMonkey se concentra mucho en hacer es más rápido, no me importa si es rápido en absoluto.
Quad-Wheel suena bien, excepto la actividad en él, y los comentarios de código son pocos (voy a portar esto a otra arquitectura si eso ayuda).

Entonces, cualquier otra respuesta sería genial. O, podría lanzar mi propia versión simplificada de JS (pero eso no suena divertido en absoluto)

Author: Prof. Falken, 2011-03-22

10 answers

Duktape está escrito en C, con un enfoque en la portabilidad y la huella compacta: http://duktape.org /

 23
Author: Samuli Kärkkäinen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-14 21:21:07

Acabo de descubrir este rubí: https://github.com/gfwilliams/tiny-js

He estado buscando bastante tiempo para esto, ya que spidermonkey/v8 por lo general es bastante grande y viene con varias dependencias. Tiny-js es un portable 'ejecutar make y su hecho' - linux c-class. Perfectamente para si solo está buscando enlaces simples y prefiere javascript/c-syntax sobre lua / otros scriptinglanguages impresionantes.

 13
Author: Coder of Salvation,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-03 16:19:51

Un motor ANSI-C para ECMA-262: http://code.google.com/p/quad-wheel /

Mozilla SpiderMonkey también está escrito en C, pero probablemente a complejo y grande para usted?

 4
Author: Björn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-21 23:06:46

SpiderMonkey es la implementación de JavaScript en C de Mozilla.

Http://www.mozilla.org/js/spidermonkey /

 2
Author: Robert Harvey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-21 23:04:51

MuJS del Software Artifex podría ser otra opción para la implementación de JS/ES embebida.

 2
Author: CyberFonic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-05 22:04:18

Usted debe mirar Jsi, que acaba de ser lanzado. Es muy pequeño, es un subconjunto de javascript, y está en C (derivado de quadwheel).

 1
Author: pcmacdon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-30 13:19:51

Creo que el jsi del que está hablando es este: http://pdqi.com/cgi-bin/cgiwrap/pdqi/jsi.cgi/doc/tip/jsi/www/usingjsi.wiki

(No culpes no lo es... jeje)

 0
Author: Alfgaar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-21 19:14:19

Http://jsish.org le redirigirá al sitio de acogida.

 0
Author: Peter MacDonald,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-13 19:40:33

Https://github.com/cesanta/v7 está diseñado para sistemas embebidos. Tiene una huella muy pequeña.

 0
Author: valenok,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-15 07:15:11

¿Has mirado Jerrycript?

 0
Author: user835611,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-13 07:49:51