Вдруг кому пригодится…
Оказалось, что Сафари по-своему работает с массивами, например, такой код, вызывает заполнение массива от 0 до 27956 значением «undefined». Что вызывает жуткие тормоза (5-10 минут задумчивости вполне нормально...)
promo_data = new Array();
promo_data['27957'] = '27957';
var promo_data2 = promo_data
Если сменить «promo_data = new Array()» на «promo_data = {}», всё работает быстро