• Home
  • Annotate
  • current directory
Name Date Size #Lines LOC

..29-Oct-2021-

doc/29-Oct-2021-

examples/29-Oct-2021-

tests/29-Oct-2021-

.gitignore A D29-Oct-20214 11

CMakeLists.txt A D29-Oct-20211 KiB3525

Changelog A D29-Oct-20213.2 KiB12698

LICENSE A D29-Oct-20211.1 KiB2217

Makefile A D29-Oct-202112 KiB470332

README.md A D29-Oct-20215 KiB142113

TODO A D29-Oct-20213.6 KiB7972

VERSION A D29-Oct-202111 21

cutils.c A D29-Oct-202116.5 KiB621497

cutils.h A D29-Oct-20217.2 KiB298223

gen_qjsc.sh A D29-Oct-202110 21

jscompress.c A D29-Oct-202124.4 KiB919818

libbf.c A D29-Oct-2021234.1 KiB8,4677,115

libbf.h A D29-Oct-202117.4 KiB536374

libregexp-opcode.h A D29-Oct-20212.2 KiB5931

libregexp.c A D29-Oct-202181.8 KiB2,5942,284

libregexp.h A D29-Oct-20213.1 KiB9252

libunicode-table.h A D29-Oct-2021206.9 KiB4,3694,288

libunicode.c A D29-Oct-202145.3 KiB1,5391,381

libunicode.h A D29-Oct-20213.7 KiB12574

linux_jquick_mutex.c A D29-Oct-20211.2 KiB6747

linux_jquick_mutex.h A D29-Oct-2021403 2717

list.h A D29-Oct-20213.2 KiB10865

qjs.c A D29-Oct-202116.1 KiB556475

qjsc A D29-Oct-20213.2 MiB

qjsc.c A D29-Oct-202120.2 KiB729615

qjscalc.js A D29-Oct-202171.1 KiB2,6422,405

quickjs-atom.h A D29-Oct-20217.7 KiB273235

quickjs-libc.c A D29-Oct-2021105.6 KiB3,8133,304

quickjs-libc.h A D29-Oct-20212.3 KiB5929

quickjs-opcode.h A D29-Oct-202115 KiB368305

quickjs.c A D29-Oct-20211.6 MiB53,31747,246

quickjs.h A D29-Oct-202139.8 KiB1,034795

readme.txt A D29-Oct-202166 21

release.sh A D29-Oct-20212.4 KiB11773

repl.js A D29-Oct-202148.1 KiB1,5671,369

run-test262.c A D29-Oct-202160.9 KiB2,0991,837

test262.conf A D29-Oct-20213.8 KiB190138

test262_errors.txt A D29-Oct-20214.4 KiB3130

test262o.conf A D29-Oct-202121.2 KiB411323

test262o_errors.txt A D29-Oct-20210

unicode_download.sh A D29-Oct-2021485 209

unicode_gen.c A D29-Oct-202181.3 KiB3,0582,667

unicode_gen_def.h A D29-Oct-20216.7 KiB285271

README.md

1<h1>QuickJS Javascript Engine</h1>
2
3<h2>News</h2>
4
5<ul>
6  <li>2020-04-12:
7    <ul>
8      <li>New release</li>
9    </ul>
10  </li>
11  <li>2020-03-16:
12    <ul>
13      <li>New release</li>
14    </ul>
15  </li>
16  <li>2020-01-19:
17    <ul>
18      <li>New release with
19    experimental <a href="https://github.com/littledan/proposal-bigdecimal">BigDecimal</a>
20    support and updated operator overloading.</li>
21      <li><a href="https://bellard.org/quickjs/pi.html">Small Javascript programs</a> to compute
22      one billion digits of pi.</li>
23    </ul>
24  </li>
25</ul>
26
27<h2>Introduction</h2>
28
29QuickJS is a small and embeddable Javascript engine. It supports the
30<a href="https://tc39.github.io/ecma262/">ES2020</a> specification
31including modules, asynchronous generators, proxies and BigInt.
32<p>
33It optionally supports mathematical extensions such as big decimal
34floating point numbers (BigDecimal), big binary floating point numbers
35(BigFloat) and operator overloading.
36<p>
37Main Features:
38<ul>
39
40<li> Small and easily embeddable: just a few C files, no external
41dependency, 210 KiB of x86 code for a simple <tt>hello world</tt>
42program.</li>
43
44<li> Fast interpreter with very low startup time: runs the 69000 tests
45of the <a href="https://github.com/tc39/test262">ECMAScript Test
46Suite</a> in about 95 seconds on a single core of a desktop PC. The
47complete life cycle of a runtime instance completes in less than 300
48microseconds.</li>
49
50<li> Almost
51  complete <a href="https://tc39.github.io/ecma262/">ES2020</a>
52  support including modules, asynchronous generators and full Annex B
53  support (legacy web compatibility).</li>
54
55<li>Passes nearly 100% of the ECMAScript Test Suite tests when selecting the ES2020 features.</li>
56
57<li> Can compile Javascript sources to executables with no external dependency.</li>
58
59<li> Garbage collection using reference counting (to reduce memory usage
60  and have deterministic behavior) with cycle removal.</li>
61
62<li> Mathematical extensions: BigDecimal, BigFloat, operator overloading, bigint mode, math mode.</li>
63
64<li> Command line interpreter with contextual colorization implemented in Javascript.</li>
65
66<li> Small built-in standard library with C library wrappers.</li>
67
68</ul>
69
70<h2><a href="https://bellard.org/quickjs/bench.html">Benchmark</a></h2>
71
72<h2>Online Demo</h2>
73
74An online demonstration of the QuickJS engine with its mathematical
75extensions is available
76at <a href="http://numcalc.com">numcalc.com</a>. It was compiled from
77C to WASM/asm.js with Emscripten.
78<p>
79<tt>qjs</tt> and <tt>qjscalc</tt> can be run in <a href="https://bellard.org/jslinux/vm.html?url=buildroot-x86.cfg">JSLinux</a>.
80
81<h2>Documentation</h2>
82
83QuickJS documentation: <a href="https://bellard.org/quickjs/quickjs.html">HTML version</a>,
84<a href="https://bellard.org/quickjs/quickjs.pdf">PDF version</a>.
85<p>
86Specification of the JS Bignum Extensions: <a href="https://bellard.org/quickjs/jsbignum.html">HTML
87version</a>, <a href="https://bellard.org/quickjs/jsbignum.pdf">PDF version</a>.
88
89<h2>Download</h2>
90
91<ul>
92  <li>
93    QuickJS source code: <a href="https://bellard.org/quickjs/quickjs-2020-04-12.tar.xz">quickjs-2020-04-12.tar.xz</a></li>
94  <li>
95    QuickJS extras (contain the unicode files needed to rebuild the unicode tables and the bench-v8 benchmark): <a href="https://bellard.org/quickjs/quickjs-extras-2020-04-12.tar.xz">quickjs-extras-2020-04-12.tar.xz</a>
96  </li>
97  <li>
98    Unofficial <a href="https://github.com/horhof/quickjs">git mirror</a>.
99  </li>
100  <li>
101    Binary releases for Linux are available in <a href="https://github.com/GoogleChromeLabs/jsvu">jsvu</a> and <a href="https://bellard.org/quickjs/binary_releases">here</a>.
102  </li>
103  <li>
104    Typescript compiler compiled with QuickJS: <a href="https://bellard.org/quickjs/quickjs-typescript-linux-x86.tar.xz">quickjs-typescript-linux-x86.tar.xz</a>
105  </li>
106  <li>
107    Babel compiler compiled with QuickJS: <a href="https://bellard.org/quickjs/quickjs-babel-linux-x86.tar.xz">quickjs-babel-linux-x86.tar.xz</a>
108  </li>
109</ul>
110
111<h2>Sub-projects</h2>
112
113QuickJS embeds the following C libraries which can be used in other
114projects:
115<ul>
116  <li><b>libregexp</b>: small and fast regexp library fully compliant with the Javascript ES 2019 specification.</li>
117  <li><b>libunicode</b>: small unicode library supporting case
118conversion, unicode normalization, unicode script queries, unicode
119general category queries and all unicode binary properties.</li>
120  <li><b>libbf</b>: small library implementing arbitrary precision
121    IEEE 754 floating point operations and transcendental functions with
122    exact rounding. It is maintained as a <a href="https://bellard.org/libbf">separate project</a>.
123  </li>
124</ul>
125
126<h2>Links</h2>
127
128<ul>
129  <li><a href="https://www.freelists.org/list/quickjs-devel">QuickJS Development</a> mailing list</li>
130</ul>
131
132<h2>Licensing</h2>
133
134QuickJS is released under
135the <a href="https://opensource.org/licenses/MIT">MIT license</a>.
136<p>
137Unless otherwise specified, the QuickJS sources are copyright Fabrice
138Bellard and Charlie Gordon.
139
140<hr>
141Fabrice Bellard - <a href="https://bellard.org">https://bellard.org/</a>
142

readme.txt

1The main documentation is in doc/quickjs.pdf or doc/quickjs.html.
2