Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Срабатывание брейкбоинта зависит от... console.log? (https://javascript.ru/forum/misc/79773-srabatyvanie-brejjkbointa-zavisit-ot-console-log.html)

jaroslav.tavgen 22.03.2020 18:38

Срабатывание брейкбоинта зависит от... console.log?
 
Я пишу шахматного бота, и столкнулся с такой штукой. Я ставлю условный брейктпоинт, что переменная должна быть равна определённому значению.

Этот брейкпойнт не срабатывает (браузер - Chrome). Однако если я перед этой строчкой ставлю console.log(*та самая переменная*), то брейкпойнт срабатывает!

В коде ниже я ставлю брейкпойнт 'firstMove === "Qd7"' на строчке номер 10. Он срабатывает. Но если убрать console.log(firstMove) на строчке номер 9, то кондициональный брейкпойнт срабатывать перестаёт! В чём причина?

Фрагмент кода:
moves.last().every(
        firstMove=>{
            makeAMove(firstMove);
            positions.push(game.fen());
            worstPositionValuations.push(-Infinity);
            moves.push(game.moves());
            moves.last().every(
                secondMove=> {
                    console.log(firstMove);
                    makeAMove(secondMove);
                    positions.push(game.fen());
                    worstPositionValuations.push(Infinity);
                    moves.push(game.moves());
                    moves.last().every(
                        thirdMove => {
                            makeAMove(thirdMove);
                            positions.push(game.fen());
                            positionValuation = position_valuation(positions.last());
                            if (worstPositionValuations.last() > positionValuation) {
                                worstPositionValuations.last(positionValuation);
                            }
                            positions.pop();
                            goToPosition(positions.last());
                            return true;
                        }
                    );
                    moves.pop();
                    if (worstPositionValuations[worstPositionValuations.length - 2] < worstPositionValuations.last()) {
                        worstPositionValuations[worstPositionValuations.length - 2] = worstPositionValuations.last();
                    }
                    worstPositionValuations.pop();
                    positions.pop();
                    goToPosition(positions.last());
                    return true;
                }
            );
            moves.pop();
            positions.pop();
            goToPosition(positions.last());
            if(worstPositionValuations.last() < initialPositionValuation){
                moveToMake = firstMove;
                return false;
            }
            worstPositionValuations.pop();
            return true;
        }
    );


Часовой пояс GMT +3, время: 19:46.