Expand the array rather than copying it
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Sun, 10 Mar 2013 21:28:50 +0100
changeset 83524096bd2b38a
parent 834 b0b23e5ebf9d
child 836 eefe5c8438d4
child 841 81cea57bf4e9
Expand the array rather than copying it
rt/emul/mini/src/main/java/java/lang/AbstractStringBuilder.java
rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java
     1.1 --- a/rt/emul/mini/src/main/java/java/lang/AbstractStringBuilder.java	Sun Mar 10 21:28:00 2013 +0100
     1.2 +++ b/rt/emul/mini/src/main/java/java/lang/AbstractStringBuilder.java	Sun Mar 10 21:28:50 2013 +0100
     1.3 @@ -126,7 +126,7 @@
     1.4                  throw new OutOfMemoryError();
     1.5              newCapacity = Integer.MAX_VALUE;
     1.6          }
     1.7 -        value = copyOf(value, newCapacity);
     1.8 +        value = System.expandArray(value, newCapacity);
     1.9      }
    1.10  
    1.11      /**
     2.1 --- a/rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java	Sun Mar 10 21:28:00 2013 +0100
     2.2 +++ b/rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java	Sun Mar 10 21:28:50 2013 +0100
     2.3 @@ -54,6 +54,11 @@
     2.4      )
     2.5      public static native byte[] expandArray(byte[] arr, int expectedSize);
     2.6  
     2.7 +    @JavaScriptBody(args = { "arr", "expectedSize" }, body = 
     2.8 +        "while (expectedSize-- > arr.length) { arr.push(0); }; return arr;"
     2.9 +    )
    2.10 +    public static native char[] expandArray(char[] arr, int expectedSize);
    2.11 +
    2.12      @JavaScriptBody(args = {}, body = "return new Date().getTime();")
    2.13      private static native double currentTimeMillisDouble();
    2.14