diff options
| author | nagachika <nagachika@ruby-lang.org> | 2023-07-22 14:01:55 +0900 |
|---|---|---|
| committer | nagachika <nagachika@ruby-lang.org> | 2023-07-22 14:01:55 +0900 |
| commit | b97a744a3778abe52fffb051e1460a0a6f7c4a6d (patch) | |
| tree | ed3958e1170b8671737176040d3b2c41116a1e63 /spec/ruby | |
| parent | 65d294ad019c8ac5bba12e2c9098360bacafc9e3 (diff) | |
merge revision(s) 9c94db7cfc584e982a6449b72e58a1cf25024177,fe4d906f5fbacbe6e9267af3bd3503339bad63a9: [Backport #19774]
Add tests for `return` in `BEGIN` and `END` blocks
---
spec/ruby/language/return_spec.rb | 15 +++++++++++++++
test/ruby/test_syntax.rb | 1 +
2 files changed, 16 insertions(+)
[Bug #19774] Fix segfault at `return` in `END`
---
eval_error.c | 7 ++++++-
test/ruby/test_syntax.rb | 5 +++++
2 files changed, 11 insertions(+), 1 deletion(-)
Diffstat (limited to 'spec/ruby')
| -rw-r--r-- | spec/ruby/language/return_spec.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/spec/ruby/language/return_spec.rb b/spec/ruby/language/return_spec.rb index 94c15b697e..a62ed1242d 100644 --- a/spec/ruby/language/return_spec.rb +++ b/spec/ruby/language/return_spec.rb @@ -435,6 +435,21 @@ describe "The return keyword" do end end + describe "within BEGIN" do + it "is allowed" do + File.write(@filename, <<-END_OF_CODE) + BEGIN { + ScratchPad << "before call" + return + ScratchPad << "after call" + } + END_OF_CODE + + load @filename + ScratchPad.recorded.should == ["before call"] + end + end + describe "file loading" do it "stops file loading and execution" do File.write(@filename, <<-END_OF_CODE) |
