// the take
A collection of microbenchmarks (using Benchmark.js) comparing common JavaScript idioms — array cloning, loops, promise construction, string concatenation, type coercion — side by side on Node.js/V8 and QuickJS. It's for anyone writing JS that has to run on both a JIT engine and a small interpreter-only one, most obviously people targeting WeChat mini-programs or other QuickJS embeds.
Running every benchmark on both engines is the actual value here: it shows the 'fast' pattern flips depending on runtime (e.g. plain for-loops crush native array methods on QuickJS but are a wash on V8, which most devs wouldn't guess from V8-only benchmarking advice). Uses Benchmark.js correctly with multiple sampled runs and margin of error reported, not single timed runs. The README is generated by a CI workflow from actual benchmark output rather than hand-copied, so the numbers in the doc match what the scripts produce. Decent breadth of idioms that come up constantly: object cloning, uniq-ing arrays, string-to-number coercion, try/catch cost.
Zero interpretation anywhere — it's raw ops/sec tables with no explanation of why QuickJS and V8 diverge (JIT inlining, hidden classes, bytecode dispatch), so you still have to do the reasoning yourself. Several V8 numbers in the ~590M ops/sec range (empty loop bodies, `[]` literal creation) are almost certainly the JIT dead-code-eliminating the benchmark itself rather than measuring real cost, and nothing in the methodology guards against that. Last pushed March 2023 against Node 19.7 and a 2021 QuickJS build — both engines have since changed their optimizer behavior enough that several of these comparisons are stale. No Bun, no Deno, no quickjs-ng, so it's a snapshot of a runtime landscape that's moved on rather than a maintained reference.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →