NovichokJS,
при формировании checkbox записывается его индекс в dataset. строка 54
checkboxElem.dataset.i = i;
когда происходит изменение этого элемента в listElem.
строка 84
listElem.addEventListener('change', handlerChexbox);
этот индекс извлекается из dataset, находится элемент массива (объект) с таким же индексом и в этом объекте изменяется свойство done, на противоположное, было false, станет true и наоборот.