# HG changeset patch # User Jaroslav Tulach # Date 1426086299 -3600 # Node ID 260d731c9504520517867f87f8070cd867333186 # Parent 72a0dbfa2ae8148bf832e59e6a4dd5dc451be78e Print out name of class which compilation failed diff -r 72a0dbfa2ae8 -r 260d731c9504 rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Wed Mar 11 08:50:51 2015 +0100 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Wed Mar 11 16:04:59 2015 +0100 @@ -156,6 +156,14 @@ protected String compile(ClassData classData) throws IOException { this.jc = classData; final String cn = this.jc.getClassName(); + try { + return compileImpl(cn); + } catch (IOException ex) { + throw new IOException("Cannot compile " + cn + ":", ex); + } + } + + private String compileImpl(final String cn) throws IOException { 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() + "." @@ -164,7 +172,7 @@ } byte[] arrData = jc.findAnnotationData(true); { - String[] arr = findAnnotation(arrData, jc, + String[] arr = findAnnotation(arrData, jc, "org.apidesign.bck2brwsr.core.ExtraJavaScript", "resource", "processByteCode" ); @@ -179,7 +187,7 @@ } final String jsResource; { - String[] arr = findAnnotation(arrData, jc, + String[] arr = findAnnotation(arrData, jc, "net.java.html.js.JavaScriptResource", "value" ); @@ -194,7 +202,7 @@ jsResource = null; } } - String[] proto = findAnnotation(arrData, jc, + String[] proto = findAnnotation(arrData, jc, "org.apidesign.bck2brwsr.core.JavaScriptPrototype", "container", "prototype" ); @@ -229,16 +237,16 @@ } append("\n CLS.fld_").append(v.getName()).append(initField(v)); append("\n m = c._").append(v.getName()).append(" = function (v) {") - .append(" if (arguments.length == 1) CLS.fld_").append(v.getName()) - .append(" = v; return CLS.fld_"). + .append(" if (arguments.length == 1) CLS.fld_").append(v.getName()) + .append(" = v; return CLS.fld_"). append(v.getName()).append("; };"); } else { append("\n m = c._").append(v.getName()).append(" = function (v) {") - .append(" if (arguments.length == 1) this.fld_"). + .append(" if (arguments.length == 1) this.fld_"). append(className).append('_').append(v.getName()) - .append(" = v; return this.fld_"). + .append(" = v; return this.fld_"). append(className).append('_').append(v.getName()) - .append("; };"); + .append("; };"); } declaredField(v, "c", "_" + v.getName()); @@ -278,8 +286,8 @@ if (jc.isInterface()) { for (MethodData m : jc.getMethods()) { if ((m.getAccess() & ACC_ABSTRACT) == 0 - && (m.getAccess() & ACC_STATIC) == 0 - && (m.getAccess() & ACC_PRIVATE) == 0) { + && (m.getAccess() & ACC_STATIC) == 0 + && (m.getAccess() & ACC_PRIVATE) == 0) { final String mn = findMethodName(m, new StringBuilder()); append("\n if (!x['").append(mn).append("']) Object.defineProperty(x, '").append(mn).append("', { value : c['").append(mn).append("']});"); }