1.1 --- a/benchmarks/jbox2d/src/test/java/org/apidesign/benchmark/jbox2d/JBox2dSimulationTest.java Sat Jan 30 18:33:49 2016 +0100
1.2 +++ b/benchmarks/jbox2d/src/test/java/org/apidesign/benchmark/jbox2d/JBox2dSimulationTest.java Sat Jan 30 18:49:26 2016 +0100
1.3 @@ -26,7 +26,7 @@
1.4 public JBox2dSimulationTest() {
1.5 }
1.6
1.7 - @Compare(slowdown = 40.0)
1.8 + @Compare(slowdown = 30.0)
1.9 public int tenThousand() throws IOException {
1.10 Scene s = new Scene();
1.11 for (int i = 0; i < 10000; i++) {
2.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sat Jan 30 18:33:49 2016 +0100
2.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sat Jan 30 18:49:26 2016 +0100
2.3 @@ -1231,26 +1231,26 @@
2.4 smapper.popI(), smapper.popI(), smapper.popA());
2.5 break;
2.6 case opc_laload:
2.7 - smapper.replace(this, VarType.LONG, "Array.at(@2, @1)",
2.8 + smapper.replace(this, VarType.LONG, "(@2[@1] || Array.at(@2, @1))",
2.9 smapper.popI(), smapper.getA(0));
2.10 break;
2.11 case opc_faload:
2.12 - smapper.replace(this, VarType.FLOAT, "Array.at(@2, @1)",
2.13 + smapper.replace(this, VarType.FLOAT, "(@2[@1] || Array.at(@2, @1))",
2.14 smapper.popI(), smapper.getA(0));
2.15 break;
2.16 case opc_daload:
2.17 - smapper.replace(this, VarType.DOUBLE, "Array.at(@2, @1)",
2.18 + smapper.replace(this, VarType.DOUBLE, "(@2[@1] || Array.at(@2, @1))",
2.19 smapper.popI(), smapper.getA(0));
2.20 break;
2.21 case opc_aaload:
2.22 - smapper.replace(this, VarType.REFERENCE, "Array.at(@2, @1)",
2.23 + smapper.replace(this, VarType.REFERENCE, "(@2[@1] || Array.at(@2, @1))",
2.24 smapper.popI(), smapper.getA(0));
2.25 break;
2.26 case opc_iaload:
2.27 case opc_baload:
2.28 case opc_caload:
2.29 case opc_saload:
2.30 - smapper.replace(this, VarType.INTEGER, "Array.at(@2, @1)",
2.31 + smapper.replace(this, VarType.INTEGER, "(@2[@1] || Array.at(@2, @1))",
2.32 smapper.popI(), smapper.getA(0));
2.33 break;
2.34 case opc_pop: