1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Tue Jan 26 07:28:25 2016 +0100
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sat Jan 30 18:49:26 2016 +0100
1.3 @@ -1231,26 +1231,26 @@
1.4 smapper.popI(), smapper.popI(), smapper.popA());
1.5 break;
1.6 case opc_laload:
1.7 - smapper.replace(this, VarType.LONG, "Array.at(@2, @1)",
1.8 + smapper.replace(this, VarType.LONG, "(@2[@1] || Array.at(@2, @1))",
1.9 smapper.popI(), smapper.getA(0));
1.10 break;
1.11 case opc_faload:
1.12 - smapper.replace(this, VarType.FLOAT, "Array.at(@2, @1)",
1.13 + smapper.replace(this, VarType.FLOAT, "(@2[@1] || Array.at(@2, @1))",
1.14 smapper.popI(), smapper.getA(0));
1.15 break;
1.16 case opc_daload:
1.17 - smapper.replace(this, VarType.DOUBLE, "Array.at(@2, @1)",
1.18 + smapper.replace(this, VarType.DOUBLE, "(@2[@1] || Array.at(@2, @1))",
1.19 smapper.popI(), smapper.getA(0));
1.20 break;
1.21 case opc_aaload:
1.22 - smapper.replace(this, VarType.REFERENCE, "Array.at(@2, @1)",
1.23 + smapper.replace(this, VarType.REFERENCE, "(@2[@1] || Array.at(@2, @1))",
1.24 smapper.popI(), smapper.getA(0));
1.25 break;
1.26 case opc_iaload:
1.27 case opc_baload:
1.28 case opc_caload:
1.29 case opc_saload:
1.30 - smapper.replace(this, VarType.INTEGER, "Array.at(@2, @1)",
1.31 + smapper.replace(this, VarType.INTEGER, "(@2[@1] || Array.at(@2, @1))",
1.32 smapper.popI(), smapper.getA(0));
1.33 break;
1.34 case opc_pop: