rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
changeset 1962 9d46ae9d4a2e
parent 1936 ceff8546bbac
child 1965 973e52d4cabb
     1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Sun Apr 24 15:07:44 2016 +0200
     1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Tue May 10 04:52:05 2016 +0200
     1.3 @@ -252,18 +252,18 @@
     1.4                          continue;
     1.5                      }
     1.6                  }
     1.7 -                append("\n  CLS.fld_").append(v.getName()).append(initField(v));
     1.8 +                append("\n  CLS['fld_").append(v.getName()).append("']").append(initField(v));
     1.9                  append("\n  m = c._").append(v.getName()).append(" = function (v) {")
    1.10 -                    .append("  if (arguments.length == 1) CLS.fld_").append(v.getName())
    1.11 -                    .append(" = v; return CLS.fld_").
    1.12 -                    append(v.getName()).append("; };");
    1.13 +                    .append("  if (arguments.length == 1) CLS['fld_").append(v.getName())
    1.14 +                    .append("'] = v; return CLS['fld_").
    1.15 +                    append(v.getName()).append("']; };");
    1.16              } else {
    1.17                  append("\n  m = c._").append(v.getName()).append(" = function (v) {")
    1.18 -                    .append("  if (arguments.length == 1) this.fld_").
    1.19 +                    .append("  if (arguments.length == 1) this['fld_").
    1.20                      append(className).append('_').append(v.getName())
    1.21 -                    .append(" = v; return this.fld_").
    1.22 +                    .append("'] = v; return this['fld_").
    1.23                      append(className).append('_').append(v.getName())
    1.24 -                    .append("; };");
    1.25 +                    .append("']; };");
    1.26              }
    1.27  
    1.28              declaredField(v, "c", "_" + v.getName());
    1.29 @@ -375,9 +375,9 @@
    1.30              byte[] onlyArr = v.findAnnotationData(true);
    1.31              if (javaScriptOnly(onlyArr)) continue;
    1.32              if (!v.isStatic()) {
    1.33 -                append("\n    this.fld_").
    1.34 +                append("\n    this['fld_").
    1.35                      append(className).append('_').
    1.36 -                    append(v.getName()).append(initField(v));
    1.37 +                    append(v.getName()).append("']").append(initField(v));
    1.38              }
    1.39          }
    1.40          append("\n    return this;");
    1.41 @@ -1453,7 +1453,7 @@
    1.42                          );
    1.43                      } else {
    1.44                          final String fieldOwner = mangleClassName(field.cls.getClassName());
    1.45 -                        smapper.replace(this, type, "@1.@2",
    1.46 +                        smapper.replace(this, type, "@1@2",
    1.47                               smapper.getA(0),
    1.48                               accessField(fieldOwner, field, fi)
    1.49                          );
    1.50 @@ -1477,7 +1477,7 @@
    1.51                          );
    1.52                      } else {
    1.53                          final String fieldOwner = mangleClassName(field.cls.getClassName());
    1.54 -                        emit(smapper, this, "@2.@3 = @1;",
    1.55 +                        emit(smapper, this, "@2@3 = @1;",
    1.56                               smapper.popT(type),
    1.57                               smapper.popA(),
    1.58                               accessField(fieldOwner, field, fi)