# HG changeset patch # User Jaroslav Tulach # Date 1381349051 -7200 # Node ID 1b333e5804f5c956813f4baf094a9636f18c3bc7 # Parent 49fb4574259bf9e9dc6db913586e52f2fbe76e5b# Parent 7bc78045adfda5cea1c0d38a80013b164f9640c9 Brinding Martin's long arithmetic improvements to default, so EnumSets really work diff -r 49fb4574259b -r 1b333e5804f5 rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/EnumsTest.java --- a/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/EnumsTest.java Wed Oct 09 22:03:26 2013 +0200 +++ b/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/EnumsTest.java Wed Oct 09 22:04:11 2013 +0200 @@ -32,7 +32,6 @@ B, W; } - /* @Compare public String enumSet() { try { throw new Exception(); } catch (Exception ex) {} EnumSet c = EnumSet.allOf(Color.class); @@ -43,7 +42,6 @@ EnumSet c = EnumSet.of(Color.B, Color.W); return c.toString(); } - */ @Compare public boolean enumFirstContains() { EnumSet c = EnumSet.of(Color.B); diff -r 49fb4574259b -r 1b333e5804f5 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 Wed Oct 09 22:03:26 2013 +0200 +++ b/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/LongArithmeticTest.java Wed Oct 09 22:04:11 2013 +0200 @@ -304,6 +304,14 @@ @Compare public long shiftL3() { return shl(0x00fa37d7763e0ca1l, 45); } + + @Compare public long shiftL4() { + return shl(0x00fa37d7763e0ca1l, 0); + } + + @Compare public long shiftL5() { + return shl(0x00fa37d7763e0ca1l, 70); + } @Compare public long shiftR1() { return shr(0x00fa37d7763e0ca1l, 5); @@ -316,6 +324,14 @@ @Compare public long shiftR3() { return shr(0x00fa37d7763e0ca1l, 45); } + + @Compare public long shiftR4() { + return shr(0x00fa37d7763e0ca1l, 0); + } + + @Compare public long shiftR5() { + return shr(0x00fa37d7763e0ca1l, 70); + } @Compare public long uShiftR1() { return ushr(0x00fa37d7763e0ca1l, 5); @@ -324,14 +340,30 @@ @Compare public long uShiftR2() { return ushr(0x00fa37d7763e0ca1l, 45); } + + @Compare public long uShiftR3() { + return ushr(0x00fa37d7763e0ca1l, 0); + } + + @Compare public long uShiftR4() { + return ushr(0x00fa37d7763e0ca1l, 70); + } - @Compare public long uShiftR3() { + @Compare public long uShiftR5() { return ushr(0xf0fa37d7763e0ca1l, 5); } - @Compare public long uShiftR4() { + @Compare public long uShiftR6() { return ushr(0xf0fa37d7763e0ca1l, 45); } + + @Compare public long uShiftR7() { + return ushr(0xf0fa37d7763e0ca1l, 0); + } + + @Compare public long uShiftR8() { + return ushr(0xf0fa37d7763e0ca1l, 70); + } @Compare public long and1() { return and(0x00fa37d7763e0ca1l, 0xa7b3432fff00123el); diff -r 49fb4574259b -r 1b333e5804f5 rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js --- a/rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js Wed Oct 09 22:03:26 2013 +0200 +++ b/rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_Number.js Wed Oct 09 22:04:11 2013 +0200 @@ -176,6 +176,8 @@ }; numberPrototype.shl64 = function(x) { + x &= 0x3f; + if (x == 0) return this; if (x >= 32) { var hi = this << (x - 32); return hi.next32(0); @@ -190,6 +192,8 @@ }; numberPrototype.shr64 = function(x) { + x &= 0x3f; + if (x == 0) return this; if (x >= 32) { var low = this.high32() >> (x - 32); low += (low < 0) ? (__m32 + 1) : 0; @@ -205,6 +209,8 @@ }; numberPrototype.ushr64 = function(x) { + x &= 0x3f; + if (x == 0) return this; if (x >= 32) { var low = this.high32() >>> (x - 32); low += (low < 0) ? (__m32 + 1) : 0;