Compact compiles now emul
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Wed, 23 Jan 2013 23:26:59 +0100
branchemul
changeset 5686bcb6b98155d
parent 566 1cead4397faa
child 569 081f019bc04e
Compact compiles now
emul/compact/src/main/java/java/util/Arrays.java
emul/compact/src/main/java/java/util/ComparableTimSort.java
emul/compact/src/main/java/java/util/TimSort.java
emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java
     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  }