      .replace(/[\n]/g, '\\n')
      .replace(/[\r]/g, '\\r')
      .replace(/[\t]/g, '\\t')
+
+# JS's maximum representable integer
+max_number = gLong.fromNumber(Math.pow(2,53))
 
 compile_class_handlers =
   PushOpcode: (b) -> b.push @value

_ = require '../third_party/_.js'
util = require './util'
{Method} = require './methods'
{c2t} = require './types'

      # runtime, but for now we can assume it is
      b.push "rs.class_lookup(c2t('#{@str_constant.value}')), true)"
    else if @name is 'ldc2_w'
      if val?.greaterThan?(max_number)
        b.push2 "gLong.fromBits(#{val.getLowBits()},#{val.getHighBits()})"
      else if val?.toNumber?
        b.push2 "gLong.fromNumber(#{val})"
      else
        b.push2 val
    else
      b.push val
  ArrayLoadOpcode: (b) ->
