1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Fri Sep 26 08:28:11 2014 +0200
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Fri Sep 26 09:21:49 2014 +0200
1.3 @@ -355,10 +355,14 @@
1.4 return jsb;
1.5 }
1.6 final String mn = findMethodName(m, new StringBuilder());
1.7 + boolean defineProp = generateMethod(destObject, mn, m);
1.8 if (mn.equals("class__V")) {
1.9 - toInitilize.add(accessClass(className(jc)) + "(false)." + mn);
1.10 + if (defineProp) {
1.11 + toInitilize.add(accessClass(className(jc)) + "(false)['" + mn + "']");
1.12 + } else {
1.13 + toInitilize.add(accessClass(className(jc)) + "(false)." + mn);
1.14 + }
1.15 }
1.16 - generateMethod(destObject, mn, m);
1.17 return mn;
1.18 }
1.19
1.20 @@ -372,7 +376,7 @@
1.21 return mn;
1.22 }
1.23
1.24 - private void generateMethod(String destObject, String name, MethodData m)
1.25 + private boolean generateMethod(String destObject, String name, MethodData m)
1.26 throws IOException {
1.27 final StackMapIterator stackMapIterator = m.createStackMapIterator();
1.28 TrapDataIterator trap = m.getTrapDataIterator();
1.29 @@ -402,7 +406,7 @@
1.30 } else {
1.31 append("};");
1.32 }
1.33 - return;
1.34 + return defineProp;
1.35 }
1.36
1.37 final StackMapper smapper = new StackMapper();
1.38 @@ -1472,6 +1476,7 @@
1.39 } else {
1.40 append("\n};");
1.41 }
1.42 + return defineProp;
1.43 }
1.44
1.45 private int generateIf(StackMapper mapper, byte[] byteCodes,