1.1 --- a/rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/ManifestInputStream.java Tue Apr 26 08:05:09 2016 +0200
1.2 +++ b/rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/ManifestInputStream.java Tue Apr 26 08:35:46 2016 +0200
1.3 @@ -27,6 +27,7 @@
1.4 import java.io.FilterInputStream;
1.5 import java.io.IOException;
1.6 import java.io.InputStream;
1.7 +import org.apidesign.bck2brwsr.core.Exported;
1.8
1.9 /*
1.10 * A fast buffered input stream for parsing manifest files.
1.11 @@ -34,6 +35,7 @@
1.12 * Taken from java.util.jar.Manifest.FastInputStream and modified to be
1.13 * independent of other Manifest functionality.
1.14 */
1.15 +@Exported
1.16 public abstract class ManifestInputStream extends FilterInputStream {
1.17 private byte[] buf;
1.18 private int count = 0;
2.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Tue Apr 26 08:05:09 2016 +0200
2.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Tue Apr 26 08:35:46 2016 +0200
2.3 @@ -583,6 +583,7 @@
2.4 + " vm['registerResource'] = null;\n"
2.5 + " var knownExtensions = extensions.length;\n"
2.6 + " var loader = {};\n"
2.7 + + " var classPath;\n"
2.8 + " var loadBytes = function(name, skip) {\n"
2.9 + " skip = typeof skip == 'number' ? skip : 0;\n"
2.10 + " var arr = resources[name];\n"
2.11 @@ -602,10 +603,21 @@
2.12 + " args[i] = null;\n"
2.13 + " } else if (typeof at === 'function') ret = at(name, skip);\n"
2.14 + " else {\n"
2.15 - + " var cp = vm['org_apidesign_vm4brwsr_ClassPath'];\n"
2.16 - + " if (!cp) throw 'Core Java library not registered. Cannot load from ' + at;\n"
2.17 - + " ret = cp(false).\n"
2.18 - + " loadBytes___3BLjava_lang_String_2Ljava_lang_Object_2II(name, args, i, skip);\n"
2.19 + + " if (classPath === undefined) {\n"
2.20 + + " classPath = null;\n"
2.21 + + " try {\n"
2.22 + + " classPath = vm.loadClass('org.apidesign.vm4brwsr.ClassPath');\n"
2.23 + + " } catch (err) {\n"
2.24 + + " }\n"
2.25 + + " }\n"
2.26 + + " if (!classPath) {\n"
2.27 + + " if (name !== 'org/apidesign/vm4brwsr/ClassPath.class') {\n"
2.28 + + " throw 'Core Java library not registered. Cannot load from ' + at;\n"
2.29 + + " }\n"
2.30 + + " ret = null;\n"
2.31 + + " } else {\n"
2.32 + + " ret = classPath['loadBytes___3BLjava_lang_String_2Ljava_lang_Object_2II'](name, args, i, skip);\n"
2.33 + + " }\n"
2.34 + " }\n"
2.35 + " if (ret) return ret;\n"
2.36 + " }\n"