у getElementsByTagName ( который следует заменить на querySelectorAll ) - нет метода forEach... а через call можно взять метод из другого объекта...
Можно еще
[].forEach.call(...)
https://learn.javascript.ru/call-apply-decoratorsЕго присутствие там бессмысленно, потому что вроде как используется для поддержки старых браузеров, но рядом в коде написано let, который из ES6 )
А в современных браузерах у querySelectorAll есть встроенный forEach, можно прямо
document.querySelectorAll('section').forEach(...)
Array.prototype.forEach.call(section, function(e) {
sections[e.id] = e.offsetTop;
});