Reimplement Array.prototype.fill — replace a slice of an array with a given value, supporting negative indices.