V8 JavaScript variklio kūrėjai
Dekompiliatorius
Pavyzdžiui, originali C funkcija, sukompiliuota wasm
typedef struct { float x, y, z; } vec3;
plūduriuojantis taškas(const vec3 *a, const vec3 *b) {
grąžinti a->x * b->x +
a->y * b->y +
a->z * b->z;
}
„Wasm-decompile“ programa bus iškompiliuota į pseudokalbą
function dot(a:{ a:float, b:float, c:float },
b:{ a:float, b: float, c: float }):float {
grįžti aa * ba + ab * bb + ac * bc
}
o konvertavimas į teksto formatą „.wat“ atrodytų taip
(funkcija $dot (0 tipas) (param i32 i32) (rezultatas f32)
(f32.add
(f32.add
(f32.mul
(f32.load
(vietinis.gauti 0))
(f32.load
(local.get 1)))
(f32.mul
(f32.load offset=4
(vietinis.gauti 0))
(f32.load offset=4
(vietinis.gauti 1))))
(f32.mul
(f32.load offset=8
(vietinis.gauti 0))
(f32.load offset=8
(vietinis.gauti 1))))))
Šaltinis: opennet.ru