require 'benchmark'
require 'rubygems'
require 'active_support'
class X
def return_by_returning
returning i = 0 do
end
end
def return_by_return
i = 0
return i
end
def return_by_omission
i = 0
i
end
end
t = X.new
TESTS = 1_000_000
Benchmark.bmbm do |results|
results.report("def n; i = 0; return i; end") { TESTS.times { t.return_by_return } }
results.report("def n; i = 0; i ; end") { TESTS.times { t.return_by_omission } }
results.report("def n; returning i = 0 do; end; end") { TESTS.times { t.return_by_returning } }
end