Fix instances where return value of mrb_method_search_vm is unchecked

Reported by @charliesome
This commit is contained in:
Francois Chagnon
2016-11-17 14:52:52 -05:00
committed by Bouke van der Bijl
parent a630c4f413
commit a384bcce35
2 changed files with 68 additions and 10 deletions
+31
View File
@@ -20,3 +20,34 @@ assert('NoMethodError#args', '15.2.32.2.1') do
end
end
end
assert('Can still raise when BasicObject#method_missing is removed') do
assert_raise(TypeError) do
begin
BasicObject.alias_method(:old_method_missing, :method_missing)
BasicObject.remove_method(:method_missing)
1.__send__(:foo)
ensure
BasicObject.alias_method(:method_missing, :old_method_missing)
BasicObject.remove_method(:old_method_missing)
end
end
end
assert('Can still call super when BasicObject#method_missing is removed') do
assert_raise(TypeError) do
class A
def foo
super
end
end
begin
BasicObject.alias_method(:old_method_missing, :method_missing)
BasicObject.remove_method(:method_missing)
A.new.foo
ensure
BasicObject.alias_method(:method_missing, :old_method_missing)
BasicObject.remove_method(:old_method_missing)
end
end
end