summaryrefslogtreecommitdiff
path: root/bootstraptest
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-19 02:46:02 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-19 02:46:02 +0000
commitc3e619c83dcd3223cb6d17d5a1884039b5d0cc4f (patch)
tree23b44f107b689200bd77efb32606455f56e65529 /bootstraptest
parent33e5cfee7b90ec800e4546c6a0c0a73c2a66d73c (diff)
* vm_insnhelper.c (vm_throw): fix "return" process from "lambda".
* bootstraptest/test_proc.rb: add a test. * bootstraptest/pending.rb: add a pending bug. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'bootstraptest')
-rw-r--r--bootstraptest/pending.rb17
-rw-r--r--bootstraptest/test_proc.rb14
2 files changed, 31 insertions, 0 deletions
diff --git a/bootstraptest/pending.rb b/bootstraptest/pending.rb
index 30c2416..b894fb6 100644
--- a/bootstraptest/pending.rb
+++ b/bootstraptest/pending.rb
@@ -13,3 +13,20 @@ assert_equal 'A', %q{
B.new.a = 'B'
A.new.a
}, '[ruby-core:17019]'
+
+assert_equal 'ok', %q{
+ def m
+ lambda{
+ proc{
+ return :ng1
+ }
+ }.call.call
+ :ng2
+ end
+
+ begin
+ m()
+ rescue LocalJumpError
+ :ok
+ end
+}
diff --git a/bootstraptest/test_proc.rb b/bootstraptest/test_proc.rb
index 1ffd5c0..f384ba3 100644
--- a/bootstraptest/test_proc.rb
+++ b/bootstraptest/test_proc.rb
@@ -364,3 +364,17 @@ assert_equal 'ok', %q{
def12
$x
}, '[ruby-core:17164]'
+
+assert_equal 'ok', %q{
+ def m
+ pr = proc{
+ proc{
+ return :ok
+ }
+ }.call
+ pr.call
+ :ng
+ end
+ m()
+}
+