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;