mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge pull request #3091 from visualsayed/fix_hash_replace_method
protect NoMethodError from calling to_hash in replace
This commit is contained in:
@@ -154,6 +154,7 @@ class Hash
|
||||
#
|
||||
# ISO 15.2.13.4.23
|
||||
def replace(hash)
|
||||
raise TypeError, "can't convert argument into Hash" unless hash.respond_to?(:to_hash)
|
||||
self.clear
|
||||
hash = hash.to_hash
|
||||
hash.each_key{|k|
|
||||
|
||||
@@ -239,6 +239,10 @@ assert('Hash#replace', '15.2.13.4.23') do
|
||||
a = Hash.new{|h,x| x}
|
||||
b.replace(a)
|
||||
assert_equal(127, b[127])
|
||||
|
||||
assert_raise(TypeError) do
|
||||
{ 'abc_key' => 'abc_value' }.replace "a"
|
||||
end
|
||||
end
|
||||
|
||||
assert('Hash#shift', '15.2.13.4.24') do
|
||||
|
||||
Reference in New Issue
Block a user