1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun Sep 14 22:33:35 2014 +0200
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Tue Sep 23 21:52:27 2014 +0200
1.3 @@ -378,9 +378,11 @@
1.4 final LocalsMapper lmapper =
1.5 new LocalsMapper(stackMapIterator.getArguments());
1.6
1.7 - boolean obj = "java/lang/Object".equals(jc.getClassName());
1.8 + boolean defineProp =
1.9 + "java/lang/Object".equals(jc.getClassName()) ||
1.10 + "java/lang/reflect/Array".equals(jc.getClassName());
1.11
1.12 - if (obj) {
1.13 + if (defineProp) {
1.14 append("Object.defineProperty(").append(destObject).
1.15 append(", '").append(name).append("', { configurable: true, writable: true, value: function(");
1.16 } else {
1.17 @@ -394,10 +396,11 @@
1.18 append(" throw 'no code found for ")
1.19 .append(jc.getClassName()).append('.')
1.20 .append(m.getName()).append("';\n");
1.21 - if (obj) {
1.22 - append("}");
1.23 + if (defineProp) {
1.24 + append("}});");
1.25 + } else {
1.26 + append("};");
1.27 }
1.28 - append("};");
1.29 return;
1.30 }
1.31
1.32 @@ -1463,7 +1466,7 @@
1.33 while (openBraces-- > 0) {
1.34 append('}');
1.35 }
1.36 - if (obj) {
1.37 + if (defineProp) {
1.38 append("\n}});");
1.39 } else {
1.40 append("\n};");