diff -r 53fafe384803 -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 22:55:28 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); }