# HG changeset patch # User Jaroslav Tulach # Date 1416758732 -3600 # Node ID 489fe829817fccc4df4811efb62e12ef53ac9052 # Parent 50ad005d15979b6a22be6346e236f943da7d97c0 Looks like package-info classes have too old classfile version, but we can accept them as they don't contain any code (the only reason why we require 1.6 target). diff -r 50ad005d1597 -r 489fe829817f rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Thu Nov 20 05:56:47 2014 +0100 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun Nov 23 17:05:32 2014 +0100 @@ -146,9 +146,10 @@ protected String compile(ClassData classData) throws IOException { this.jc = classData; - this.callbacks = this.jc.getClassName().endsWith("/$JsCallbacks$"); - if (jc.getMajor_version() < 50) { - throw new IOException("Can't compile " + jc.getClassName() + ". Class file version " + jc.getMajor_version() + "." + final String cn = this.jc.getClassName(); + this.callbacks = cn.endsWith("/$JsCallbacks$"); + if (jc.getMajor_version() < 50 && !cn.endsWith("/package-info")) { + throw new IOException("Can't compile " + cn + ". Class file version " + jc.getMajor_version() + "." + jc.getMinor_version() + " - recompile with -target 1.6 (at least)." ); } @@ -177,8 +178,8 @@ if (arr[0].startsWith("/")) { jsResource = arr[0]; } else { - int last = jc.getClassName().lastIndexOf('/'); - jsResource = jc.getClassName().substring(0, last + 1).replace('.', '/') + arr[0]; + int last = cn.lastIndexOf('/'); + jsResource = cn.substring(0, last + 1).replace('.', '/') + arr[0]; } } else { jsResource = null; @@ -293,7 +294,7 @@ append("\n CLS.$class = 'temp';"); append("\n CLS.$class = "); append(accessClass("java_lang_Class(true);")); - append("\n CLS.$class.jvmName = '").append(jc.getClassName()).append("';"); + append("\n CLS.$class.jvmName = '").append(cn).append("';"); append("\n CLS.$class.superclass = sprcls;"); append("\n CLS.$class.access = ").append(jc.getAccessFlags()+";"); append("\n CLS.$class.cnstr = CLS;");