1.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun Dec 02 21:00:12 2012 +0100
1.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun Dec 02 23:10:51 2012 +0100
1.3 @@ -102,10 +102,22 @@
1.4 append(sc.replace('/', '_')).append("(true);");
1.5 out.append("\n var c = p;");
1.6 } else {
1.7 - out.append("\n var p = ").append(proto[1]).append(";");
1.8 + out.append("\n var p = CLS.prototype = ").append(proto[1]).append(";");
1.9 out.append("\n var c = ").append(proto[0]).append(";");
1.10 }
1.11 for (MethodData m : jc.getMethods()) {
1.12 + byte[] onlyArr = m.findAnnotationData(true);
1.13 + String[] only = findAnnotation(onlyArr, jc,
1.14 + "org.apidesign.bck2brwsr.core.JavaScriptOnly",
1.15 + "name", "value"
1.16 + );
1.17 + if (only != null) {
1.18 + if (only[0] != null && only[1] != null) {
1.19 + out.append("\n p.").append(only[0]).append(" = ")
1.20 + .append(only[1]).append(";");
1.21 + }
1.22 + continue;
1.23 + }
1.24 if (m.isStatic()) {
1.25 generateStaticMethod("\n c.", m, toInitilize);
1.26 } else {
1.27 @@ -123,6 +135,18 @@
1.28 out.append("\n return new CLS();");
1.29 out.append("\n }");
1.30 for (FieldData v : jc.getFields()) {
1.31 + byte[] onlyArr = v.findAnnotationData(true);
1.32 + String[] only = findAnnotation(onlyArr, jc,
1.33 + "org.apidesign.bck2brwsr.core.JavaScriptOnly",
1.34 + "name", "value"
1.35 + );
1.36 + if (only != null) {
1.37 + if (only[0] != null && only[1] != null) {
1.38 + out.append("\n p.").append(only[0]).append(" = ")
1.39 + .append(only[1]).append(";");
1.40 + }
1.41 + continue;
1.42 + }
1.43 if (!v.isStatic()) {
1.44 out.append("\n this.fld_").
1.45 append(v.getName()).append(initField(v));