# HG changeset patch # User Jaroslav Tulach # Date 1392579407 -3600 # Node ID cfba11aaf2b5d6e69de9f6cdde49346f976d3a58 # Parent 6575d1848af375e710c65585ccee5bebeb109c1c# Parent ef506621d1eed1ec610499ccfd2bb07a13bd833f Merging this test from default branch diff -r 6575d1848af3 -r cfba11aaf2b5 rt/vm/src/test/java/org/apidesign/vm4brwsr/NumberTest.java --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/NumberTest.java Sat Feb 15 23:16:11 2014 +0100 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/NumberTest.java Sun Feb 16 20:36:47 2014 +0100 @@ -77,16 +77,22 @@ new byte[] { (byte)0, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0, (byte)13, (byte)126 } ); } - /* XXX: JavaScript cannot represent as big longs as Java. + @Test public void deserializeMiddleLong() throws Exception { + final byte[] arr = new byte[] { + (byte)0, (byte)0, (byte)64, (byte)32, (byte)23, (byte)0, (byte)0, (byte)0 + }; + long exp = Numbers.deserLong(arr, 16); + assertExec("Should be " + exp, Numbers.class, "deserLong__J_3BI", + Double.valueOf(exp), arr, 16); + } @Test public void deserializeLargeLong() throws Exception { final byte[] arr = new byte[] { (byte)64, (byte)8, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0 }; - long exp = Numbers.deserLong(arr); - assertExec("Should be " + exp, "org_apidesign_vm4brwsr_Numbers_deserLong__JAB", - Double.valueOf(exp), arr); + long exp = Numbers.deserLong(arr, 32); + assertExec("Should be " + exp, Numbers.class, "deserLong__J_3BI", + Double.valueOf(exp), arr, 32); } - */ @Test public void deserializeFloatInJava() throws Exception { float f = 54324.32423f; diff -r 6575d1848af3 -r cfba11aaf2b5 rt/vm/src/test/java/org/apidesign/vm4brwsr/Numbers.java --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/Numbers.java Sat Feb 15 23:16:11 2014 +0100 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/Numbers.java Sun Feb 16 20:36:47 2014 +0100 @@ -55,6 +55,9 @@ DataInputStream dis = new DataInputStream(is); return dis.readLong(); } + static long deserLong(byte[] arr, int shift) throws IOException { + return deserLong(arr) >> shift; + } static int deserInt() throws IOException { byte[] arr = {(byte) 71, (byte) 84, (byte) 52, (byte) 83}; ByteArrayInputStream is = new ByteArrayInputStream(arr);