1.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Wed Oct 31 18:05:24 2012 +0100
1.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Thu Nov 08 18:34:12 2012 +0100
1.3 @@ -115,7 +115,8 @@
1.4 out.append("() {");
1.5 for (Variable v : jc.getVariables()) {
1.6 if (!v.isStatic()) {
1.7 - out.append("\n this." + v.getName() + " = 0;");
1.8 + out.append("\n this.fld_").
1.9 + append(v.getName()).append(" = 0;");
1.10 }
1.11 }
1.12 out.append("\n}\n\nfunction ").append(className).append("_proto() {");
1.13 @@ -687,7 +688,8 @@
1.14 case bc_getfield: {
1.15 int indx = readIntArg(byteCodes, i);
1.16 CPFieldInfo fi = (CPFieldInfo) jc.getConstantPool().get(indx);
1.17 - out.append("stack.push(stack.pop().").append(fi.getFieldName()).append(");");
1.18 + out.append("stack.push(stack.pop().fld_").
1.19 + append(fi.getFieldName()).append(");");
1.20 i += 2;
1.21 break;
1.22 }
1.23 @@ -714,7 +716,7 @@
1.24 case bc_putfield: {
1.25 int indx = readIntArg(byteCodes, i);
1.26 CPFieldInfo fi = (CPFieldInfo) jc.getConstantPool().get(indx);
1.27 - out.append("{ var v = stack.pop(); stack.pop().")
1.28 + out.append("{ var v = stack.pop(); stack.pop().fld_")
1.29 .append(fi.getFieldName()).append(" = v; }");
1.30 i += 2;
1.31 break;
1.32 @@ -995,7 +997,13 @@
1.33 if (entry instanceof CPClassInfo) {
1.34 v = "new java_lang_Class";
1.35 } else if (entry instanceof CPStringInfo) {
1.36 - v = "\"" + entry.getValue().toString().replace("\"", "\\\"") + "\"";
1.37 + v = "\"" + entry.getValue().toString().
1.38 + replace("\\", "\\\\").
1.39 + replace("\n", "\\n").
1.40 + replace("\r", "\\r").
1.41 + replace("\t", "\\t").
1.42 + replace("\"", "\\\"")
1.43 + + "\"";
1.44 } else {
1.45 v = entry.getValue().toString();
1.46 }