QuickJS 是一個小型且可嵌入的 Javascript 引擎。它支持 ES2020規範,包括模塊、異步生成器、代理和 BigInt。
它可選地支持數學擴展,例如大十進制浮點數 (BigDecimal)、大二進制浮點數 (BigFloat) 和運算符重載。
主要特點:
小且易於嵌入:只有幾個 C 文件,沒有外部依賴,一個簡單的hello world 程序需要210 KiB 的 x86 代碼。
啟動時間極短的快速解釋器:在台式 PC 的單核上運行ECMAScript 測試套件的 75000 次測試大約需要 100 秒。運行時實例的完整生命週期在不到 300 微秒內完成。
幾乎完整的ES2020 支持,包括模塊、異步生成器和完整的 Annex B 支持(舊版 Web 兼容性)。
選擇 ES2020 功能時,幾乎 100% 通過 ECMAScript 測試套件測試。Test262 報告中提供了摘要。
可以將 Javascript 源代碼編譯為沒有外部依賴的可執行文件。
使用引用計數(以減少內存使用並具有確定性行為)和循環刪除的垃圾收集。
數學擴展:BigDecimal、BigFloat、運算符重載、bigint 模式、數學模式。
在 Javascript 中實現上下文著色的命令行解釋器。
帶有 C 庫包裝器的小型內置標準庫。
基準
1