Распрацоўнікі JavaScript-рухавічка V8
Дэкампілятар
Напрыклад, скампіляваная ў wasm зыходная Сі-функцыя
typedef struct { float x, y, z; } vec3;
float dot (const vec3 * a, const vec3 * b) {
return a->x * b->x +
a->y * b->y +
a-> z * b-> z;
}
будзе дэкампіляваная ўтылітай wasm-decompile у псеўдамова
function dot(a:{ a:float, b:float, c:float },
b:{ a:float, b:float, c:float }):float {
return aa * ba + ab * bb + ac * bc
}
у той час як пераўтварэнне ў тэкставы фармат ".wat" будзе выглядаць наступным чынам
(func $dot (type 0) (param i32 i32) (result f32)
(f32.add
(f32.add
(f32.mul
(f32.load
(local.get 0))
(f32.load
(local.get 1)))
(f32.mul
(f32.load offset=4
(local.get 0))
(f32.load offset=4
(local.get 1))))
(f32.mul
(f32.load offset=8
(local.get 0))
(f32.load offset=8
(local.get 1))))))
Крыніца: opennet.ru