(urls)
| 570 | }; |
| 571 | |
| 572 | var loadFiles = function (urls) { |
| 573 | var required = [], i, r, s, xhr, m, t, img, |
| 574 | ctl = [], ctlWrap = { |
| 575 | done: function (f) { |
| 576 | ctl.d = isFunction(f) ? f : noop; |
| 577 | return ctlWrap; |
| 578 | } |
| 579 | }, imageExtensions = toSet('png,bmp,gif,jpg,jpeg,svg,webp'); |
| 580 | ctl.c = function () { |
| 581 | if (ctl.length == ctl.n && ctl.n) { |
| 582 | ctl.n = 0; |
| 583 | ctl.sort(function (a, b) { return a[0] - b[0]; }); |
| 584 | var j, r, m, el, t, url; |
| 585 | for (j = 0; j < ctl.length; ++j) { |
| 586 | r = ctl[j], t = r[1][1], url = r[1][2]; |
| 587 | if (!t && (m = url.match(fileExtRe))) |
| 588 | t = m[1].toLowerCase(); |
| 589 | if (t == 'css') { |
| 590 | el = document.createElement('style'); |
| 591 | el.type = 'text/css'; |
| 592 | el.innerText = autoFixCSS(fixCSSRelUrls(url, r[2]).replace(/[\r\n]/g, '')); |
| 593 | head.appendChild(el); |
| 594 | } |
| 595 | if (t == 'js') { |
| 596 | el = document.createElement('script'); |
| 597 | // Allows easier debugging. |
| 598 | el.text = '//# sourceURL=' + url + '\n' + r[2]; |
| 599 | head.appendChild(el).parentNode.removeChild(el); |
| 600 | } |
| 601 | } |
| 602 | |
| 603 | ctl.d(); |
| 604 | } |
| 605 | }; |
| 606 | ctl.d = noop; |
| 607 | for (i = 0; i < urls.length; ++i) { |
| 608 | m = filePreExtRe.exec(urls[i]); |
| 609 | m[0] = (isUndefined(m[1]) ? '' : m[1]) + ':' + m[2]; |
| 610 | required.push(m); |
| 611 | } |
| 612 | ctl.n = required.length; |
| 613 | for (i = 0; i < ctl.n; ++i) { |
| 614 | r = required[i]; |
| 615 | if ((''+r[1]).toLowerCase() == 'img' || |
| 616 | ((m = (''+r[2]).match(fileExtRe)) && imageExtensions[m[1].toLowerCase()])) { |
| 617 | img = new Image(); |
| 618 | img.onload = img.onerror = imageReadyChecker(img, i, r, ctl); |
| 619 | img.src = r[2]; |
| 620 | } else { |
| 621 | xhr = new XMLHttpRequest(); |
| 622 | xhr.onreadystatechange = fileReadyChecker(xhr, i, r, ctl); |
| 623 | s = r[2].indexOf('?') > -1 ? '&' : '?'; |
| 624 | xhr.open('GET', r[2] + s + Math.random(), 1); |
| 625 | if (s = loadedFiles[r[0]]) { |
| 626 | xhr.setRequestHeader('If-Modified-Since', s[0]); |
| 627 | } |
| 628 | xhr.responseType = 'text'; |
| 629 | xhr.send(); |
no test coverage detected