(function() {
    /**
     * Загружает указанный скрипт.
     * @param {string} file Путь до js файла.
     * @param {Function} onLoad Функция, которая будет выполнена после успешной загрузки скрипта.
     */
    function load(file, onLoad) {
        var allTags = document.getElementsByTagName('script');
        var lastTag = allTags[allTags.length - 1];
        var newTag = document.createElement('script');

        newTag.onload = function() { onLoad ? onLoad() : null; };
        newTag.async = false;
        newTag.src = file;

        lastTag.parentNode.insertBefore(newTag, lastTag);
    }

    /**
     * Загружает массив javascript файлов.
     * @param {string[]} files Массив путей до js файлов.
     */
    function all(files) {
        if (Object.prototype.toString.call(files) !== '[object Array]') {
            return;
        }
        
        for (var i = 0; i < files.length; i++) {
            load(files[i]);
        }
    }

    if (window.document.documentMode || !window.Promise || !window.Set || !window.Map || !window.URL) {
        load('/front/build/polyfills.js?v3', all.bind(this, window.scripts));
    } else {
        all(window.scripts);
    }
}());