Inside a regular (non-arrow) function, the arguments object holds every value passed by the caller, regardless of how many parameters are named. Iterating arguments here adds 1+2+3+4 to get 10, even though sum declares no parameters at all. The arguments object predates rest parameters and is the classic way variadic functions read their inputs.