1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/StackMapper.java Mon Feb 17 07:54:35 2014 +0100
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/StackMapper.java Mon Feb 17 12:08:31 2014 +0100
1.3 @@ -78,7 +78,8 @@
1.4 String[] values = stackValues.toArray();
1.5 final int last = stackTypeIndexPairs.getSize() - 1;
1.6 values[last] = sb.toString();
1.7 - stackTypeIndexPairs.set(last, varType);
1.8 + final int value = (last << 8) | (varType & 0xff);
1.9 + stackTypeIndexPairs.set(last, value);
1.10 }
1.11
1.12 void flush(Appendable out) throws IOException {
2.1 --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/Instance.java Mon Feb 17 07:54:35 2014 +0100
2.2 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/Instance.java Mon Feb 17 12:08:31 2014 +0100
2.3 @@ -137,4 +137,8 @@
2.4
2.5 @JavaScriptBody(args = { "instance" }, body = "return instance.getByte__B();")
2.6 private static native int jsgetbytes(Instance instance);
2.7 +
2.8 + int sum(int i, int i0) {
2.9 + return i + i0;
2.10 + }
2.11 }
3.1 --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/StaticMethod.java Mon Feb 17 07:54:35 2014 +0100
3.2 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/StaticMethod.java Mon Feb 17 12:08:31 2014 +0100
3.3 @@ -132,6 +132,11 @@
3.4 return ((String)o).length();
3.5 }
3.6
3.7 + public static int initInflater(int w, boolean nowrap) {
3.8 + Instance i = new Instance(w, 0.0);
3.9 + return i.sum(nowrap?-w:w, 1);
3.10 + }
3.11 +
3.12 static {
3.13 // check order of initializers
3.14 StaticUse.NON_NULL.equals(new Object());
4.1 --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/StaticMethodTest.java Mon Feb 17 07:54:35 2014 +0100
4.2 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/StaticMethodTest.java Mon Feb 17 12:08:31 2014 +0100
4.3 @@ -170,6 +170,25 @@
4.4 3, 3.75
4.5 );
4.6 }
4.7 +
4.8 + @Test public void inflaterInit() throws Exception {
4.9 + assertExec(
4.10 + "Down and minus",
4.11 + StaticMethod.class, "initInflater__IIZ",
4.12 + Double.valueOf(-9),
4.13 + 10, true
4.14 + );
4.15 + }
4.16 +
4.17 + @Test public void inflaterInitNoNeg() throws Exception {
4.18 + assertExec(
4.19 + "One up",
4.20 + StaticMethod.class, "initInflater__IIZ",
4.21 + Double.valueOf(11),
4.22 + 10, false
4.23 + );
4.24 + }
4.25 +
4.26 @Test public void mixedMethodFourParams() throws Exception {
4.27 assertExec(
4.28 "Should be two",