Trampolining simulates tail recursion with an iterative loop, helping control function stack growth when JavaScript lacks native tail-call optimization. A trampoline repeatedly invokes a function until a stopping condition occurs. section 7.4
Each repeated step can be wrapped in a thunk: a parameterless function that delays evaluating an argument expression until another function invokes it. The technique is introduced as a workaround rather than developed in detail. section 7.4
const factorial = (n, current = 1) =>
(n === 1) ? current
: factorial(n - 1, n * current);
Use the tail-recursive factorial example to see the recursive form that trampolining is intended to support when tail-call optimization is unavailable. section 7.4

