vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
changeset 137 45184b2f9697
parent 135 a206e280acc8
child 151 40f95fe90cdc
     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          }