1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun Jan 24 12:08:45 2016 +0100
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Mon Jan 25 05:14:25 2016 +0100
1.3 @@ -103,8 +103,9 @@
1.4 return "(refs_" + classOperation + " || (refs_" + classOperation + " = " + accessClass(classOperation) + "(false)))";
1.5 }
1.6
1.7 - protected String accessField(String object, String mangledName,
1.8 - String[] fieldInfoName) throws IOException {
1.9 + protected String accessField(String object, String[] fieldInfoName)
1.10 + throws IOException {
1.11 + String mangledName = "_" + fieldInfoName[1];
1.12 return object + "." + mangledName;
1.13 }
1.14
1.15 @@ -1422,8 +1423,7 @@
1.16 final String mangleClassAccess = accessClassFalse(mangleClass);
1.17 smapper.replace(this, type, "@2.call(@1)",
1.18 smapper.getA(0),
1.19 - accessField(mangleClassAccess,
1.20 - "_" + fi[1], fi)
1.21 + accessField(mangleClassAccess, fi)
1.22 );
1.23 i += 2;
1.24 addReference(fi[0]);
1.25 @@ -1438,8 +1438,7 @@
1.26 emit(smapper, this, "@3.call(@2, @1);",
1.27 smapper.popT(type),
1.28 smapper.popA(),
1.29 - accessField(mangleClassAccess,
1.30 - "_" + fi[1], fi));
1.31 + accessField(mangleClassAccess, fi));
1.32 i += 2;
1.33 addReference(fi[0]);
1.34 break;
1.35 @@ -1449,7 +1448,7 @@
1.36 String[] fi = jc.getFieldInfoName(indx);
1.37 final int type = VarType.fromFieldType(fi[2].charAt(0));
1.38 String ac = accessClassFalse(mangleClassName(fi[0]));
1.39 - String af = accessField(ac, "_" + fi[1], fi);
1.40 + String af = accessField(ac, fi);
1.41 smapper.assign(this, type, af + "()");
1.42 i += 2;
1.43 addReference(fi[0]);
2.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Sun Jan 24 12:08:45 2016 +0100
2.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Mon Jan 25 05:14:25 2016 +0100
2.3 @@ -310,12 +310,13 @@
2.4 }
2.5
2.6 @Override
2.7 - protected String accessField(String object, String mangledName,
2.8 - String[] fieldInfoName) throws IOException {
2.9 + protected String accessField(String object, String[] fieldInfoName)
2.10 + throws IOException {
2.11 final FieldData field =
2.12 classDataCache.findField(fieldInfoName[0],
2.13 fieldInfoName[1],
2.14 fieldInfoName[2]);
2.15 + String mangledName = "_" + fieldInfoName[1];
2.16 return accessNonVirtualMember(object, mangledName,
2.17 (field != null) ? field.cls : null);
2.18 }