var binaryen = require("binaryen"); var mod = new binaryen.Module(); var funcType = mod.addFunctionType("ii", binaryen.i32, [ binaryen.i32 ]); mod.addFunction("0", funcType, [], mod.block(null, [ mod.loop("continue", mod.block(null, [ mod.if( mod.local.get(0, binaryen.i32), mod.return(mod.i32.const(1)), mod.return(mod.i32.const(2)) ), mod.unreachable() ]) ), mod.unreachable() ], binaryen.i32) ); mod.addExport("0", "0"); if (!mod.validate()) console.log("-> does not validate"); console.log(mod.emitText()); console.log(mod.emitStackIR(/*true*/)); // optimize-stack-ir fixes this