aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby/test_yield.rb
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-08-18 06:31:04 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-08-18 06:31:04 +0000
commit88e1fec39389ab4ea4952db397e7ad1d1bab4a65 (patch)
tree17344083bf0257200731edd3235165d1ddc33e4b /test/ruby/test_yield.rb
parent65b0b08529bd33b6f1f9f6c0ac59a2e3035959d7 (diff)
downloadruby-88e1fec39389ab4ea4952db397e7ad1d1bab4a65.tar.gz
lambda yield emulator refactored.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13098 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_yield.rb')
-rw-r--r--test/ruby/test_yield.rb18
1 files changed, 11 insertions, 7 deletions
diff --git a/test/ruby/test_yield.rb b/test/ruby/test_yield.rb
index ccbd91d5bb..fb01be4ca7 100644
--- a/test/ruby/test_yield.rb
+++ b/test/ruby/test_yield.rb
@@ -220,11 +220,11 @@ class TestRubyYieldGen < Test::Unit::TestCase
if islambda
if star_index
if args.length < params.length - 1
- throw :argumenterror, ArgumentError
+ throw :emuerror, ArgumentError
end
else
if args.length != params.length
- throw :argumenterror, ArgumentError
+ throw :emuerror, ArgumentError
end
end
end
@@ -254,7 +254,7 @@ class TestRubyYieldGen < Test::Unit::TestCase
result_binding
end
- def emu(t, islambda)
+ def emu_bind(t, islambda)
#puts
#p t
command_args_noblock = t[1]
@@ -297,13 +297,17 @@ class TestRubyYieldGen < Test::Unit::TestCase
result_binding
end
+ def emu(t, vars, islambda)
+ catch(:emuerror) {
+ emu_binding = emu_bind(t, islambda)
+ vars.map {|var| emu_binding.fetch(var, "NOVAL") }
+ }
+ end
+
def check_nofork(t, islambda=false)
t, vars = rename_var(t)
t = t.subst('vars') { " [#{vars.join(",")}]" }
- emu_values = catch(:argumenterror) {
- emu_binding = emu(t, islambda)
- vars.map {|var| emu_binding.fetch(var, "NOVAL") }
- }
+ emu_values = emu(t, vars, islambda)
s = t.to_s
#print "#{s}\t\t"
#STDOUT.flush