diff options
Diffstat (limited to 'src/array.c')
| -rw-r--r-- | src/array.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/array.c b/src/array.c index 739b2b3e1..a49c2399c 100644 --- a/src/array.c +++ b/src/array.c @@ -591,6 +591,7 @@ mrb_ary_shift_m(mrb_state *mrb, mrb_value self) }; ary_modify_check(mrb, a); if (len == 0 || n == 0) return mrb_ary_new(mrb); + if (n < 0) mrb_raise(mrb, E_ARGUMENT_ERROR, "negative array shift"); if (n > len) n = len; val = mrb_ary_new_from_values(mrb, n, ARY_PTR(a)); if (ARY_SHARED_P(a)) { |
