Любое обращение к pixelGrid через pixelGrid[#][#] останавливает работу кода. Я объявлял pixelGrid несколькими способами, но лучше не стало. Если присвоить значение 0 и показать его, всё работает, но присваивание pixelGrid[0][0], тоже равного 0, внезапно всё ломает в этом месте. Неважно, обращаюсь ли я к массиву в условии, для изменения значения или где-то ещё.
var pixelGrid;
for (let row = 0; row < 9; row++) {
for (let column = 0; column < 9; column++) {
pixelGrid[row][column] = 0;
}
}
function redrawPixels() {
// Shortened for simplicity
ImageData.data[0] = 0; // Works fine.
ImageData.data[0] = pixelGrid[0][0]; // Function stops, and ctx.putImageData no longer updates canvas.
}