rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
changeset 1725 489fe829817f
parent 1722 fd3a354d6e8f
child 1727 86e61729f754
     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;");