Hi,

I'd like to double-check the Array#fill behavior and to figure out
which is a proper/intended behavior
and which is just a bug or not intended behavior. This is needed for
the RubySpec project to
provide better tests.

The following simple code:
[1, 2, 3].fill('a', 1, -3)

Produces wildly different results on different MRI branches:

* MRI 1.8.6pl114    #==> ArgumentError: argument too big.
* MRI 1.8.6pl257    #==> Ignores the call, doesn't change anything.
* MRI 1.8.7 branch #==> Ignores the call, doesn't change anything
* MRI 1.8 branch    #==> Raises IndexError
* MRI 1.9 branch    #==> Raises IndexError

Maybe I starting to sound as a broken record, but was it really necessary
to change the MRI 1.8.6 behavior at all? This is an incompatible change, and
we end up with three different behaviors.

Thank you,
  --Vladimir