# HG changeset patch # User Jaroslav Tulach # Date 1358980019 -3600 # Node ID 6bcb6b98155d9d679c3ad3b4013cf9af7ff9109b # Parent 1cead4397faa6ebf6114d6fa04835fae1644c0a9 Compact compiles now diff -r 1cead4397faa -r 6bcb6b98155d emul/compact/src/main/java/java/util/Arrays.java --- a/emul/compact/src/main/java/java/util/Arrays.java Wed Jan 23 23:19:47 2013 +0100 +++ b/emul/compact/src/main/java/java/util/Arrays.java Wed Jan 23 23:26:59 2013 +0100 @@ -385,10 +385,7 @@ * circular dependencies. To be removed in a future release. */ static final class LegacyMergeSort { - private static final boolean userRequested = - java.security.AccessController.doPrivileged( - new sun.security.action.GetBooleanAction( - "java.util.Arrays.useLegacyMergeSort")).booleanValue(); + private static final boolean userRequested = false; } /* diff -r 1cead4397faa -r 6bcb6b98155d emul/compact/src/main/java/java/util/ComparableTimSort.java --- a/emul/compact/src/main/java/java/util/ComparableTimSort.java Wed Jan 23 23:19:47 2013 +0100 +++ b/emul/compact/src/main/java/java/util/ComparableTimSort.java Wed Jan 23 23:26:59 2013 +0100 @@ -25,6 +25,8 @@ package java.util; +import org.apidesign.bck2brwsr.emul.lang.System; + /** * This is a near duplicate of {@link TimSort}, modified for use with * arrays of objects that implement {@link Comparable}, instead of using diff -r 1cead4397faa -r 6bcb6b98155d emul/compact/src/main/java/java/util/TimSort.java --- a/emul/compact/src/main/java/java/util/TimSort.java Wed Jan 23 23:19:47 2013 +0100 +++ b/emul/compact/src/main/java/java/util/TimSort.java Wed Jan 23 23:26:59 2013 +0100 @@ -25,6 +25,8 @@ package java.util; +import org.apidesign.bck2brwsr.emul.lang.System; + /** * A stable, adaptive, iterative mergesort that requires far fewer than * n lg(n) comparisons when running on partially sorted arrays, while diff -r 1cead4397faa -r 6bcb6b98155d emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java --- a/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java Wed Jan 23 23:19:47 2013 +0100 +++ b/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java Wed Jan 23 23:26:59 2013 +0100 @@ -17,6 +17,8 @@ */ package org.apidesign.bck2brwsr.emul.lang; +import org.apidesign.bck2brwsr.core.JavaScriptBody; + /** * * @author Jaroslav Tulach @@ -25,40 +27,16 @@ private System() { } - public static void arraycopy(char[] value, int srcBegin, char[] dst, int dstBegin, int count) { - if (srcBegin < dstBegin) { - while (count-- > 0) { - dst[dstBegin + count] = value[srcBegin + count]; - } - } else { - while (count-- > 0) { - dst[dstBegin++] = value[srcBegin++]; - } - } - } - - public static void arraycopy(byte[] value, int srcBegin, byte[] dst, int dstBegin, int count) { - if (srcBegin < dstBegin) { - while (count-- > 0) { - dst[dstBegin + count] = value[srcBegin + count]; - } - } else { - while (count-- > 0) { - dst[dstBegin++] = value[srcBegin++]; - } - } - } - - public static void arraycopy(Object[] value, int srcBegin, Object[] dst, int dstBegin, int count) { - if (srcBegin < dstBegin) { - while (count-- > 0) { - dst[dstBegin + count] = value[srcBegin + count]; - } - } else { - while (count-- > 0) { - dst[dstBegin++] = value[srcBegin++]; - } - } - } - + @JavaScriptBody(args = { "value", "srcBegin", "dst", "dstBegin", "count" }, body = + "if (srcBegin < dstBegin) {\n" + + " while (count-- > 0) {\n" + + " dst[dstBegin + count] = value[srcBegin + count];\n" + + " }\n" + + "} else {\n" + + " while (count-- > 0) {\n" + + " dst[dstBegin++] = value[srcBegin++];\n" + + " }\n" + + "}" + ) + public static native void arraycopy(Object value, int srcBegin, Object dst, int dstBegin, int count); }