1# 简介 2 3生成 ES2ABC 和 V8 生成的字节码指令数量差异报告。 4 5# 准备V8 6 7## 1. 安装 depot_tools 8 9 10```sh 11git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 12export PATH=/path/to/depot_tools:$PATH 13``` 14 15 16## 2. fetch v8 代码 17 18在任意目录下创建一个 V8 源代码目录并切换到该目录: 19 20```sh 21mkdir ~/v8 22cd ~/v8 23``` 24 25使用 fetch 命令获取 V8 源代码及其所有分支和依赖项。 26 27```sh 28fetch v8 29cd v8 30``` 31 32 33## 3. 安装依赖项 34 35在 V8 源代码目录下执行以下命令,提取最新更改并安装任何新生成的依赖项。 36 37```sh 38git pull 39gclient sync 40``` 41 42接下来,安装其它依赖。 43 44```sh 45./build/install-build-deps.sh 46``` 47 48 49## 4. 编译 V8 50 51使用 gm 工具编译构建V8。 52 53```sh 54tools/dev/gm.py x64.release 55``` 56 57编译好的v8可执行程序d8的路径如下 58 59```sh 60out/x64.release/d8 61``` 62 63 64# 运行脚本 65 66## 使用说明 67 68```sh 69python3 parse_command.py -es2abc ES2ABC_PATH -v8 D8_PATH [arguments] 70``` 71 72### 参数 73 74+ `-es2abc`: 可执行程序 es2abc 的路径。 75+ `-v8`: V8可执行程序 d8 的路径。 76 77### 可选参数 78 79+ `--add_case`: 添加单个待执行测试用例的文件路径。 80+ `--add_case_dir`: 添加待执行测试用例所在的目录,脚本将自动搜索该目录中的所有测试用例 (默认筛选.js后缀的测试用例)。 81+ `--timeout`: 用例执行的时间限制 (单位: 秒)。 82 83 84# 测试结果 85 86指令数差异报告: `./discrepancy_report.html` 87