code: function unop(
    { value: value }: StackLocal,
    operation: Operation,
    createValue: any => StackLocal
  ): StackLocal {
    switch (operation) {
      case "abs":
        return createValue(value.abs());
  
      case "neg":
        return createValue(value.neg());
  
      case "clz":
        return createValue(value.clz());
  
      case "ctz":
        return createValue(value.ctz());
  
      case "popcnt":
        return createValue(value.popcnt());
  
      case "eqz":
        return i32.createValue(value.eqz());
  
      case "reinterpret/f32":
        return i32.createValue(value.reinterpret());
  
      case "reinterpret/f64":
        return i64.createValue(value.reinterpret());
    }
  
    throw new Error("Unsupported unop: " + operation);
  }
docs: https://webassembly.github.io/spec/core/exec/instructions.html#exec-binop