皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Fabrice Bellard 和他的 QuickJS JavaScript

周二,FFmpeg 和 QEMU 的创建者 Fabrice Bellard 以及 C 专家 Charlie Gordon 宣布 QuickJS 首次公开发布。在 MIT 许可下发布,它是一个“小而完整的 JavaScript 引擎”,支持最新的 ES2019 语言规范。

QuickJS JavaScript 引擎中的功能
小而易于嵌入:引擎由几个 C 文件组成,并且没有任何外部依赖性。

快速解释器: 解释器通过在 100 秒内从 ECMAScript Test Suite1 运行 56,000 次测试,并且在单核 CPU 上运行,显示出令人印象深刻的速度。运行时实例在不到 300 微秒的时间内完成其整个过程。

支持 ES2019: 几乎囊括全部对 ES2019 规范的支持,包括模块、异步生成器和完整的附件 B 支持(传统 Web 兼容性)。目前,它并不支持逻辑子域和尾部调用。

没有外部依赖: 它可以在没有任何外部支持的情况下将 JavaScript 源代码编译为可执行文件。

命令行解释器: 命令行解释器带有在 Javascript 中实现语境着色并完善的功能。

垃圾收集: 它使用引用计数和循环删除来自动和确定地释放对象。这减少了内存使用并确保了 JavaScript 引擎的确定性行为。

数学扩展: 您可以在’qjsbn’ 版本中找到所有数学扩展,它们与标准 Javascript 完全向下兼容。它支持大整数(BigInt)、大浮点数(BigFloat)、运算符重载,同时也附带’bigint’ 和’math’ 模式。

这个消息在 Hacker News 上引发了讨论,开发人员对 Bellard 和 Gordon 在该项目上的出色工作表示赞赏。
一位开发人员评论说:“哇。核心是一个 1.5MB 的文件,非常易读,几乎支持所有最新标准,Bellard 甚至还添加了自己的扩展。它具有 NaN-boxing 或传统标记联合对象表示的编译时间选项,因此他不仅仅采用单一的最小实现(不像例如 OTCC),而且甚至有时间和精力去探索一下。我喜欢这样的事实,它不是 C99,但似乎是基本的 C89,意味着非常高的可移植性。虽然我对 JS 的普遍厌恶主要是因为网站倾向于滥用它,但这个项目仍然令人印象深刻且非常鼓舞人心,并且人们想知道是否仍然存在“底层空间”,尤其是更小但功能更具竞争性的实施。”

另一位写道:“我迫不及待地想要解决这个问题,它看起来非常酷。我喜欢极简主义的做法。如果它真的符合规范,我将使用它来编译我编写的当前使用节点的一堆 CLI 脚本。

我倾向于坚持使用 ECMAScript 核心,并且避免使用 NPM 中的程序包,特别是那些具有二进制组件的程序包。很多时候我因为正在重写部分的库而减慢了我的速度,但是这里所有的东西都应该只需要一点点的 OS 交互层转译,这非常令人兴奋。“

要了解有关 QuickJS 的更多信息,请查看 Fabrice Bellard 的 官方网站 ,通过 QuickJS 中文 项目下载相关编译文件。

转自 https://www.oschina.net/news/108228/quickjs-js-engine

分享到:更多 ()