Don't obfuscate names of fields in objects - otherwise fields provided by two modules may clash
1.1 --- a/rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/reflect/AnnotationImpl.java Fri Apr 29 07:35:06 2016 +0200
1.2 +++ b/rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/reflect/AnnotationImpl.java Tue May 10 04:52:05 2016 +0200
1.3 @@ -41,7 +41,7 @@
1.4 + "function r(anno, val, prop, m) {\n"
1.5 + " var v = val[prop];\n"
1.6 + " if (typeof v === 'undefined') {\n"
1.7 - + " var cls = anno.fld_org_apidesign_bck2brwsr_emul_reflect_AnnotationImpl_type.cnstr;\n"
1.8 + + " var cls = anno['fld_org_apidesign_bck2brwsr_emul_reflect_AnnotationImpl_type'].cnstr;\n"
1.9 + " v = cls.prototype[m]();\n"
1.10 + " }\n"
1.11 + " return v;\n"
2.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Fri Apr 29 07:35:06 2016 +0200
2.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Tue May 10 04:52:05 2016 +0200
2.3 @@ -252,18 +252,18 @@
2.4 continue;
2.5 }
2.6 }
2.7 - append("\n CLS.fld_").append(v.getName()).append(initField(v));
2.8 + append("\n CLS['fld_").append(v.getName()).append("']").append(initField(v));
2.9 append("\n m = c._").append(v.getName()).append(" = function (v) {")
2.10 - .append(" if (arguments.length == 1) CLS.fld_").append(v.getName())
2.11 - .append(" = v; return CLS.fld_").
2.12 - append(v.getName()).append("; };");
2.13 + .append(" if (arguments.length == 1) CLS['fld_").append(v.getName())
2.14 + .append("'] = v; return CLS['fld_").
2.15 + append(v.getName()).append("']; };");
2.16 } else {
2.17 append("\n m = c._").append(v.getName()).append(" = function (v) {")
2.18 - .append(" if (arguments.length == 1) this.fld_").
2.19 + .append(" if (arguments.length == 1) this['fld_").
2.20 append(className).append('_').append(v.getName())
2.21 - .append(" = v; return this.fld_").
2.22 + .append("'] = v; return this['fld_").
2.23 append(className).append('_').append(v.getName())
2.24 - .append("; };");
2.25 + .append("']; };");
2.26 }
2.27
2.28 declaredField(v, "c", "_" + v.getName());
2.29 @@ -375,9 +375,9 @@
2.30 byte[] onlyArr = v.findAnnotationData(true);
2.31 if (javaScriptOnly(onlyArr)) continue;
2.32 if (!v.isStatic()) {
2.33 - append("\n this.fld_").
2.34 + append("\n this['fld_").
2.35 append(className).append('_').
2.36 - append(v.getName()).append(initField(v));
2.37 + append(v.getName()).append("']").append(initField(v));
2.38 }
2.39 }
2.40 append("\n return this;");
2.41 @@ -1453,7 +1453,7 @@
2.42 );
2.43 } else {
2.44 final String fieldOwner = mangleClassName(field.cls.getClassName());
2.45 - smapper.replace(this, type, "@1.@2",
2.46 + smapper.replace(this, type, "@1@2",
2.47 smapper.getA(0),
2.48 accessField(fieldOwner, field, fi)
2.49 );
2.50 @@ -1477,7 +1477,7 @@
2.51 );
2.52 } else {
2.53 final String fieldOwner = mangleClassName(field.cls.getClassName());
2.54 - emit(smapper, this, "@2.@3 = @1;",
2.55 + emit(smapper, this, "@2@3 = @1;",
2.56 smapper.popT(type),
2.57 smapper.popA(),
2.58 accessField(fieldOwner, field, fi)
3.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Fri Apr 29 07:35:06 2016 +0200
3.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Tue May 10 04:52:05 2016 +0200
3.3 @@ -363,7 +363,7 @@
3.4 protected String accessField(String object, FieldData field, String[] fieldInfoName)
3.5 throws IOException {
3.6 if (field != null && !field.isStatic()) {
3.7 - return "fld_" + object + "_" + field.getName();
3.8 + return "['fld_" + object + "_" + field.getName() + "']";
3.9 } else {
3.10 String mangledName = "_" + fieldInfoName[1];
3.11 return accessNonVirtualMember(