QuickJS基于 C 实现的 JavaScript 引擎

联合创作 · 2023-09-23 03:09

QuickJS 是一个轻量且可嵌入的 JavaScript 引擎,它支持 ES2019 规范,包括 ES module、异步生成器以及 proxies。除此之外,还支持可选的数学扩展,例如大整数(BigInt)、大浮点数(BigFloat)和运算符重载。

主要特性如下

  • 轻量且方便嵌入:QuickJS 只包含一些 C 语言文件,没有额外的依赖,运行一个简单的 hello world 只需要 190 KiB 的 x86 代码
  • 拥有启动时间极短的快速解释器:在单核的台式 PC 上,运行 ECMAScript 测试套件的 56000 个测试大约在 100 秒内完成。一个 runtime 实例的完整生命周期在不到 300ms 内完成
  • 几乎完整的 ES2019 支持,包括 ES module、异步生成器和完整的 Annex B 支持(传统的 Web 兼容性)
  • 完全通过了 ECMAScript 测试套件的测试
  • 可将 JavaScript 源码编译为没有外部依赖的可执行文件
  • 基于引用计数的 GC(以减少内存使用并具有确定性行为)
  • 数学扩展:BigInt、BigFloat、运算符重载、bigint mode 和 math mode
  • 使用 Javascript 实现的具有上下文着色功能(contextual colorization)的命令行解释器
  • 包含使用 C 语言库封装的轻量级内置标准库

BTW,QuickJS 的作者是 Fabrice Bellard,知名开源项目 FFMPEG 和 QEMU 都出自他手。

浏览 12
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报