V8 JavaScript 引擎開發人員
反編譯器
比如把原來的C函數編譯成wasm
typedef struct { 浮動 x, y, z; }vec3;
浮點(const vec3 *a,const vec3 *b){
返回 a->x * b->x +
a->y * b->y +
a->z * b->z;
}
將被 wasm-decompile 實用程序反編譯為偽語言
函數點(a:{ a:float, b:float, c:float },
b:{ a:float, b:float, c:float }):float {
返回 aa*ba+ab*bb+ac*bc
}
轉換為“.wat”文本格式時看起來像這樣
(func $dot (類型 0) (參數 i32 i32) (結果 f32)
(f32.添加
(f32.添加
(f32.mul
(f32.負載
(本地.get 0))
(f32.負載
(本地.獲取1)))
(f32.mul
(f32.負載偏移=4
(本地.get 0))
(f32.負載偏移=4
(本地.獲取1))))
(f32.mul
(f32.負載偏移=8
(本地.get 0))
(f32.負載偏移=8
(本地.get 1)))))
來源: opennet.ru