rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
changeset 1704 2e69145b9feb
parent 1702 228f26fc1159
child 1706 65c6f805797f
     1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Tue Sep 23 21:52:27 2014 +0200
     1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Thu Sep 25 23:48:41 2014 +0200
     1.3 @@ -189,6 +189,7 @@
     1.4          final String className = className(jc);
     1.5          append("\n\n").append(assignClass(className));
     1.6          append("function ").append(className).append("() {");
     1.7 +        append("\n  var m;");
     1.8          append("\n  var CLS = ").append(className).append(';');
     1.9          append("\n  if (!CLS.$class) {");
    1.10          if (proto == null) {
    1.11 @@ -214,12 +215,12 @@
    1.12                      }
    1.13                  }
    1.14                  append("\n  CLS.fld_").append(v.getName()).append(initField(v));
    1.15 -                append("\n  c._").append(v.getName()).append(" = function (v) {")
    1.16 +                append("\n  m = c._").append(v.getName()).append(" = function (v) {")
    1.17                     .append("  if (arguments.length == 1) CLS.fld_").append(v.getName())
    1.18                     .append(" = v; return CLS.fld_").
    1.19                      append(v.getName()).append("; };");
    1.20              } else {
    1.21 -                append("\n  c._").append(v.getName()).append(" = function (v) {")
    1.22 +                append("\n  m = c._").append(v.getName()).append(" = function (v) {")
    1.23                     .append("  if (arguments.length == 1) this.fld_").
    1.24                      append(className).append('_').append(v.getName())
    1.25                     .append(" = v; return this.fld_").
    1.26 @@ -250,12 +251,12 @@
    1.27              declaredMethod(m, destObject, mn);
    1.28              byte[] runAnno = m.findAnnotationData(false);
    1.29              if (runAnno != null) {
    1.30 -                append("\n    ").append(destObject).append(".").append(mn).append(".anno = {");
    1.31 +                append("\n    m.anno = {");
    1.32                  generateAnno(jc, runAnno);
    1.33                  append("\n    };");
    1.34              }
    1.35 -            append("\n    ").append(destObject).append(".").append(mn).append(".access = " + m.getAccess()).append(";");
    1.36 -            append("\n    ").append(destObject).append(".").append(mn).append(".cls = CLS;");
    1.37 +            append("\n    m.access = " + m.getAccess()).append(";");
    1.38 +            append("\n    m.cls = CLS;");
    1.39          }
    1.40          append("\n    c.constructor = CLS;");
    1.41          append("\n    function ").append(className).append("fillInstOf(x) {");
    1.42 @@ -384,9 +385,9 @@
    1.43          
    1.44          if (defineProp) {
    1.45              append("Object.defineProperty(").append(destObject).
    1.46 -            append(", '").append(name).append("', { configurable: true, writable: true, value: function(");
    1.47 +            append(", '").append(name).append("', { configurable: true, writable: true, value: m = function(");
    1.48          } else {
    1.49 -            append(destObject).append(".").append(name).append(" = function(");
    1.50 +            append("m = ").append(destObject).append(".").append(name).append(" = function(");
    1.51          }
    1.52          lmapper.outputArguments(this, m.isStatic());
    1.53          append(") {").append("\n");
    1.54 @@ -1837,7 +1838,7 @@
    1.55          }
    1.56          StringBuilder cnt = new StringBuilder();
    1.57          final String mn = findMethodName(m, cnt);
    1.58 -        append(destObject).append(".").append(mn);
    1.59 +        append("m = ").append(destObject).append(".").append(mn);
    1.60          append(" = function(");
    1.61          String space = "";
    1.62          int index = 0;