diff -r e7be3cb29a72 -r f3b685bd7243 vm/src/main/java/org/apidesign/vm4brwsr/GenJS.java --- a/vm/src/main/java/org/apidesign/vm4brwsr/GenJS.java Sun Sep 30 19:40:04 2012 -0700 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/GenJS.java Wed Oct 03 08:05:24 2012 -0700 @@ -48,24 +48,18 @@ } if (name.startsWith("java/") && !name.equals("java/lang/Object") - && !name.equals("java/lang/String") && !name.equals("java/lang/StringBuilder") && !name.equals("java/lang/AbstractStringBuilder") ) { continue; } - InputStream emul = GenJS.class.getResourceAsStream("emulation/" + name.replace('/', '_') + ".js"); - if (emul != null) { - readResource(emul, out); - continue; - } - InputStream is = GenJS.class.getClassLoader().getResourceAsStream(name + ".class"); if (is == null) { throw new IOException("Can't find class " + name); } + LinkedList scripts = new LinkedList(); try { - ByteCodeToJavaScript.compile(is, out, toProcess); + ByteCodeToJavaScript.compile(is, out, toProcess, scripts); } catch (RuntimeException ex) { if (out instanceof CharSequence) { CharSequence seq = (CharSequence)out; @@ -84,6 +78,13 @@ ); } } + for (String resource : scripts) { + InputStream emul = GenJS.class.getResourceAsStream(resource); + if (emul == null) { + throw new IOException("Can't find " + resource); + } + readResource(emul, out); + } } } private static void readResource(InputStream emul, Appendable out) throws IOException {