Ответ прост - вы используете функцию стрелки, которая не поддерживается в IE11: caniuse.com/#feat=arrow-functions
Если вы хотите, чтобы ваш код работал на IE11, недостаточно изменить функцию стрелки на обычную функцию, потому что у вас будет другое this . Используя функцию стрелки, ваш this такой же this , как в вашей функции load (). Но когда вы определяете нормальную функцию () (вместо функции стрелки), ваш этот будет изменен. Вот почему вам нужно определить var chart = this; в вашей функции load () и заменить this на chart в нескольких местах. Здесь у вас есть рабочий код:
chart: {
events: {
load: function() {
var chart = this;
for (let i = 0; i < this.series[1].data.length; i++) {
this.series[0].data.forEach(function(el) {
if (el['name'] == chart.series[1].data[i].Name) {
if(chart.series[1].data[i].status == 'Live'){
el.update({color: "lightgreen"});
}
}
return el
})
}
}
}
},
Рабочая демонстрация IE11: https://codepen.io/raf18seb/full/RYjavx/