1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Tue Jan 26 05:54:37 2016 +0100
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Tue Jan 26 06:57:30 2016 +0100
1.3 @@ -1474,7 +1474,8 @@
1.4 String[] fi = jc.getFieldInfoName(indx);
1.5 final int type = VarType.fromFieldType(fi[2].charAt(0));
1.6 String ac = accessClassFalse(mangleClassName(fi[0]));
1.7 - String af = accessField(ac, null, fi);
1.8 + FieldData field = findField(fi);
1.9 + String af = accessField(ac, field, fi);
1.10 smapper.assign(this, type, af + "()");
1.11 i += 2;
1.12 addReference(fi[0]);
2.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Tue Jan 26 05:54:37 2016 +0100
2.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Tue Jan 26 06:57:30 2016 +0100
2.3 @@ -320,12 +320,14 @@
2.4 @Override
2.5 protected String accessField(String object, FieldData field, String[] fieldInfoName)
2.6 throws IOException {
2.7 - if (field != null) {
2.8 + if (field != null && !field.isStatic()) {
2.9 return "fld_" + object + "_" + field.getName();
2.10 } else {
2.11 String mangledName = "_" + fieldInfoName[1];
2.12 - return accessNonVirtualMember(object, mangledName, null);
2.13 - }
2.14 + return accessNonVirtualMember(
2.15 + object, mangledName, field != null ? field.cls : null
2.16 + );
2.17 + }
2.18 }
2.19
2.20 @Override