http://gwt-code-reviews.appspot.com/1601805/diff/2004/user/src/com/google/web/bindery/autobean/shared/ValueCodex.java File user/src/com/google/web/bindery/autobean/shared/ValueCodex.java (right):
http://gwt-code-reviews.appspot.com/1601805/diff/2004/user/src/com/google/web/bindery/autobean/shared/ValueCodex.java#newcode107 user/src/com/google/web/bindery/autobean/shared/ValueCodex.java:107: return new Date((long) value.asNumber()); Since asNumber() returns a double, not a long, I expect this will lose precision once we are above 2^53. (What's that as a date, anyway?) http://gwt-code-reviews.appspot.com/1601805/diff/2004/user/src/com/google/web/bindery/autobean/shared/ValueCodex.java#newcode170 user/src/com/google/web/bindery/autobean/shared/ValueCodex.java:170: return Long.valueOf((long) value.asNumber()); I expect this breaks once we get above 2^53? http://gwt-code-reviews.appspot.com/1601805/diff/2004/user/test/com/google/web/bindery/autobean/benchmarks/ValueCodexBenchmark.java File user/test/com/google/web/bindery/autobean/benchmarks/ValueCodexBenchmark.java (right): http://gwt-code-reviews.appspot.com/1601805/diff/2004/user/test/com/google/web/bindery/autobean/benchmarks/ValueCodexBenchmark.java#newcode16 user/test/com/google/web/bindery/autobean/benchmarks/ValueCodexBenchmark.java:16: public class ValueCodexBenchmark extends Benchmark { javadoc: could you explain what you're benchmarking? Also, maybe add a link to your spreadsheet. http://gwt-code-reviews.appspot.com/1601805/diff/2004/user/test/com/google/web/bindery/autobean/benchmarks/ValueCodexBenchmark.java#newcode45 user/test/com/google/web/bindery/autobean/benchmarks/ValueCodexBenchmark.java:45: public void testEncode() { Empty test... not sure what's going on here. http://gwt-code-reviews.appspot.com/1601805/diff/2004/user/test/com/google/web/bindery/autobean/shared/AutoBeanCodexTest.java File user/test/com/google/web/bindery/autobean/shared/AutoBeanCodexTest.java (right): http://gwt-code-reviews.appspot.com/1601805/diff/2004/user/test/com/google/web/bindery/autobean/shared/AutoBeanCodexTest.java#newcode216 user/test/com/google/web/bindery/autobean/shared/AutoBeanCodexTest.java:216: Date now = new Date(); Using the current date in a test isn't a great choice - at least you'd want to try various dates for the next 10 years or so. Maybe try the years 1900 and 2100. http://gwt-code-reviews.appspot.com/1601805/diff/2004/user/test/com/google/web/bindery/autobean/shared/AutoBeanCodexTest.java#newcode237 user/test/com/google/web/bindery/autobean/shared/AutoBeanCodexTest.java:237: AutoBean<HasLong> decodedBean = AutoBeanCodex.decode(f, HasLong.class, "{\"long\": 42}"); Let's try a wider range. I expect it breaks for Long.MAX_VALUE and Long.MIN_VALUE. (And below.) http://gwt-code-reviews.appspot.com/1601805/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
