# HG changeset patch # User Jaroslav Tulach # Date 1359732891 -3600 # Node ID 8d0be6a9a80981d5981d9ca3ec900eff33e1a1d6 # Parent e5cc7edead2559896fb14c9278a6ac8ca81a1e7c Providing implementation of the most important java.lang.System methods diff -r e5cc7edead25 -r 8d0be6a9a809 emul/compact/src/main/java/java/io/BufferedReader.java --- a/emul/compact/src/main/java/java/io/BufferedReader.java Fri Feb 01 16:25:57 2013 +0100 +++ b/emul/compact/src/main/java/java/io/BufferedReader.java Fri Feb 01 16:34:51 2013 +0100 @@ -25,7 +25,6 @@ package java.io; -import org.apidesign.bck2brwsr.emul.lang.System; /** diff -r e5cc7edead25 -r 8d0be6a9a809 emul/compact/src/main/java/java/lang/System.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emul/compact/src/main/java/java/lang/System.java Fri Feb 01 16:34:51 2013 +0100 @@ -0,0 +1,36 @@ +/** + * Back 2 Browser Bytecode Translator + * Copyright (C) 2012 Jaroslav Tulach + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. Look for COPYING file in the top folder. + * If not, see http://opensource.org/licenses/GPL-2.0. + */ +package java.lang; + +/** Poor man's re-implementation of most important System methods. + * + * @author Jaroslav Tulach + */ +public class System { + private System() { + } + + public static void arraycopy(Object value, int srcBegin, Object dst, int dstBegin, int count) { + org.apidesign.bck2brwsr.emul.lang.System.arraycopy(value, srcBegin, dst, dstBegin, count); + } + + public static long currentTimeMillis() { + return org.apidesign.bck2brwsr.emul.lang.System.currentTimeMillis(); + } + +} diff -r e5cc7edead25 -r 8d0be6a9a809 emul/compact/src/main/java/java/util/ArrayDeque.java --- a/emul/compact/src/main/java/java/util/ArrayDeque.java Fri Feb 01 16:25:57 2013 +0100 +++ b/emul/compact/src/main/java/java/util/ArrayDeque.java Fri Feb 01 16:34:51 2013 +0100 @@ -34,7 +34,6 @@ package java.util; import java.io.*; -import org.apidesign.bck2brwsr.emul.lang.System; /** * Resizable-array implementation of the {@link Deque} interface. Array diff -r e5cc7edead25 -r 8d0be6a9a809 emul/compact/src/main/java/java/util/ArrayList.java --- a/emul/compact/src/main/java/java/util/ArrayList.java Fri Feb 01 16:25:57 2013 +0100 +++ b/emul/compact/src/main/java/java/util/ArrayList.java Fri Feb 01 16:34:51 2013 +0100 @@ -25,7 +25,6 @@ package java.util; -import org.apidesign.bck2brwsr.emul.lang.System; /** * Resizable-array implementation of the List interface. Implements diff -r e5cc7edead25 -r 8d0be6a9a809 emul/compact/src/main/java/java/util/Arrays.java --- a/emul/compact/src/main/java/java/util/Arrays.java Fri Feb 01 16:25:57 2013 +0100 +++ b/emul/compact/src/main/java/java/util/Arrays.java Fri Feb 01 16:34:51 2013 +0100 @@ -26,7 +26,6 @@ package java.util; import java.lang.reflect.*; -import org.apidesign.bck2brwsr.emul.lang.System; /** * This class contains various methods for manipulating arrays (such as diff -r e5cc7edead25 -r 8d0be6a9a809 emul/compact/src/main/java/java/util/Collections.java --- a/emul/compact/src/main/java/java/util/Collections.java Fri Feb 01 16:25:57 2013 +0100 +++ b/emul/compact/src/main/java/java/util/Collections.java Fri Feb 01 16:34:51 2013 +0100 @@ -27,7 +27,6 @@ import java.io.Serializable; import java.io.IOException; import java.lang.reflect.Array; -import org.apidesign.bck2brwsr.emul.lang.System; /** * This class consists exclusively of static methods that operate on or return diff -r e5cc7edead25 -r 8d0be6a9a809 emul/compact/src/main/java/java/util/ComparableTimSort.java --- a/emul/compact/src/main/java/java/util/ComparableTimSort.java Fri Feb 01 16:25:57 2013 +0100 +++ b/emul/compact/src/main/java/java/util/ComparableTimSort.java Fri Feb 01 16:34:51 2013 +0100 @@ -25,7 +25,6 @@ package java.util; -import org.apidesign.bck2brwsr.emul.lang.System; /** * This is a near duplicate of {@link TimSort}, modified for use with diff -r e5cc7edead25 -r 8d0be6a9a809 emul/compact/src/main/java/java/util/PriorityQueue.java --- a/emul/compact/src/main/java/java/util/PriorityQueue.java Fri Feb 01 16:25:57 2013 +0100 +++ b/emul/compact/src/main/java/java/util/PriorityQueue.java Fri Feb 01 16:34:51 2013 +0100 @@ -25,7 +25,6 @@ package java.util; -import org.apidesign.bck2brwsr.emul.lang.System; /** * An unbounded priority {@linkplain Queue queue} based on a priority heap. diff -r e5cc7edead25 -r 8d0be6a9a809 emul/compact/src/main/java/java/util/TimSort.java --- a/emul/compact/src/main/java/java/util/TimSort.java Fri Feb 01 16:25:57 2013 +0100 +++ b/emul/compact/src/main/java/java/util/TimSort.java Fri Feb 01 16:34:51 2013 +0100 @@ -25,7 +25,6 @@ package java.util; -import org.apidesign.bck2brwsr.emul.lang.System; /** * A stable, adaptive, iterative mergesort that requires far fewer than diff -r e5cc7edead25 -r 8d0be6a9a809 emul/compact/src/main/java/java/util/Vector.java --- a/emul/compact/src/main/java/java/util/Vector.java Fri Feb 01 16:25:57 2013 +0100 +++ b/emul/compact/src/main/java/java/util/Vector.java Fri Feb 01 16:34:51 2013 +0100 @@ -25,7 +25,6 @@ package java.util; -import org.apidesign.bck2brwsr.emul.lang.System; /** * The {@code Vector} class implements a growable array of diff -r e5cc7edead25 -r 8d0be6a9a809 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 Fri Feb 01 16:25:57 2013 +0100 +++ b/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java Fri Feb 01 16:34:51 2013 +0100 @@ -45,6 +45,10 @@ ) public static native byte[] expandArray(byte[] arr, int expectedSize); - @JavaScriptBody(args = {}, body = "new Date().getMilliseconds() * 1000;") - public static native long nanoTime(); + @JavaScriptBody(args = {}, body = "new Date().getMilliseconds();") + public static native long currentTimeMillis(); + + public static long nanoTime() { + return 1000L * currentTimeMillis(); + } }