vm/src/main/java/org/apidesign/vm4brwsr/VMLazy.java
brancharithmetic
changeset 755 5652acd48509
parent 592 5e13b1ac2886
     1.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/VMLazy.java	Sat Jan 26 08:47:05 2013 +0100
     1.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/VMLazy.java	Mon Feb 25 19:00:08 2013 +0100
     1.3 @@ -20,6 +20,7 @@
     1.4  import java.io.ByteArrayInputStream;
     1.5  import java.io.IOException;
     1.6  import java.io.InputStream;
     1.7 +import java.lang.reflect.Array;
     1.8  import org.apidesign.bck2brwsr.core.JavaScriptBody;
     1.9  
    1.10  /**
    1.11 @@ -38,23 +39,19 @@
    1.12      static void init() {
    1.13      }
    1.14      
    1.15 -    @JavaScriptBody(args={"l", "res", "args" }, body = ""
    1.16 -        + "\ntry {"
    1.17 -        + "\n  return args[0](res.toString());"
    1.18 -        + "\n} catch (x) {"
    1.19 -        + "\n  throw Object.getOwnPropertyNames(l.vm).toString() + x.toString();"
    1.20 -        + "\n}")
    1.21 -    private static native byte[] read(Object l, String res, Object[] args);
    1.22 -    
    1.23      static Object load(Object loader, String name, Object[] arguments) 
    1.24      throws IOException, ClassNotFoundException {
    1.25          return new VMLazy(loader, arguments).load(name, false);
    1.26      }
    1.27      
    1.28 +    static byte[] loadBytes(Object loader, String name, Object[] arguments) throws Exception {
    1.29 +        return Zips.loadFromCp(arguments, name);
    1.30 +    }
    1.31 +    
    1.32      private Object load(String name, boolean instance)
    1.33      throws IOException, ClassNotFoundException {
    1.34          String res = name.replace('.', '/') + ".class";
    1.35 -        byte[] arr = read(loader, res, args);
    1.36 +        byte[] arr = Zips.loadFromCp(args, res);
    1.37          if (arr == null) {
    1.38              throw new ClassNotFoundException(name);
    1.39          }