1.1 --- a/src/jdk/nashorn/internal/runtime/arrays/SparseArrayData.java Thu Jun 06 21:41:20 2013 +0530 1.2 +++ b/src/jdk/nashorn/internal/runtime/arrays/SparseArrayData.java Fri Jun 07 17:44:25 2013 +0200 1.3 @@ -61,13 +61,15 @@ 1.4 1.5 @Override 1.6 public Object[] asObjectArray() { 1.7 - final Object[] objArray = new Object[Math.min((int) length(), Integer.MAX_VALUE)]; 1.8 + final int length = (int) Math.min(length(), Integer.MAX_VALUE); 1.9 + final int underlyingLength = (int) Math.min(length, underlying.length()); 1.10 + final Object[] objArray = new Object[length]; 1.11 1.12 - for (int i = 0; i < underlying.length(); i++) { 1.13 + for (int i = 0; i < underlyingLength; i++) { 1.14 objArray[i] = underlying.getObject(i); 1.15 } 1.16 1.17 - Arrays.fill(objArray, (int) underlying.length(), objArray.length, ScriptRuntime.UNDEFINED); 1.18 + Arrays.fill(objArray, underlyingLength, length, ScriptRuntime.UNDEFINED); 1.19 1.20 for (final Map.Entry<Long, Object> entry : sparseMap.entrySet()) { 1.21 final long key = entry.getKey();