Make the push operation explicit in ArrayList. This will enable super-sourcing the behavior in J2WASM. PiperOrigin-RevId: 368155440 Change-Id: I872d334102fc4cecdf6975bac1da83452f2f70fc
diff --git a/user/super/com/google/gwt/emul/java/util/ArrayList.java b/user/super/com/google/gwt/emul/java/util/ArrayList.java index aba65df..0180427 100644 --- a/user/super/com/google/gwt/emul/java/util/ArrayList.java +++ b/user/super/com/google/gwt/emul/java/util/ArrayList.java
@@ -27,7 +27,6 @@ import java.util.function.Consumer; import java.util.function.Predicate; import java.util.function.UnaryOperator; - import javaemul.internal.ArrayHelper; /** @@ -78,7 +77,7 @@ @Override public boolean add(E o) { - array[array.length] = o; + ArrayHelper.push(array, o); return true; }
diff --git a/user/super/com/google/gwt/emul/javaemul/internal/ArrayHelper.java b/user/super/com/google/gwt/emul/javaemul/internal/ArrayHelper.java index ed3ba73..8f40c34 100644 --- a/user/super/com/google/gwt/emul/javaemul/internal/ArrayHelper.java +++ b/user/super/com/google/gwt/emul/javaemul/internal/ArrayHelper.java
@@ -53,15 +53,19 @@ asNativeArray(array).length = length; } - public static void removeFrom(Object array, int index, int deleteCount) { + public static void push(Object[] array, Object o) { + asNativeArray(array).push(o); + } + + public static void removeFrom(Object[] array, int index, int deleteCount) { asNativeArray(array).splice(index, deleteCount); } - public static void insertTo(Object array, int index, Object value) { + public static void insertTo(Object[] array, int index, Object value) { asNativeArray(array).splice(index, 0, value); } - public static void insertTo(Object array, int index, Object[] values) { + public static void insertTo(Object[] array, int index, Object[] values) { copy(values, 0, array, index, values.length, false); } @@ -122,7 +126,7 @@ NativeArray(int length) {} - native Object concat(Object arrayToAdd); + native void push(Object item); native Object[] slice(int fromIndex, int toIndex);