           AtomicLong: [
             o 'VMSupportsCS8()Z', -> true
           ]
+      zip:
+        ZipFile: [
+          o 'open(Ljava/lang/String;IJZ)J', (rs,fname,mode,mtime,use_mmap) ->
+              throw "Zipfile loading is NYI. Tried to open: #{rs.jvm2js_str(fname)}"
+        ]
   sun:
     misc:
       VM: [

      FileInputStream: [
        o 'available()I', (rs) -> 0 # we never buffer anything, so this is always zero
        o 'readBytes([BII)I', (rs, _this, byte_arr, offset, n_bytes) ->
            result = null # will be filled in after the yield
            rs.curr_frame().resume = -> result
            throw new util.YieldException (cb) ->

    throw "field #{offset} doesn't exist in class #{cls.this_class}" unless cls.super_class?
    cls = rs.class_lookup(cls.super_class)
  cls.fields[offset]

get_filesystem_module = (module_name) ->
  # used for things like 'fs' and 'path'
  try
    mod = require module_name
  catch e  #TODO: add a browser-friendly interface to the localstorage psuedo-fs
    util.java_throw 'java/lang/UnsupportedOperationException', 'Filesystem ops are not supported in the browser'
  mod

stat_file = (fname) ->
  fs = get_filesystem_module 'fs'
  try 
    fs.statSync(fname)
  catch e
    null

native_methods =
  java:
