# HG changeset patch # User Jaroslav Tulach # Date 1407773838 -7200 # Node ID 03f1dd008e832055c7d657f5b58daf0d4009a8b9 # Parent b85b98372381dc03f3bcb12868342de7f087e352 i2c needs to get down to 16-bits diff -r b85b98372381 -r 03f1dd008e83 rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/LongArithmeticTest.java --- a/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/LongArithmeticTest.java Tue Aug 05 14:54:29 2014 +0200 +++ b/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/LongArithmeticTest.java Mon Aug 11 18:17:18 2014 +0200 @@ -114,7 +114,17 @@ return (trueCount == 1) ? result : -2; } - + + @Compare public int parameterSlotCount() { + long argCounts = 281479271874563L; + int x = unpack(argCounts, 2); + return x; + } + private static char unpack(long packed, int word) { // word==0 => return a, ==3 => return d + assert(word <= 3); + final long val = packed >> ((3-word) * 16); + return (char)val; + } @Compare public long conversion() { return Long.MAX_VALUE; } diff -r b85b98372381 -r 03f1dd008e83 rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Tue Aug 05 14:54:29 2014 +0200 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Mon Aug 11 18:17:18 2014 +0200 @@ -833,7 +833,6 @@ smapper.replace(this, VarType.INTEGER, "(@1).toInt8()", smapper.getI(0)); break; case opc_i2c: - break; case opc_i2s: smapper.replace(this, VarType.INTEGER, "(@1).toInt16()", smapper.getI(0)); break;