< prev index next >

src/jdk/nashorn/internal/runtime/arrays/ArrayData.java

Print this page

        

*** 105,122 **** return ScriptRuntime.EMPTY_ARRAY; } @Override public ArrayData ensure(final long safeIndex) { ! if (safeIndex > 0L) { if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH) { return new SparseArrayData(this, safeIndex + 1); } //known to fit in int return toRealArrayData((int)safeIndex); ! } ! return this; } @Override public ArrayData convert(final Class<?> type) { return toRealArrayData().convert(type); --- 105,121 ---- return ScriptRuntime.EMPTY_ARRAY; } @Override public ArrayData ensure(final long safeIndex) { ! assert safeIndex >= 0L; if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH) { return new SparseArrayData(this, safeIndex + 1); } //known to fit in int return toRealArrayData((int)safeIndex); ! } @Override public ArrayData convert(final Class<?> type) { return toRealArrayData().convert(type);
*** 131,142 **** public ArrayData delete(final long fromIndex, final long toIndex) { return new DeletedRangeArrayFilter(this, fromIndex, toIndex); } @Override ! public void shiftLeft(final int by) { ! //nop, always empty or we wouldn't be of this class } @Override public ArrayData shiftRight(final int by) { return this; //always empty or we wouldn't be of this class --- 130,141 ---- public ArrayData delete(final long fromIndex, final long toIndex) { return new DeletedRangeArrayFilter(this, fromIndex, toIndex); } @Override ! public ArrayData shiftLeft(final int by) { ! return this; //nop, always empty or we wouldn't be of this class } @Override public ArrayData shiftRight(final int by) { return this; //always empty or we wouldn't be of this class
*** 449,465 **** } /** * Shift the array data left * ! * TODO: explore start at an index and not at zero, to make these operations ! * even faster. Offset everything from the index. Costs memory but is probably ! * worth it * * @param by offset to shift */ ! public abstract void shiftLeft(final int by); /** * Shift the array right * * @param by offset to shift --- 448,464 ---- } /** * Shift the array data left * ! * TODO: This is used for Array.prototype.shift() which only shifts by 1, ! * so we might consider dropping the offset parameter. * * @param by offset to shift + * @return New arraydata (or same) */ ! public abstract ArrayData shiftLeft(final int by); /** * Shift the array right * * @param by offset to shift
< prev index next >