UNPKG

@extra-array/slice-update

Version:
19 lines (18 loc) 464 B
function index(x, i = 0) { return i < 0 ? Math.max(x.length + i, 0) : Math.min(i, x.length); } function indexRange(x, i = 0, I = x.length) { i = index(x, i); I = Math.max(i, index(x, I)); return [i, I]; } function size(x, i = 0, I = x.length) { var [i, I] = indexRange(x, i, I); return I - i; } function slice$(x, i = 0, I = x.length) { x.copyWithin(0, i, I); x.length = size(x, i, I); return x; } export { slice$ as default };