diff options
| -rw-r--r-- | src/hash.c | 1 | ||||
| -rw-r--r-- | test/t/hash.rb | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/hash.c b/src/hash.c index d8970116d..566728253 100644 --- a/src/hash.c +++ b/src/hash.c @@ -987,6 +987,7 @@ mrb_init_hash(mrb_state *mrb) mrb_define_method(mrb, h, "member?", mrb_hash_has_key, MRB_ARGS_REQ(1)); /* 15.2.13.4.21 */ mrb_define_method(mrb, h, "replace", mrb_hash_replace, MRB_ARGS_REQ(1)); /* 15.2.13.4.23 */ mrb_define_method(mrb, h, "shift", mrb_hash_shift, MRB_ARGS_NONE()); /* 15.2.13.4.24 */ + mrb_define_method(mrb, h, "dup", mrb_hash_dup, MRB_ARGS_NONE()); mrb_define_method(mrb, h, "size", mrb_hash_size_m, MRB_ARGS_NONE()); /* 15.2.13.4.25 */ mrb_define_method(mrb, h, "store", mrb_hash_aset, MRB_ARGS_REQ(2)); /* 15.2.13.4.26 */ mrb_define_method(mrb, h, "value?", mrb_hash_has_value, MRB_ARGS_REQ(1)); /* 15.2.13.4.27 */ diff --git a/test/t/hash.rb b/test/t/hash.rb index 39f9ae9d8..837fe0216 100644 --- a/test/t/hash.rb +++ b/test/t/hash.rb @@ -34,6 +34,13 @@ assert('Hash#clear', '15.2.13.4.4') do assert_equal({ }, a) end +assert('Hash#dup') do + a = { 'a' => 1 } + b = a.dup + a['a'] = 2 + assert_equal(b, {'a' => 1}) +end + assert('Hash#default', '15.2.13.4.5') do a = Hash.new b = Hash.new('abc') |
