       ]
       reflect:
         Array: [
-          o 'newArray(Ljava/lang/Class;I)Ljava/lang/Object;', (rs) ->
-            type = rs.get_obj(rs.curr_frame().locals[0]).obj.name
-            len = rs.curr_frame().locals[0]
-            rs.heap_newarray util.int_classname type, len
+          o 'newArray(L!/!/Class;I)L!/!/Object;', (rs) ->
+              type = rs.get_obj(rs.curr_frame().locals[0]).obj.name
+              len = rs.curr_frame().locals[0]
+              rs.heap_newarray util.int_classname type, len
         ]
       StrictMath: [
         o 'pow(DD)D', (rs) -> rs.push Math.pow(rs.cl(0),rs.cl(2)), null
       ]
       String: [
-        o 'intern()Ljava/lang/String;', (rs) -> 
+        o 'intern()L!/!/!;', (rs) ->
             str_ref = rs.curr_frame().locals[0]
             js_str = rs.jvm2js_str(rs.get_obj(str_ref))
             unless rs.string_pool[js_str]

  sun:
    misc:
      Unsafe: [
        o 'getUnsafe()Lsun/misc/Unsafe;', (rs) -> # avoid reflection
            rs.static_get({'class':'sun/misc/Unsafe','sig':{'name':'theUnsafe'}})
      ]
  

  java:
    lang:
      Class: [
        o 'getPrimitiveClass(L!/!/String;)L!/!/!;', (rs) ->
            str = rs.get_obj(rs.curr_frame().locals[0])
            carr = rs.get_obj(str.obj.value).obj.array
            name = (String.fromCharCode(c) for c in carr).join('') # XXX convert to unicode
            rs.push rs.set_obj 'java/lang/Class', { name: name }
        o 'getClassLoader0()L!/!/ClassLoader;', (rs) -> rs.push 0  # we don't need no stinkin classloaders
        o 'desiredAssertionStatus0(L!/!/!;)Z', (rs) -> rs.push 0 # we don't need no stinkin asserts
        o 'getName0()L!/!/String;', (rs) -> rs.push rs.init_string(rs.get_obj(rs.curr_frame().locals[0]).obj.name)
        o 'forName0(L!/!/String;ZL!/!/ClassLoader;)L!/!/!;', (rs) ->
            jvm_str = rs.get_obj(rs.curr_frame().locals[0])
            classname = rs.jvm2js_str(jvm_str).replace(/\./g,'/')
            throw "Class.forName0: Failed to load #{classname}" unless rs.class_lookup(classname)
            rs.push rs.set_obj 'java/lang/Class', { name:classname }
        o 'getComponentType()L!/!/!;', (rs) ->
            type = rs.get_obj(rs.curr_frame().locals[0]).obj.name
            component_type = /\[+(.*)/.exec(type)[1]
            rs.push rs.set_obj 'java/lang/Class', name:component_type
