Tiny javascript implementation? [closed]

╄→尐↘猪︶ㄣ 提交于 2019-12-04 07:44:06

问题


I need an extremely tiny implementation of (maybe a subset of?) Javascript. Code size and memory usage are extremely important (speed isn't in the question, it can run as slow as it likes). It must be written in C (not C++), and that too, ANSI C (GCC extensions are okay). If it runs on a VM would be best, because I will have to write a compiler for it. Any suggestions?

EDIT: Both of the responses I have seem good, except:

SpiderMonkey concentrates a lot on making it faster, I don't care if its fast at all.
Quad-Wheel sounds good, except the activity on it, and code comments are few (I will be porting this to another architecture if that helps).

So, any other responses would be great. Or, I could roll out my own simplified version of JS (but that doesn't sound fun at all)


回答1:


Duktape is written in C, with a focus on portability and compact footprint: http://duktape.org/




回答2:


I just discovered this ruby: https://github.com/gfwilliams/tiny-js

I've been looking quite some time for this, since spidermonkey/v8 usually is pretty big and comes with several dependancies. Tiny-js is a portable 'run make and your done'-linux c-class. Perfectly for if you are only looking for simple bindings and prefer javascript/c-syntax over lua/other awesome scriptinglanguages.




回答3:


An ANSI-C engine for ECMA-262: http://code.google.com/p/quad-wheel/

Mozilla SpiderMonkey is written in C as well, but probably to complex and large for you?




回答4:


SpiderMonkey is Mozilla's C implementation of JavaScript.

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




回答5:


muJS from Artifex Software might be another option for embedded JS/ES implementation.




回答6:


You should look at Jsi, which was just released. It is very small, is a subset of javascript, and is in C (derived from quadwheel).




回答7:


I think the jsi he's talking about is this: http://pdqi.com/cgi-bin/cgiwrap/pdqi/jsi.cgi/doc/tip/jsi/www/usingjsi.wiki

(Don't blame it is not... hehe)




回答8:


http://jsish.org will redirect you to the host site.




回答9:


https://github.com/cesanta/v7 is designed for embedded systems. Has very small footprint.




回答10:


Have you looked at JerryScript?




回答11:


If you are completely expect a full Node.js runtime at embeddable, ShadowNode might be a good for you.

https://github.com/Rokid/ShadowNode



来源:https://stackoverflow.com/questions/5384762/tiny-javascript-implementation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!