1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun Nov 09 10:36:08 2014 +0100
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun Nov 23 17:05:32 2014 +0100
1.3 @@ -146,9 +146,10 @@
1.4
1.5 protected String compile(ClassData classData) throws IOException {
1.6 this.jc = classData;
1.7 - this.callbacks = this.jc.getClassName().endsWith("/$JsCallbacks$");
1.8 - if (jc.getMajor_version() < 50) {
1.9 - throw new IOException("Can't compile " + jc.getClassName() + ". Class file version " + jc.getMajor_version() + "."
1.10 + final String cn = this.jc.getClassName();
1.11 + this.callbacks = cn.endsWith("/$JsCallbacks$");
1.12 + if (jc.getMajor_version() < 50 && !cn.endsWith("/package-info")) {
1.13 + throw new IOException("Can't compile " + cn + ". Class file version " + jc.getMajor_version() + "."
1.14 + jc.getMinor_version() + " - recompile with -target 1.6 (at least)."
1.15 );
1.16 }
1.17 @@ -177,8 +178,8 @@
1.18 if (arr[0].startsWith("/")) {
1.19 jsResource = arr[0];
1.20 } else {
1.21 - int last = jc.getClassName().lastIndexOf('/');
1.22 - jsResource = jc.getClassName().substring(0, last + 1).replace('.', '/') + arr[0];
1.23 + int last = cn.lastIndexOf('/');
1.24 + jsResource = cn.substring(0, last + 1).replace('.', '/') + arr[0];
1.25 }
1.26 } else {
1.27 jsResource = null;
1.28 @@ -293,7 +294,7 @@
1.29 append("\n CLS.$class = 'temp';");
1.30 append("\n CLS.$class = ");
1.31 append(accessClass("java_lang_Class(true);"));
1.32 - append("\n CLS.$class.jvmName = '").append(jc.getClassName()).append("';");
1.33 + append("\n CLS.$class.jvmName = '").append(cn).append("';");
1.34 append("\n CLS.$class.superclass = sprcls;");
1.35 append("\n CLS.$class.access = ").append(jc.getAccessFlags()+";");
1.36 append("\n CLS.$class.cnstr = CLS;");