makeProfileTimer
function makeProfileTimer() {
    let start = performance.now();
    return function() {
        let end = performance.now();
        return `the code took ${end - start}ms`;
    };
}

let timer = makeProfileTimer();

alert("Замеряем время работы этого alert");
alert(timer());

function makeSaver(data){
    let newData = data()
    return () => {
         return newData
    }
}
var saver = makeSaver(Math.random)
var value1 = saver()
var value2 = saver()
console.log(value1, value2)
console.log(value1 === value2 )
var saver2 = makeSaver(() => console.log('saved function called') || [null, undefined, false, '', 0, Math.random()][Math.ceil(Math.random()*6)])
var value3 = saver2()
var value4 = saver2()
console.log(value3 === value4)

let namePrompt = prompt.bind(window, 'Как тебя зовут?')
let nameSaver = makeSaver(namePrompt)

alert(`Привет! Prompt еще не было!`)
alert(`Привет ${nameSaver()}. Только что запустился prompt, первый и последний раз`)
alert(`Слушай, ${nameSaver()}, го пить пиво. Ведь prompt был только один раз`)

let count = 5;
function timer() {
    console.log(count);
    const timeout = setTimeout(() => {
        timer();
    }, 1000);
    if (count > 0) {
        return (() => {
            return count--;
        })();
    }
    clearTimeout(timeout);
    if (count === 0) {
        console.log("поехали!");
    }
}
timer();





