# HG changeset patch # User Jaroslav Tulach # Date 1453695265 -3600 # Node ID 34efbdde4eca54a55fa766c85ec45b624e736481 # Parent 826eb936c9a82abf23440efcd657c8749cd63579 accessField doesn't need the second argument, it can compute it from the 3rd diff -r 826eb936c9a8 -r 34efbdde4eca rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun Jan 24 12:08:45 2016 +0100 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Mon Jan 25 05:14:25 2016 +0100 @@ -103,8 +103,9 @@ return "(refs_" + classOperation + " || (refs_" + classOperation + " = " + accessClass(classOperation) + "(false)))"; } - protected String accessField(String object, String mangledName, - String[] fieldInfoName) throws IOException { + protected String accessField(String object, String[] fieldInfoName) + throws IOException { + String mangledName = "_" + fieldInfoName[1]; return object + "." + mangledName; } @@ -1422,8 +1423,7 @@ final String mangleClassAccess = accessClassFalse(mangleClass); smapper.replace(this, type, "@2.call(@1)", smapper.getA(0), - accessField(mangleClassAccess, - "_" + fi[1], fi) + accessField(mangleClassAccess, fi) ); i += 2; addReference(fi[0]); @@ -1438,8 +1438,7 @@ emit(smapper, this, "@3.call(@2, @1);", smapper.popT(type), smapper.popA(), - accessField(mangleClassAccess, - "_" + fi[1], fi)); + accessField(mangleClassAccess, fi)); i += 2; addReference(fi[0]); break; @@ -1449,7 +1448,7 @@ String[] fi = jc.getFieldInfoName(indx); final int type = VarType.fromFieldType(fi[2].charAt(0)); String ac = accessClassFalse(mangleClassName(fi[0])); - String af = accessField(ac, "_" + fi[1], fi); + String af = accessField(ac, fi); smapper.assign(this, type, af + "()"); i += 2; addReference(fi[0]); diff -r 826eb936c9a8 -r 34efbdde4eca rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Sun Jan 24 12:08:45 2016 +0100 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Mon Jan 25 05:14:25 2016 +0100 @@ -310,12 +310,13 @@ } @Override - protected String accessField(String object, String mangledName, - String[] fieldInfoName) throws IOException { + protected String accessField(String object, String[] fieldInfoName) + throws IOException { final FieldData field = classDataCache.findField(fieldInfoName[0], fieldInfoName[1], fieldInfoName[2]); + String mangledName = "_" + fieldInfoName[1]; return accessNonVirtualMember(object, mangledName, (field != null) ? field.cls : null); }