--- old/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/ObjectArrayData.java 2016-12-15 11:26:13.000000000 +0100 +++ new/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/ObjectArrayData.java 2016-12-15 11:26:12.000000000 +0100 @@ -98,8 +98,14 @@ } @Override - public void shiftLeft(final int by) { - System.arraycopy(array, by, array, 0, array.length - by); + public ArrayData shiftLeft(final int by) { + if (by >= length()) { + shrink(0); + } else { + System.arraycopy(array, by, array, 0, array.length - by); + } + setLength(Math.max(0, length() - by)); + return this; } @Override