简介
生成 ES2ABC 和 V8 生成的字节码指令数量差异报告。
准备V8
1. 安装 depot_tools
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=/path/to/depot_tools:$PATH
2. fetch v8 代码
在任意目录下创建一个 V8 源代码目录并切换到该目录:
mkdir ~/v8
cd ~/v8
使用 fetch 命令获取 V8 源代码及其所有分支和依赖项。
fetch v8
cd v8
3. 安装依赖项
在 V8 源代码目录下执行以下命令,提取最新更改并安装任何新生成的依赖项。
git pull
gclient sync
接下来,安装其它依赖。
./build/install-build-deps.sh
4. 编译 V8
使用 gm 工具编译构建V8。
tools/dev/gm.py x64.release
编译好的v8可执行程序d8的路径如下
out/x64.release/d8
运行脚本
使用说明
python3 parse_command.py -es2abc ES2ABC_PATH -v8 D8_PATH [arguments]
参数
-es2abc: 可执行程序 es2abc 的路径。-v8: V8可执行程序 d8 的路径。
可选参数
--add_case: 添加单个待执行测试用例的文件路径。--add_case_dir: 添加待执行测试用例所在的目录,脚本将自动搜索该目录中的所有测试用例 (默认筛选.js后缀的测试用例)。--timeout: 用例执行的时间限制 (单位: 秒)。
测试结果
指令数差异报告: ./discrepancy_report.html