# HG changeset patch # User Jaroslav Tulach # Date 1462848725 -7200 # Node ID 9d46ae9d4a2ed3ecd6eba48174b0f44812c22a07 # Parent 60cd3d14f1ae39c1bd4ee4c09c388095797e2141 Don't obfuscate names of fields in objects - otherwise fields provided by two modules may clash diff -r 60cd3d14f1ae -r 9d46ae9d4a2e rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/reflect/AnnotationImpl.java --- a/rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/reflect/AnnotationImpl.java Fri Apr 29 07:35:06 2016 +0200 +++ b/rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/reflect/AnnotationImpl.java Tue May 10 04:52:05 2016 +0200 @@ -41,7 +41,7 @@ + "function r(anno, val, prop, m) {\n" + " var v = val[prop];\n" + " if (typeof v === 'undefined') {\n" - + " var cls = anno.fld_org_apidesign_bck2brwsr_emul_reflect_AnnotationImpl_type.cnstr;\n" + + " var cls = anno['fld_org_apidesign_bck2brwsr_emul_reflect_AnnotationImpl_type'].cnstr;\n" + " v = cls.prototype[m]();\n" + " }\n" + " return v;\n" diff -r 60cd3d14f1ae -r 9d46ae9d4a2e rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Fri Apr 29 07:35:06 2016 +0200 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Tue May 10 04:52:05 2016 +0200 @@ -252,18 +252,18 @@ continue; } } - append("\n CLS.fld_").append(v.getName()).append(initField(v)); + append("\n CLS['fld_").append(v.getName()).append("']").append(initField(v)); append("\n m = c._").append(v.getName()).append(" = function (v) {") - .append(" if (arguments.length == 1) CLS.fld_").append(v.getName()) - .append(" = v; return CLS.fld_"). - append(v.getName()).append("; };"); + .append(" if (arguments.length == 1) CLS['fld_").append(v.getName()) + .append("'] = v; return CLS['fld_"). + append(v.getName()).append("']; };"); } else { append("\n m = c._").append(v.getName()).append(" = function (v) {") - .append(" if (arguments.length == 1) this.fld_"). + .append(" if (arguments.length == 1) this['fld_"). append(className).append('_').append(v.getName()) - .append(" = v; return this.fld_"). + .append("'] = v; return this['fld_"). append(className).append('_').append(v.getName()) - .append("; };"); + .append("']; };"); } declaredField(v, "c", "_" + v.getName()); @@ -375,9 +375,9 @@ byte[] onlyArr = v.findAnnotationData(true); if (javaScriptOnly(onlyArr)) continue; if (!v.isStatic()) { - append("\n this.fld_"). + append("\n this['fld_"). append(className).append('_'). - append(v.getName()).append(initField(v)); + append(v.getName()).append("']").append(initField(v)); } } append("\n return this;"); @@ -1453,7 +1453,7 @@ ); } else { final String fieldOwner = mangleClassName(field.cls.getClassName()); - smapper.replace(this, type, "@1.@2", + smapper.replace(this, type, "@1@2", smapper.getA(0), accessField(fieldOwner, field, fi) ); @@ -1477,7 +1477,7 @@ ); } else { final String fieldOwner = mangleClassName(field.cls.getClassName()); - emit(smapper, this, "@2.@3 = @1;", + emit(smapper, this, "@2@3 = @1;", smapper.popT(type), smapper.popA(), accessField(fieldOwner, field, fi) diff -r 60cd3d14f1ae -r 9d46ae9d4a2e rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Fri Apr 29 07:35:06 2016 +0200 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Tue May 10 04:52:05 2016 +0200 @@ -363,7 +363,7 @@ protected String accessField(String object, FieldData field, String[] fieldInfoName) throws IOException { if (field != null && !field.isStatic()) { - return "fld_" + object + "_" + field.getName(); + return "['fld_" + object + "_" + field.getName() + "']"; } else { String mangledName = "_" + fieldInfoName[1]; return accessNonVirtualMember(