V8 Bytecode Decompiler 【Windows】

function max(x, y) return x > y ? x : y;

def generate_js(self, ast): # Recursive JS code emission pass Input V8 bytecode (from function max(x, y) return x > y ? x : y; ): v8 bytecode decompiler

def build_cfg(self): # Split at jumps, create basic blocks pass function max(x, y) return x > y

After d8 --print-bytecode :

block0: t0 = (x > y) if t0 goto block1 else block2 block1: result = x goto block3 block2: result = y block3: return result : y) return x &gt

def recover_structures(self): # Match patterns: if-else, loops, try-catch # Transform CFG into AST nodes pass