jsvu的使用--在JavaScript 引擎中测试代码

670 阅读1分钟

为了在 JavaScript 引擎中测试代码,可以使用引擎管理工具jsvu来安装你想要的引擎,然后运行脚本。本篇文章主要是与v8引擎相关,其他雷同,不做赘述。

引擎对照表

image.png

安装jsvu

安装

npm install -g jsvu

配置全局路径(以mac为例): 在~/.bashrc中进行配置

export PATH="${HOME}/.jsvu:${PATH}"

启动(可以在命令行执行)

jsvu

备注:首次执行会列举出可安装的js引擎,之后再执行就会下载并更新所选引擎到最新版。

安装特定版本的引擎(如下例子为v8引擎的7.2.502版本)

jsvu v8@7.2.502

安装eshost-cli(方便执行js代码)

安装

npm install -g eshost-cli

配置所选的引擎

eshost --add 'Chakra' ch ~/.jsvu/chakra
eshost --add 'GraalJS' graaljs ~/.jsvu/graaljs
eshost --add 'JavaScriptCore' jsc ~/.jsvu/javascriptcore
eshost --add 'QuickJS' qjs ~/.jsvu/quickjs
eshost --add 'SpiderMonkey' jsshell ~/.jsvu/spidermonkey
eshost --add 'V8 --harmony' d8 ~/.jsvu/v8 --args '--harmony'
eshost --add 'V8' d8 ~/.jsvu/v8
eshost --add 'XS' xs ~/.jsvu/xs

备注:举例如下:

为了测试不同版本V8引擎是否支持es6globalThis,同时安装V8的v7.0.276 版本(该版本不原生支持globalThis)和 v9.8.169 版本(该版本原生支持globalThis)。

eshost --add 'V8' d8 ~/.jsvu/v8-7.0.276
eshost --add 'V9' d8 ~/.jsvu/v8

(备注v8-版本号,只有v8的是默认最新版本)

image.png

执行代码

比如用设置的V9执行如下代码

testGlobal.js的内容:

console.log(globalThis);

命令行执行(注意执行文件的路径,我的是在当前目录):

eshost -h V8,V9 testGlobal.js
结果:
### V8
ReferenceError: globalThis is not defined
#### V9
[object global]

备注:eshost --help的结果(可以根据需要进行选择):

image.png

image.png