1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun Aug 17 19:58:05 2014 +0200
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sat Sep 13 18:14:55 2014 +0200
1.3 @@ -258,7 +258,7 @@
1.4 append("\n ").append(destObject).append(".").append(mn).append(".cls = CLS;");
1.5 }
1.6 append("\n c.constructor = CLS;");
1.7 - append("\n function fillInstOf(x) {");
1.8 + append("\n function ").append(className).append("fillInstOf(x) {");
1.9 String instOfName = "$instOf_" + className;
1.10 append("\n Object.defineProperty(x, '").append(instOfName).append("', { value : true });");
1.11 if (jc.isInterface()) {
1.12 @@ -268,7 +268,7 @@
1.13 && (m.getAccess() & ACC_PRIVATE) == 0) {
1.14 final String mn = findMethodName(m, new StringBuilder());
1.15 append("\n try {");
1.16 - append("\n Object.defineProperty(x, '").append(mn).append("', { value : c['").append(mn).append("']});");
1.17 + append("\n if (!x['").append(mn).append("']) Object.defineProperty(x, '").append(mn).append("', { value : c['").append(mn).append("']});");
1.18 append("\n } catch (ignore) {");
1.19 append("\n }");
1.20 }
1.21 @@ -281,8 +281,8 @@
1.22 }
1.23 append("\n }");
1.24 append("\n try {");
1.25 - append("\n Object.defineProperty(c, 'fillInstOf', { value: fillInstOf });");
1.26 - append("\n fillInstOf(c);");
1.27 + append("\n Object.defineProperty(c, 'fillInstOf', { value: ").append(className).append("fillInstOf });");
1.28 + append("\n ").append(className).append("fillInstOf(c);");
1.29 append("\n } catch (ignore) {");
1.30 append("\n }");
1.31 // obfuscationDelegate.exportJSProperty(this, "c", instOfName);