import { table } from 'env';

function asmFunc(global, env) {
 var FUNCTION_TABLE = env.table;
 var Math_imul = global.Math.imul;
 var Math_fround = global.Math.fround;
 var Math_abs = global.Math.abs;
 var Math_clz32 = global.Math.clz32;
 var Math_min = global.Math.min;
 var Math_max = global.Math.max;
 var Math_floor = global.Math.floor;
 var Math_ceil = global.Math.ceil;
 var Math_sqrt = global.Math.sqrt;
 var abort = env.abort;
 var nan = global.NaN;
 var infinity = global.Infinity;
 function main() {
  FUNCTION_TABLE[1](1) | 0;
  FUNCTION_TABLE[4](1) | 0;
  FUNCTION_TABLE[2](1) | 0;
  FUNCTION_TABLE[8](7) | 0;
 }
 
 function foo($0) {
  $0 = $0 | 0;
  return 1;
 }
 
 function bar($0) {
  $0 = $0 | 0;
  return 2;
 }
 
 function baz($0) {
  $0 = $0 | 0;
  return 3;
 }
 
 FUNCTION_TABLE[1] = foo;
 FUNCTION_TABLE[2] = bar;
 FUNCTION_TABLE[3] = baz;
 return {
  "main": main
 };
}

var retasmFunc = asmFunc({
    Math,
    Int8Array,
    Uint8Array,
    Int16Array,
    Uint16Array,
    Int32Array,
    Uint32Array,
    Float32Array,
    Float64Array,
    NaN,
    Infinity
  }, {
    abort: function() { throw new Error('abort'); },
    table
  });
export var main = retasmFunc.main;