为了在 JavaScript 引擎中测试代码,可以使用引擎管理工具jsvu来安装你想要的引擎,然后运行脚本。本篇文章主要是与v8引擎相关,其他雷同,不做赘述。
引擎对照表
安装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引擎是否支持es6的globalThis,同时安装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的是默认最新版本)
执行代码
比如用设置的V9执行如下代码
testGlobal.js的内容:
console.log(globalThis);
命令行执行(注意执行文件的路径,我的是在当前目录):
eshost -h V8,V9 testGlobal.js
结果:
### V8
ReferenceError: globalThis is not defined
#### V9
[object global]
备注:eshost --help的结果(可以根据需要进行选择):