Fixed error in neg64 found bu Lubo. arithmetic
authorMartin Soch <Martin.Soch@oracle.com>
Tue, 05 Feb 2013 15:03:22 +0100
brancharithmetic
changeset 6693754580b6c67
parent 657 b42bfe334128
child 675 7d3da112e2c1
Fixed error in neg64 found bu Lubo.
emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js
vm/src/test/java/org/apidesign/vm4brwsr/NumberTest.java
     1.1 --- a/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js	Mon Feb 04 09:41:33 2013 +0100
     1.2 +++ b/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js	Tue Feb 05 15:03:22 2013 +0100
     1.3 @@ -203,5 +203,6 @@
     1.4      hi = ~hi;
     1.5      low = ~low;
     1.6      low += (low < 0) ? (__m32+1) : 0;
     1.7 -    return hi.next32(low);
     1.8 +    var ret = hi.next32(low);
     1.9 +    return ret.add64(1);
    1.10  };
     2.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/NumberTest.java	Mon Feb 04 09:41:33 2013 +0100
     2.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/NumberTest.java	Tue Feb 05 15:03:22 2013 +0100
     2.3 @@ -169,6 +169,16 @@
     2.4          );
     2.5      }
     2.6      
     2.7 +    @Test public void longNegate3() throws Exception {
     2.8 +        final long res = -0xfffffffffffffeddl;
     2.9 +        assertExec("Long negate",
    2.10 +            Numbers.class, "negL__J_3B",
    2.11 +            Double.valueOf(res),
    2.12 +                new byte[] { (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xfe, (byte)0xdd }
    2.13 +        );
    2.14 +    }
    2.15 +
    2.16 +    
    2.17      @Test public void longAddOverflow() throws Exception {
    2.18          final long res = Long.MAX_VALUE + 1l;
    2.19          assertExec("Addition 1+MAX",