Duktape

Duktape is a small and portable ECMAScript E5/E5.1 implementation. It
is intended to be easily embeddable into C programs, with a C API
similar in spirit to Lua's.

Duktape supports the full E5/E5.1 feature set (with some semantics
updated from ES2015+) including errors, Unicode strings, and regular
expressions, a subset of ECMAScript 2015 (E6) and ECMAScript 2016 (E7)
features (e.g. computed property names, Proxy objects, exponentiation
operator, Reflect), ES2015 ArrayBuffer/TypedView, Node.js Buffer,
performance.now(), CBOR, and WHATWG Encoding API living standard.

Duktape also provides a number of custom features such as error
tracebacks, additional data types for better C integration, combined
reference counting and mark-and sweep garbage collector, object
finalizers, co-operative threads a.k.a. coroutines, tail calls, a
built-in debugger protocol, function bytecode dump/load, and so on.
Bundled extra modules provide functionality such as CommonJS module
loading and a logging framework.

You can browse Duktape programmer's API and other documentation at:

* http://duktape.org/

In particular, you should read the getting started section:

* http://duktape.org/guide.html#gettingstarted

More examples and how-to articles are in the Duktape Wiki:

* http://wiki.duktape.org/
