   iconst_3: { execute: (rs) -> rs.push new Primitive 3 }
   iconst_4: { execute: (rs) -> rs.push new Primitive 4 }
   iconst_5: { execute: (rs) -> rs.push new Primitive 5 }
-  lconst_0: { execute: (rs) -> rs.push new Primitive(gLong.ZERO), null }
+  lconst_0: { execute: (rs) -> rs.push new Primitive("gLong.ZERO"), null }
   istore_0: { execute: (rs) -> rs.put_cl 0, rs.pop() }
   istore_1: { execute: (rs) -> rs.put_cl 1, rs.pop() }
   istore_2: { execute: (rs) -> rs.put_cl 2, rs.pop() }

  imul: { execute: (rs) -> rs.push new BinaryOp ((a,b) ->
    "gLong.fromInt(#{a}).multiply(gLong.fromInt(#{b})).toInt()"), rs.pop(), rs.pop()
  }
  'ireturn': { execute: (rs) ->
    rv = rs.pop()
    rs.current_block += "return #{rv};"
    rs.finish_block()
  }
  'return': { execute: (rs) -> rs.current_block += 'return;'; rs.finish_block() }
}

root.compile = (class_file) ->

_ = require '../third_party/_.js'
util = require './util'

root = exports ? window.opcodes = {}
