1.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Thu Nov 08 18:32:32 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 }
2.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/Instance.java Thu Nov 08 18:32:32 2012 +0100
2.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/Instance.java Thu Nov 08 18:34:12 2012 +0100
2.3 @@ -22,7 +22,7 @@
2.4 * @author Jaroslav Tulach <jtulach@netbeans.org>
2.5 */
2.6 public class Instance {
2.7 - private int i;
2.8 + private int in;
2.9 protected short s;
2.10 public double d;
2.11 private float f;
2.12 @@ -32,7 +32,7 @@
2.13 }
2.14
2.15 public Instance(int i, double d) {
2.16 - this.i = i;
2.17 + this.in = i;
2.18 this.d = d;
2.19 }
2.20 public byte getByte() {
2.21 @@ -53,7 +53,7 @@
2.22 public static double magicOne() {
2.23 Instance i = new Instance(10, 3.3d);
2.24 i.b = (byte)0x09;
2.25 - return (i.i - i.b) * i.d;
2.26 + return (i.in - i.b) * i.d;
2.27 }
2.28 public static int virtualBytes() {
2.29 Instance i = new InstanceSub(7, 2.2d);
3.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/InstanceSub.java Thu Nov 08 18:32:32 2012 +0100
3.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/InstanceSub.java Thu Nov 08 18:34:12 2012 +0100
3.3 @@ -22,8 +22,11 @@
3.4 * @author Jaroslav Tulach <jtulach@netbeans.org>
3.5 */
3.6 public class InstanceSub extends Instance implements GetByte {
3.7 + private double in;
3.8 +
3.9 public InstanceSub(int i, double d) {
3.10 super(i, d);
3.11 + in = 555.55;
3.12 }
3.13
3.14 @Override
4.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/StaticMethodTest.java Thu Nov 08 18:32:32 2012 +0100
4.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StaticMethodTest.java Thu Nov 08 18:34:12 2012 +0100
4.3 @@ -17,6 +17,8 @@
4.4 */
4.5 package org.apidesign.vm4brwsr;
4.6
4.7 +import java.io.File;
4.8 +import java.io.FileWriter;
4.9 import java.io.IOException;
4.10 import javax.script.Invocable;
4.11 import javax.script.ScriptEngine;
4.12 @@ -271,7 +273,15 @@
4.13 Object res = js.eval(sb.toString());
4.14 assertTrue(js instanceof Invocable, "It is invocable object: " + res);
4.15 return (Invocable)js;
4.16 - } catch (ScriptException ex) {
4.17 + } catch (Exception ex) {
4.18 + if (sb.length() > 2000) {
4.19 + File f = File.createTempFile("execution", ".js");
4.20 + FileWriter w = new FileWriter(f);
4.21 + w.append(sb);
4.22 + w.close();
4.23 + sb.setLength(0);
4.24 + sb.append(f.getPath());
4.25 + }
4.26 fail("Could not compile:\n" + sb, ex);
4.27 return null;
4.28 }
5.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java Thu Nov 08 18:32:32 2012 +0100
5.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java Thu Nov 08 18:34:12 2012 +0100
5.3 @@ -54,7 +54,7 @@
5.4 }
5.5
5.6 public static String concatStrings() {
5.7 - return (toStringTest(1) + "Ahoj").toString();
5.8 + return (toStringTest(1) + "\\\n\r\t").toString();
5.9 }
5.10
5.11 @Override
6.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java Thu Nov 08 18:32:32 2012 +0100
6.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java Thu Nov 08 18:34:12 2012 +0100
6.3 @@ -59,7 +59,7 @@
6.4 assertExec(
6.5 "Composes strings OK",
6.6 "org_apidesign_vm4brwsr_StringSample_concatStringsLjava_lang_String",
6.7 - "Hello World!1Ahoj"
6.8 + "Hello World!1" + "\\\n\r\t"
6.9 );
6.10 }
6.11