1.1 --- a/emul/compact/src/main/java/java/util/Arrays.java Wed Jan 23 23:19:47 2013 +0100
1.2 +++ b/emul/compact/src/main/java/java/util/Arrays.java Wed Jan 23 23:26:59 2013 +0100
1.3 @@ -385,10 +385,7 @@
1.4 * circular dependencies. To be removed in a future release.
1.5 */
1.6 static final class LegacyMergeSort {
1.7 - private static final boolean userRequested =
1.8 - java.security.AccessController.doPrivileged(
1.9 - new sun.security.action.GetBooleanAction(
1.10 - "java.util.Arrays.useLegacyMergeSort")).booleanValue();
1.11 + private static final boolean userRequested = false;
1.12 }
1.13
1.14 /*
2.1 --- a/emul/compact/src/main/java/java/util/ComparableTimSort.java Wed Jan 23 23:19:47 2013 +0100
2.2 +++ b/emul/compact/src/main/java/java/util/ComparableTimSort.java Wed Jan 23 23:26:59 2013 +0100
2.3 @@ -25,6 +25,8 @@
2.4
2.5 package java.util;
2.6
2.7 +import org.apidesign.bck2brwsr.emul.lang.System;
2.8 +
2.9 /**
2.10 * This is a near duplicate of {@link TimSort}, modified for use with
2.11 * arrays of objects that implement {@link Comparable}, instead of using
3.1 --- a/emul/compact/src/main/java/java/util/TimSort.java Wed Jan 23 23:19:47 2013 +0100
3.2 +++ b/emul/compact/src/main/java/java/util/TimSort.java Wed Jan 23 23:26:59 2013 +0100
3.3 @@ -25,6 +25,8 @@
3.4
3.5 package java.util;
3.6
3.7 +import org.apidesign.bck2brwsr.emul.lang.System;
3.8 +
3.9 /**
3.10 * A stable, adaptive, iterative mergesort that requires far fewer than
3.11 * n lg(n) comparisons when running on partially sorted arrays, while
4.1 --- a/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java Wed Jan 23 23:19:47 2013 +0100
4.2 +++ b/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java Wed Jan 23 23:26:59 2013 +0100
4.3 @@ -17,6 +17,8 @@
4.4 */
4.5 package org.apidesign.bck2brwsr.emul.lang;
4.6
4.7 +import org.apidesign.bck2brwsr.core.JavaScriptBody;
4.8 +
4.9 /**
4.10 *
4.11 * @author Jaroslav Tulach <jtulach@netbeans.org>
4.12 @@ -25,40 +27,16 @@
4.13 private System() {
4.14 }
4.15
4.16 - public static void arraycopy(char[] value, int srcBegin, char[] dst, int dstBegin, int count) {
4.17 - if (srcBegin < dstBegin) {
4.18 - while (count-- > 0) {
4.19 - dst[dstBegin + count] = value[srcBegin + count];
4.20 - }
4.21 - } else {
4.22 - while (count-- > 0) {
4.23 - dst[dstBegin++] = value[srcBegin++];
4.24 - }
4.25 - }
4.26 - }
4.27 -
4.28 - public static void arraycopy(byte[] value, int srcBegin, byte[] dst, int dstBegin, int count) {
4.29 - if (srcBegin < dstBegin) {
4.30 - while (count-- > 0) {
4.31 - dst[dstBegin + count] = value[srcBegin + count];
4.32 - }
4.33 - } else {
4.34 - while (count-- > 0) {
4.35 - dst[dstBegin++] = value[srcBegin++];
4.36 - }
4.37 - }
4.38 - }
4.39 -
4.40 - public static void arraycopy(Object[] value, int srcBegin, Object[] dst, int dstBegin, int count) {
4.41 - if (srcBegin < dstBegin) {
4.42 - while (count-- > 0) {
4.43 - dst[dstBegin + count] = value[srcBegin + count];
4.44 - }
4.45 - } else {
4.46 - while (count-- > 0) {
4.47 - dst[dstBegin++] = value[srcBegin++];
4.48 - }
4.49 - }
4.50 - }
4.51 -
4.52 + @JavaScriptBody(args = { "value", "srcBegin", "dst", "dstBegin", "count" }, body =
4.53 + "if (srcBegin < dstBegin) {\n" +
4.54 + " while (count-- > 0) {\n" +
4.55 + " dst[dstBegin + count] = value[srcBegin + count];\n" +
4.56 + " }\n" +
4.57 + "} else {\n" +
4.58 + " while (count-- > 0) {\n" +
4.59 + " dst[dstBegin++] = value[srcBegin++];\n" +
4.60 + " }\n" +
4.61 + "}"
4.62 + )
4.63 + public static native void arraycopy(Object value, int srcBegin, Object dst, int dstBegin, int count);
4.64 }