summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2015-10-05 09:51:43 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2015-10-05 09:51:43 +0900
commit79c461875465eafea6eb93c0adfeb377d206f4e7 (patch)
treefaf3c50b59a29dd43fbd9638a00c4f5cec84fcae
parente1ec2b02bebabca9ae6de14709c8ae0724a626be (diff)
parent49bfaca6c77bbf72b225ecaa79a9e1a1baa57852 (diff)
downloadmruby-79c461875465eafea6eb93c0adfeb377d206f4e7.tar.gz
mruby-79c461875465eafea6eb93c0adfeb377d206f4e7.zip
Merge pull request #2975 from yasuyuki/eval_rescue
Add regression test for #2933
-rw-r--r--mrbgems/mruby-eval/test/eval.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/mrbgems/mruby-eval/test/eval.rb b/mrbgems/mruby-eval/test/eval.rb
index e5d3bde18..17860b132 100644
--- a/mrbgems/mruby-eval/test/eval.rb
+++ b/mrbgems/mruby-eval/test/eval.rb
@@ -78,3 +78,22 @@ assert('Kernel.#eval(string) context') do
assert_equal('class') { obj.const_string }
end
+assert('Object#instance_eval with begin-rescue-ensure execution order') do
+ class HellRaiser
+ def raise_hell
+ order = [:enter_raise_hell]
+ begin
+ order.push :begin
+ self.instance_eval("raise 'error'")
+ rescue
+ order.push :rescue
+ ensure
+ order.push :ensure
+ end
+ order
+ end
+ end
+
+ hell_raiser = HellRaiser.new
+ assert_equal([:enter_raise_hell, :begin, :rescue, :ensure], hell_raiser.raise_hell)
+end