rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
changeset 1878 126d266b2da9
parent 1864 44ade87ef2a4
child 1889 e1953d8b8338
     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: