1.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Tue Nov 20 21:24:01 2012 +0100
1.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Wed Nov 21 21:03:10 2012 +0100
1.3 @@ -81,12 +81,6 @@
1.4 generateInstanceMethod(m);
1.5 }
1.6 }
1.7 - for (FieldData v : jc.getFields()) {
1.8 - if (v.isStatic()) {
1.9 - generateStaticField(v);
1.10 - }
1.11 - }
1.12 -
1.13 final String className = className(jc);
1.14 out.append("\nfunction ").append(className);
1.15 out.append("() {");
1.16 @@ -101,6 +95,11 @@
1.17 append(".prototype.$instOf_").append(className).append(") {");
1.18 out.append("\n return new ").append(className).append(";");
1.19 out.append("\n }");
1.20 + for (FieldData v : jc.getFields()) {
1.21 + if (v.isStatic()) {
1.22 + generateStaticField(v);
1.23 + }
1.24 + }
1.25 // ClassName sc = jc.getSuperClass();
1.26 String sc = jc.getSuperClassName(); // with _
1.27 if (sc != null) {
1.28 @@ -684,7 +683,7 @@
1.29 int indx = readIntArg(byteCodes, i);
1.30 String[] fi = jc.getFieldInfoName(indx);
1.31 out.append("stack.push(").append(fi[0].replace('/', '_'));
1.32 - out.append('_').append(fi[1]).append(");");
1.33 + out.append('.').append(fi[1]).append(");");
1.34 i += 2;
1.35 addReference(fi[0]);
1.36 break;
1.37 @@ -693,7 +692,7 @@
1.38 int indx = readIntArg(byteCodes, i);
1.39 String[] fi = jc.getFieldInfoName(indx);
1.40 out.append(fi[0].replace('/', '_'));
1.41 - out.append('_').append(fi[1]).append(" = stack.pop();");
1.42 + out.append('.').append(fi[1]).append(" = stack.pop();");
1.43 i += 2;
1.44 addReference(fi[0]);
1.45 break;
1.46 @@ -848,9 +847,9 @@
1.47 }
1.48
1.49 private void generateStaticField(FieldData v) throws IOException {
1.50 - out.append("\nvar ")
1.51 + out.append("\n ")
1.52 .append(className(jc))
1.53 - .append('_').append(v.getName()).append(initField(v));
1.54 + .append('.').append(v.getName()).append(initField(v));
1.55 }
1.56
1.57 private String findMethodName(MethodData m, StringBuilder cnt) {