Branch :
quote while false do
puts("This should not print")
end
while false do
puts("This should not print")
end
quote while (false) do
puts("This should not print with parens")
end
while (false) do
puts("This should not print with parens")
end
quote do
i = 0
while (i < 3) do
puts(i)
i = i + 1
end
i
end
do
i = 0
while (i < 3) do
puts(i)
i = i + 1
end
i
end
quote do
i = 0
while i < 3 do
puts(i)
i = i + 1
end
i
end
do
i = 0
while i < 3 do
puts(i)
i = i + 1
end
i
end
quote do
sum = 0
i = 1
while (i <= 5) do
sum = sum + i
i = i + 1
end
sum
end
do
sum = 0
i = 1
while (i <= 5) do
sum = sum + i
i = i + 1
end
sum
end
quote do
sum = 0
i = 1
while i <= 5 do
sum = sum + i
i = i + 1
end
sum
end
do
sum = 0
i = 1
while i <= 5 do
sum = sum + i
i = i + 1
end
sum
end
quote do
x = 10
while (x > 0) do
if x == 5 do
break
end
puts(x)
x = x - 1
end
x
end
do
x = 10
while (x > 0) do
if x == 5 do
break
end
puts(x)
x = x - 1
end
x
end
quote do
x = 10
while x > 0 do
if x == 5 do
break
end
puts(x)
x = x - 1
end
x
end
do
x = 10
while x > 0 do
if x == 5 do
break
end
puts(x)
x = x - 1
end
x
end
quote do
result = []
i = 0
while (i < 3) do
result = [i | result]
i = i + 1
end
result
end
do
result = []
i = 0
while (i < 3) do
result = [i | result]
i = i + 1
end
result
end
quote do
result = []
i = 0
while i < 3 do
result = [i | result]
i = i + 1
end
result
end
do
result = []
i = 0
while i < 3 do
result = [i | result]
i = i + 1
end
result
end
quote do
i = 0
result = []
while i < 10 do
i = i + 1
if i mod 2 == 0 do
continue
end
result = [i | result]
end
result
end
do
i = 0
result = []
while i < 10 do
i = i + 1
if i mod 2 == 0 do
continue
end
result = [i | result]
end
result
end
quote do
result = []
i = 0
while i < 10 do
i = i + 1
if i mod 2 == 0 do
continue
end
if i > 7 do
break
end
result = [i | result]
end
result
end
do
result = []
i = 0
while i < 10 do
i = i + 1
if i mod 2 == 0 do
continue
end
if i > 7 do
break
end
result = [i | result]
end
result
end
block :test do
i = 0
while i < 10 do
puts("loop #{i}")
i = i + 1
if i == 4 do
return :ok
end
end
:failed
end
quote block :unwind_test do
unwind_protect(
do
i = 0
while i < 5 do
puts("unwind loop #{i}")
i = i + 1
if i == 3 do
return "early exit"
end
end
"normal completion"
end,
puts("cleanup executed")
)
end
block :unwind_test do
unwind_protect(
do
i = 0
while i < 5 do
puts("unwind loop #{i}")
i = i + 1
if i == 3 do
return "early exit"
end
end
"normal completion"
end,
puts("cleanup executed")
)
end