En el siguiente código, por qué tengo error que dice que 'valor' no está definido?

function sumInput() {
            let valores = [];
            do {
                let valor = prompt("Número: ", 0);
                valores.push(valor);
            } while (valor != "" && valor != null
                && valor != Number(valor));


            let suma = 0;
            for (let valor of valores) {
                suma = suma + valor;
            }
            return suma;
        }
        alert(`suma: ${sumInput()}`);