1.1 --- a/emul/src/main/java/java/lang/Class.java Tue Jan 08 16:32:11 2013 +0100
1.2 +++ b/emul/src/main/java/java/lang/Class.java Thu Jan 10 20:15:11 2013 +0100
1.3 @@ -25,6 +25,7 @@
1.4
1.5 package java.lang;
1.6
1.7 +import java.io.ByteArrayInputStream;
1.8 import org.apidesign.bck2brwsr.emul.AnnotationImpl;
1.9 import java.io.InputStream;
1.10 import java.lang.annotation.Annotation;
1.11 @@ -881,13 +882,14 @@
1.12 */
1.13 public InputStream getResourceAsStream(String name) {
1.14 name = resolveName(name);
1.15 - ClassLoader cl = getClassLoader0();
1.16 - if (cl==null) {
1.17 - // A system class.
1.18 - return ClassLoader.getSystemResourceAsStream(name);
1.19 - }
1.20 - return cl.getResourceAsStream(name);
1.21 - }
1.22 + byte[] arr = getResourceAsStream0(name);
1.23 + return arr == null ? null : new ByteArrayInputStream(arr);
1.24 + }
1.25 +
1.26 + @JavaScriptBody(args = "name", body =
1.27 + "return (vm.loadBytes) ? vm.loadBytes(name) : null;"
1.28 + )
1.29 + private static native byte[] getResourceAsStream0(String name);
1.30
1.31 /**
1.32 * Finds a resource with a given name. The rules for searching resources
1.33 @@ -925,7 +927,7 @@
1.34 */
1.35 public java.net.URL getResource(String name) {
1.36 name = resolveName(name);
1.37 - ClassLoader cl = getClassLoader0();
1.38 + ClassLoader cl = null;
1.39 if (cl==null) {
1.40 // A system class.
1.41 return ClassLoader.getSystemResource(name);
1.42 @@ -989,9 +991,6 @@
1.43 throw new SecurityException();
1.44 }
1.45
1.46 - // Package-private to allow ClassLoader access
1.47 - native ClassLoader getClassLoader0();
1.48 -
1.49 /**
1.50 * Returns the {@code Class} representing the component type of an
1.51 * array. If this class does not represent an array class this method