sourcesrc://controls/for-range.htmlrenderedrendered://public/controls/for-range.htmluntil-exclusive and through-inclusive bounds, step, countdown, fractional values, index scopespecified
for generates its collection from numeric bounds, not a data read.
until stops before the bound; through includes it; exactly one of the two is legal.
from defaults to 0, step defaults to 1, index defaults to index; a negative step counts down.
Loop key and index stay scoped to their own for occurrence.
Expected behavior
Whole-number values render as integers (0, not 0.0); fractional steps keep their fractions.
Bound expressions must produce numbers (for.non_numeric_bound), step must be nonzero (for.zero_step), and ranges are capped at 100000 iterations (for.range_too_large).
Item identity is the zero-based index, so bound edits refresh the loop frame in place.