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);