diff -r 5e13b1ac2886 -r 5652acd48509 vm/src/main/java/org/apidesign/vm4brwsr/VMLazy.java --- a/vm/src/main/java/org/apidesign/vm4brwsr/VMLazy.java Sat Jan 26 08:47:05 2013 +0100 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/VMLazy.java Mon Feb 25 19:00:08 2013 +0100 @@ -20,6 +20,7 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; +import java.lang.reflect.Array; import org.apidesign.bck2brwsr.core.JavaScriptBody; /** @@ -38,23 +39,19 @@ static void init() { } - @JavaScriptBody(args={"l", "res", "args" }, body = "" - + "\ntry {" - + "\n return args[0](res.toString());" - + "\n} catch (x) {" - + "\n throw Object.getOwnPropertyNames(l.vm).toString() + x.toString();" - + "\n}") - private static native byte[] read(Object l, String res, Object[] args); - static Object load(Object loader, String name, Object[] arguments) throws IOException, ClassNotFoundException { return new VMLazy(loader, arguments).load(name, false); } + static byte[] loadBytes(Object loader, String name, Object[] arguments) throws Exception { + return Zips.loadFromCp(arguments, name); + } + private Object load(String name, boolean instance) throws IOException, ClassNotFoundException { String res = name.replace('.', '/') + ".class"; - byte[] arr = read(loader, res, args); + byte[] arr = Zips.loadFromCp(args, res); if (arr == null) { throw new ClassNotFoundException(name); }