…
|
||
---|---|---|
.. | ||
patches | ||
README | ||
quickjs.SlackBuild | ||
quickjs.info | ||
slack-desc |
README
QuickJS is a small and embeddable Javascript engine by Fabrice Bellard and Charlie Gordon. It supports the ES2020 specification including modules, asynchronous generators, proxies and BigInt. It optionally supports mathematical extensions such as big decimal floating point numbers (BigDecimal), big binary floating point numbers (BigFloat) and operator overloading. Main Features: * Small and easily embeddable: just a few C files, no external dependency. * Fast interpreter with very low startup time * Almost complete ES2020 support including modules, asynchronous generators and full Annex B support (legacy web compatibility). * Passes nearly 100% of the ECMAScript Test Suite tests when selecting the ES2020 features. * Can compile Javascript sources to executables with no external dependency. * Garbage collection using reference counting (to reduce memory usage and have deterministic behavior) with cycle removal. * Mathematical extensions: BigDecimal, BigFloat, operator overloading, bigint mode, math mode. * Command line interpreter with contextual colorization in JS. * Small built-in standard library with C library wrappers. NOTE: In order to adhere to Slackware standards the source is patched to: * change library paths in the compiler * build a shared library Since the default behaviour of the compiler is to output statically linked binaries, an aditional shared library is provided so that users may produce C files from Javascript source code (e.g.: qjsc -e in.js -o out.c), and then compile and link dynamically, e.g.: cc -I /usr/include/quickjs out.c -o executable -lquickjs I believe this is the less intrussive set of changes to achieve those goals.