[macruby-changes] [1505] MacRuby/branches/experimental/test_vm/block.rb
source_changes at macosforge.org
source_changes at macosforge.org
Wed Apr 29 00:04:37 PDT 2009
Revision: 1505
http://trac.macosforge.org/projects/ruby/changeset/1505
Author: vincent.isambart at gmail.com
Date: 2009-04-29 00:04:30 -0700 (Wed, 29 Apr 2009)
Log Message:
-----------
added some crazy tests for returned procs
Modified Paths:
--------------
MacRuby/branches/experimental/test_vm/block.rb
Modified: MacRuby/branches/experimental/test_vm/block.rb
===================================================================
--- MacRuby/branches/experimental/test_vm/block.rb 2009-04-29 03:54:03 UTC (rev 1504)
+++ MacRuby/branches/experimental/test_vm/block.rb 2009-04-29 07:04:30 UTC (rev 1505)
@@ -228,5 +228,84 @@
p f.call
}
+assert "42", %{
+ def f()
+ a = nil
+ b = false
+ x = 42
+ while true
+ return a if b
+ b = true
+ a = proc { x }
+ end
+ end
+ p f.call
+}
+
+assert "42", %{
+ def f()
+ x = 42
+ $a = proc { x }
+ raise 'w'
+ end
+ begin
+ f
+ rescue
+ p $a.call
+ end
+}
+
+assert "42", %{
+ def g()
+ raise 'w'
+ end
+ def f()
+ x = 42
+ $a = proc { x }
+ g
+ end
+ begin
+ f
+ rescue
+ p $a.call
+ end
+}
+
+assert "42", %{
+ def f()
+ x = 42
+ $a = proc { x }
+ throw :w
+ end
+ catch(:w) do
+ f
+ end
+ p $a.call
+}
+
+assert "42", %{
+ def g()
+ throw :w
+ end
+ def f()
+ x = 42
+ $a = proc { x }
+ g()
+ end
+ catch(:w) do
+ f
+ end
+ p $a.call
+}
+
+assert "42", %{
+ def f()
+ x = 42
+ a = proc { x }
+ 1.times { return a }
+ end
+ p f.call
+}
+
# Enumerator
assert "[\"f\", \"o\", \"o\"]", "p 'foo'.chars.to_a"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090429/8dd37453/attachment.html>
More information about the macruby-changes
mailing list