From c6596cf26a125e9759e01425bea8782ff58dbf4f Mon Sep 17 00:00:00 2001 From: Christopher Aue Date: Tue, 22 Aug 2017 14:42:59 +0200 Subject: Fixed register windows of OP_SENDs generated by NODE_{SCALL,CASE,YIELD,UNDEF}; ref #3783 --- test/t/codegen.rb | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'test') diff --git a/test/t/codegen.rb b/test/t/codegen.rb index 29f5ad525..e3f44de38 100644 --- a/test/t/codegen.rb +++ b/test/t/codegen.rb @@ -73,3 +73,39 @@ assert('negate literal register alignment') do assert_equal [2], a end + +assert('register window of calls (#3783)') do + # NODE_SCALL + assert_nothing_raised do + Object.new&.__id__ + end + + # NODE_CASE + assert_nothing_raised do + case 1 + when nil + end + end + + # NODE_CASE with splat + assert_nothing_raised do + case 1 + when *nil + end + end + + # NODE_YIELD + def check_node_yield + yield + end + assert_nothing_raised do + check_node_yield{} + end + + # NODE_UNDEF + assert_nothing_raised do + class << Object.new + undef send + end + end +end \ No newline at end of file -- cgit v1.2.3