1.1 --- a/emul/compact/src/test/java/org/apidesign/bck2brwsr/compact/tck/JFXIssuesTest.java Mon Feb 25 19:27:32 2013 +0100
1.2 +++ b/emul/compact/src/test/java/org/apidesign/bck2brwsr/compact/tck/JFXIssuesTest.java Tue Feb 26 14:55:55 2013 +0100
1.3 @@ -54,7 +54,30 @@
1.4
1.5 return l1 == l2;
1.6 }
1.7 +
1.8 + @Compare public boolean roundOnDouble() {
1.9 + long l1 = Math.round(System.currentTimeMillis() / 1.1);
1.10 + long l2 = l1 + 0;
1.11 +
1.12 + return l1 == l2;
1.13 + }
1.14
1.15 + private static long val = 1238078409318L;
1.16 +
1.17 + @Compare public int valueConvertedToString() {
1.18 + return (int) val++;
1.19 + }
1.20 +
1.21 + @Compare public boolean roundOnFloat() {
1.22 + final float f = System.currentTimeMillis() / 1.1f;
1.23 + int l1 = Math.round(f);
1.24 + int l2 = l1 + 0;
1.25 +
1.26 + assert l1 == l2 : "Round " + l1 + " == " + l2;
1.27 +
1.28 + return l1 == l2;
1.29 + }
1.30 +
1.31 @Factory public static Object[] create() {
1.32 return VMTest.create(JFXIssuesTest.class);
1.33 }
2.1 --- a/emul/mini/src/main/java/java/lang/Math.java Mon Feb 25 19:27:32 2013 +0100
2.2 +++ b/emul/mini/src/main/java/java/lang/Math.java Tue Feb 26 14:55:55 2013 +0100
2.3 @@ -643,9 +643,8 @@
2.4 * @see java.lang.Integer#MAX_VALUE
2.5 * @see java.lang.Integer#MIN_VALUE
2.6 */
2.7 - @JavaScriptBody(args="a", body="return Math.round(a);")
2.8 public static int round(float a) {
2.9 - throw new UnsupportedOperationException();
2.10 + return (int)roundDbl(a);
2.11 }
2.12
2.13 /**
2.14 @@ -668,10 +667,12 @@
2.15 * @see java.lang.Long#MAX_VALUE
2.16 * @see java.lang.Long#MIN_VALUE
2.17 */
2.18 + public static long round(double a) {
2.19 + return (long)roundDbl(a);
2.20 + }
2.21 +
2.22 @JavaScriptBody(args="a", body="return Math.round(a);")
2.23 - public static long round(double a) {
2.24 - throw new UnsupportedOperationException();
2.25 - }
2.26 + private static native double roundDbl(double d);
2.27
2.28 // private static Random randomNumberGenerator;
2.29 //
3.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Mon Feb 25 19:27:32 2013 +0100
3.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Tue Feb 26 14:55:55 2013 +0100
3.3 @@ -691,7 +691,7 @@
3.4 emit(out, "var @2 = @1;", smapper.popD(), smapper.pushF());
3.5 break;
3.6 case opc_f2i:
3.7 - emit(out, "var @2 = Math.floor(@1);",
3.8 + emit(out, "var @2 = Math.floor(@1).toInt32();",
3.9 smapper.popF(), smapper.pushI());
3.10 break;
3.11 case opc_f2l:
3.12 @@ -699,7 +699,7 @@
3.13 smapper.popF(), smapper.pushL());
3.14 break;
3.15 case opc_d2i:
3.16 - emit(out, "var @2 = Math.floor(@1);",
3.17 + emit(out, "var @2 = Math.floor(@1).toInt32();",
3.18 smapper.popD(), smapper.pushI());
3.19 break;
3.20 case opc_d2l: