Test nested control flow:
testCase(
\\var x: i64 = 15;
\\if (x > 10) {
\\ if (x > 20) { 1 } else { 2 }
\\} else {
\\ 3
\\}
, 2, &varNames, &varValues, &varCount);
## Part 5: Functions
This is the biggest step. A function call has to: evaluate arguments, save the caller's variables, bind arguments to parameters, execute the body, capture the return value, and restore everything. It's a lot of state management -- enough that passing five pointers around will finally break. We'll introduce a Context struct to bundle them, then keep going.
The reward: fib(10) = 89.