Coroutine Concepts
Yield Value
A yield can return a value to the code that resumed the coroutine.
yielded value
This model keeps the yielded value as a scalar number so replay stays stable.
Yield Value
yield_value.lua
Replay: real traced execution (multi-file project)
local current = 2
local yielded = current * 10
local state = "yielded"
print("current=" .. current)
print("yielded=" .. yielded)
print("state=" .. state)
local current = 1
local yielded = current * 10
local state = "yielded"
print("current=" .. current)
print("yielded=" .. yielded)
print("state=" .. state)
local current = 4
local yielded = current * 10
local state = "yielded"
print("current=" .. current)
print("yielded=" .. yielded)
print("state=" .. state)
current ← 2, yielded ← 20, state ← yielded
1local current→ 2 = 2 --@current=1, 42local yielded→ 20 = current2 * 103local state→ yielded = "yielded"45print("current=" .. current2)6print("yielded=" .. yielded20)7print("state=" .. stateyielded)outputcurrent=2 yielded=20 state=yielded
current ← 1, yielded ← 10, state ← yielded
1local current→ 1 = 12local yielded→ 10 = current1 * 103local state→ yielded = "yielded"45print("current=" .. current1)6print("yielded=" .. yielded10)7print("state=" .. stateyielded)outputcurrent=1 yielded=10 state=yielded
current ← 4, yielded ← 40, state ← yielded
1local current→ 4 = 42local yielded→ 40 = current4 * 103local state→ yielded = "yielded"45print("current=" .. current4)6print("yielded=" .. yielded40)7print("state=" .. stateyielded)outputcurrent=4 yielded=40 state=yielded