First step towards calling directly into ClassPath and using VMLazy only for JIT compilation
1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ClassPath.java Wed May 14 14:03:14 2014 +0200
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ClassPath.java Wed May 14 15:57:52 2014 +0200
1.3 @@ -21,6 +21,7 @@
1.4 import java.io.IOException;
1.5 import java.io.InputStream;
1.6 import java.net.URL;
1.7 +import org.apidesign.bck2brwsr.core.Exported;
1.8 import org.apidesign.bck2brwsr.core.JavaScriptBody;
1.9
1.10 /** Conversion from classpath to load function.
1.11 @@ -41,7 +42,12 @@
1.12 private static native Object set(Object arr, int index, Object value);
1.13
1.14 private static boolean doingToZip;
1.15 - public static byte[] loadFromCp(Object classpath, String res, int skip)
1.16 +
1.17 +
1.18 + @Exported static byte[] loadBytes(Object loader, String name, Object[] arguments, int skip) throws Exception {
1.19 + return ClassPath.loadFromCp(arguments, name, skip);
1.20 + }
1.21 + static byte[] loadFromCp(Object classpath, String res, int skip)
1.22 throws IOException, ClassNotFoundException {
1.23 for (int i = 0; i < length(classpath); i++) {
1.24 Object c = at(classpath, i);
2.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Wed May 14 14:03:14 2014 +0200
2.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Wed May 14 15:57:52 2014 +0200
2.3 @@ -564,7 +564,7 @@
2.4 + " } else {\n"
2.5 + " var arrSize = 0;\n"
2.6 + " };\n"
2.7 - + " var ret = vm.org_apidesign_vm4brwsr_VMLazy(false).\n"
2.8 + + " var ret = vm['org_apidesign_vm4brwsr_ClassPath'](false).\n"
2.9 + " loadBytes___3BLjava_lang_Object_2Ljava_lang_String_2_3Ljava_lang_Object_2I(loader, name, args, skip);\n"
2.10 + " if (ret !== null) return ret;\n"
2.11 + " while (knownExtensions < extensions.length) {\n"
2.12 @@ -576,8 +576,6 @@
2.13 + " return (arr && arr.length > arrSize) ? arr[arrSize] : null;\n"
2.14 + " }\n"
2.15 + " vm.java_lang_reflect_Array(false);\n"
2.16 - + " vm.org_apidesign_vm4brwsr_VMLazy(false).\n"
2.17 - + " loadBytes___3BLjava_lang_Object_2Ljava_lang_String_2_3Ljava_lang_Object_2I(loader, null, args, 0);\n"
2.18 + " return loader;\n"
2.19 + " };\n");
2.20 append(
3.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VMLazy.java Wed May 14 14:03:14 2014 +0200
3.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VMLazy.java Wed May 14 15:57:52 2014 +0200
3.3 @@ -48,10 +48,6 @@
3.4 return new VMLazy(loader, arguments).defineClass(arr, name, false);
3.5 }
3.6
3.7 - static byte[] loadBytes(Object loader, String name, Object[] arguments, int skip) throws Exception {
3.8 - return ClassPath.loadFromCp(arguments, name, skip);
3.9 - }
3.10 -
3.11 private Object load(String name, boolean instance)
3.12 throws IOException, ClassNotFoundException {
3.13 String res = name.replace('.', '/') + ".class";