Print out name of class which compilation failed
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Wed, 11 Mar 2015 16:04:59 +0100
changeset 1810260d731c9504
parent 1809 72a0dbfa2ae8
child 1811 ff2a253900ed
Print out name of class which compilation failed
rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
     1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Wed Mar 11 08:50:51 2015 +0100
     1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Wed Mar 11 16:04:59 2015 +0100
     1.3 @@ -156,6 +156,14 @@
     1.4      protected String compile(ClassData classData) throws IOException {
     1.5          this.jc = classData;
     1.6          final String cn = this.jc.getClassName();
     1.7 +        try {
     1.8 +            return compileImpl(cn);
     1.9 +        } catch (IOException ex) {
    1.10 +            throw new IOException("Cannot compile " + cn + ":", ex);
    1.11 +        }
    1.12 +    }
    1.13 +
    1.14 +    private String compileImpl(final String cn) throws IOException {
    1.15          this.callbacks = cn.endsWith("/$JsCallbacks$");
    1.16          if (jc.getMajor_version() < 50 && !cn.endsWith("/package-info")) {
    1.17              throw new IOException("Can't compile " + cn + ". Class file version " + jc.getMajor_version() + "."
    1.18 @@ -164,7 +172,7 @@
    1.19          }
    1.20          byte[] arrData = jc.findAnnotationData(true);
    1.21          {
    1.22 -            String[] arr = findAnnotation(arrData, jc, 
    1.23 +            String[] arr = findAnnotation(arrData, jc,
    1.24                  "org.apidesign.bck2brwsr.core.ExtraJavaScript", 
    1.25                  "resource", "processByteCode"
    1.26              );
    1.27 @@ -179,7 +187,7 @@
    1.28          }
    1.29          final String jsResource;
    1.30          {
    1.31 -            String[] arr = findAnnotation(arrData, jc, 
    1.32 +            String[] arr = findAnnotation(arrData, jc,
    1.33                  "net.java.html.js.JavaScriptResource", 
    1.34                  "value"
    1.35              );
    1.36 @@ -194,7 +202,7 @@
    1.37                  jsResource = null;
    1.38              }
    1.39          }
    1.40 -        String[] proto = findAnnotation(arrData, jc, 
    1.41 +        String[] proto = findAnnotation(arrData, jc,
    1.42              "org.apidesign.bck2brwsr.core.JavaScriptPrototype", 
    1.43              "container", "prototype"
    1.44          );
    1.45 @@ -229,16 +237,16 @@
    1.46                  }
    1.47                  append("\n  CLS.fld_").append(v.getName()).append(initField(v));
    1.48                  append("\n  m = c._").append(v.getName()).append(" = function (v) {")
    1.49 -                   .append("  if (arguments.length == 1) CLS.fld_").append(v.getName())
    1.50 -                   .append(" = v; return CLS.fld_").
    1.51 +                    .append("  if (arguments.length == 1) CLS.fld_").append(v.getName())
    1.52 +                    .append(" = v; return CLS.fld_").
    1.53                      append(v.getName()).append("; };");
    1.54              } else {
    1.55                  append("\n  m = c._").append(v.getName()).append(" = function (v) {")
    1.56 -                   .append("  if (arguments.length == 1) this.fld_").
    1.57 +                    .append("  if (arguments.length == 1) this.fld_").
    1.58                      append(className).append('_').append(v.getName())
    1.59 -                   .append(" = v; return this.fld_").
    1.60 +                    .append(" = v; return this.fld_").
    1.61                      append(className).append('_').append(v.getName())
    1.62 -                   .append("; };");
    1.63 +                    .append("; };");
    1.64              }
    1.65  
    1.66              declaredField(v, "c", "_" + v.getName());
    1.67 @@ -278,8 +286,8 @@
    1.68          if (jc.isInterface()) {
    1.69              for (MethodData m : jc.getMethods()) {
    1.70                  if ((m.getAccess() & ACC_ABSTRACT) == 0
    1.71 -                        && (m.getAccess() & ACC_STATIC) == 0
    1.72 -                        && (m.getAccess() & ACC_PRIVATE) == 0) {
    1.73 +                    && (m.getAccess() & ACC_STATIC) == 0
    1.74 +                    && (m.getAccess() & ACC_PRIVATE) == 0) {
    1.75                      final String mn = findMethodName(m, new StringBuilder());
    1.76                      append("\n        if (!x['").append(mn).append("']) Object.defineProperty(x, '").append(mn).append("', { value : c['").append(mn).append("']});");
    1.77                  }