var wast = `
(module
 (type $i (func (param i32) (result i32)))
 (memory $0 0)
 (export "test" (func $test))
 (func $test (; 0 ;) (type $i) (param $0 i32) (result i32)
  (block (result i32)
   (block (result i32)
    (if (result i32)
     (local.get $0)
     (local.get $0)
     (i32.const 0)
    )
   )
  )
 )
)
`;

console.log("=== input wast ===" + wast);

var module = binaryen.parseText(wast);
assert(module.validate());

console.log("=== default ===");
console.log(module.emitStackIR());

console.log("=== optimize ==="); // should omit the second block
console.log(module.emitStackIR(true));
