(module
 (type $0 (array (mut i8)))
 (type $1 (struct (field (mut i16)) (field (mut f64))))
 (type $2 (array (mut funcref)))
 (type $3 (func (param i32 i32) (result i32)))
 (type $4 (func))
 (global $struct-global (mut (ref null $1)) (struct.new_default $1))
 (global $array-global (mut (ref null $0)) (array.new_default $0
  (i32.const 4)
 ))
 (global $funcArray-global (mut (ref null $2)) (array.new_default $2
  (i32.const 4)
 ))
 (memory $0 1)
 (data $0 (i32.const 0) "\04\03\02\01")
 (table $0 1 funcref)
 (elem $0 (i32.const 0) $add)
 (func $add (type $3) (param $0 i32) (param $1 i32) (result i32)
  (i32.add
   (local.get $0)
   (local.get $1)
  )
 )
 (func $main (type $4)
  (drop
   (struct.new $1
    (i32.const 1)
    (f64.const 2.3)
   )
  )
  (drop
   (struct.new_default $1)
  )
  (drop
   (struct.get_s $1 0
    (global.get $struct-global)
   )
  )
  (struct.set $1 1
   (global.get $struct-global)
   (f64.const 1.23)
  )
  (drop
   (array.new $0
    (i32.const 0)
    (i32.const 1)
   )
  )
  (drop
   (array.new_default $0
    (i32.const 1)
   )
  )
  (drop
   (array.new_fixed $0 3
    (i32.const 1)
    (i32.const 2)
    (i32.const 3)
   )
  )
  (drop
   (array.new_data $0 $0
    (i32.const 0)
    (i32.const 4)
   )
  )
  (drop
   (array.new_elem $2 $0
    (i32.const 0)
    (i32.const 1)
   )
  )
  (drop
   (array.get_s $0
    (global.get $array-global)
    (i32.const 0)
   )
  )
  (array.set $0
   (global.get $array-global)
   (i32.const 1)
   (i32.const 2)
  )
  (drop
   (array.len
    (global.get $array-global)
   )
  )
  (array.fill $0
   (global.get $array-global)
   (i32.const 0)
   (i32.const 1)
   (i32.const 2)
  )
  (array.copy $0 $0
   (global.get $array-global)
   (i32.const 0)
   (global.get $array-global)
   (i32.const 1)
   (i32.const 2)
  )
  (array.init_data $0 $0
   (global.get $array-global)
   (i32.const 0)
   (i32.const 1)
   (i32.const 2)
  )
  (array.init_elem $2 $0
   (global.get $funcArray-global)
   (i32.const 0)
   (i32.const 1)
   (i32.const 2)
  )
  (drop
   (string.const "hello \f0\9f\8c\8e")
  )
 )
)

