buildModule = () => {
const module = new binaryen.Module();
module.addFunction(
"fits",
binaryen.i32,
binaryen.i32,
[binaryen.i32, binaryen.i32, binaryen.i32, binaryen.i32],
module.block(null, [
module.local.set(2, module.i32.const(11)),
module.block('afterLoop', [
module.loop(
'loop',
module.block(null, [
module.local.set(
1,
module.i32.rem_s(
module.local.get(0, binaryen.i32),
module.i32.const(10)
)
),
module.if(
module.i32.eqz(module.local.get(0, binaryen.i32)),
module.break('afterLoop')
),
module.local.set(
0,
module.i32.div_s(
module.local.get(0, binaryen.i32),
module.i32.const(10)
)
),
module.if(
module.i32.gt_s(
module.local.get(1, binaryen.i32),
module.local.get(2, binaryen.i32)
),
module.return(module.i32.const(0))
),
module.if(
module.i32.eq(
module.local.get(1, binaryen.i32),
module.local.get(2, binaryen.i32)
),
module.local.set(
3,
module.i32.add(
module.local.get(3, binaryen.i32),
module.i32.const(1)
)
),
module.block(null, [
module.if(
module.i32.eq(
module.local.get(3, binaryen.i32),
module.i32.const(2)
),
module.local.set(4, module.i32.const(1))
),
module.local.set(3, module.i32.const(1))
])
),
module.local.set(2, module.local.get(1, binaryen.i32)),
module.break('loop')
])
)
]),
module.if(
module.i32.eq(module.local.get(3, binaryen.i32), module.i32.const(2)),
module.return(module.i32.const(1))
),
module.return(module.local.get(4, binaryen.i32))
])
);
module.addFunctionExport("fits", "fits");
return module;
}