# HG changeset patch # User Jaroslav Tulach # Date 1453651217 -3600 # Node ID 3781fd782472513d47fcd6e4047cd7be5cb147cf # Parent 71e5cd5b29bc2a03fed24c03b5c826a08d3d5e20 Essential speedup when reading fields diff -r 71e5cd5b29bc -r 3781fd782472 rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun Jan 24 14:31:36 2016 +0100 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun Jan 24 17:00:17 2016 +0100 @@ -1427,10 +1427,9 @@ final int type = VarType.fromFieldType(fi[2].charAt(0)); final String mangleClass = mangleClassName(fi[0]); final String mangleClassAccess = accessClassFalse(mangleClass); - smapper.replace(this, type, "@2.call(@1)", - smapper.getA(0), - accessField(mangleClassAccess, - "_" + fi[1], fi) + emit(smapper, this, "var @2 = @1.fld_@4_@3 || @5.call(@1);", + smapper.popA(), smapper.pushT(type), fi[1], mangleClass, + accessField(mangleClassAccess, "_" + fi[1], fi) ); i += 2; addReference(fi[0]);