legacy.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*!
  2. * Legacy browser support
  3. */
  4. [].map || (Array.prototype.map = function (a, b) {
  5. for (var c = this, d = c.length, e = new Array(d), f = 0; d > f; f++) f in c && (e[f] = a.call(b, c[f], f, c));
  6. return e
  7. }), [].filter || (Array.prototype.filter = function (a) {
  8. if (null == this) throw new TypeError;
  9. var b = Object(this),
  10. c = b.length >>> 0;
  11. if ("function" != typeof a) throw new TypeError;
  12. for (var d = [], e = arguments[1], f = 0; c > f; f++)
  13. if (f in b) {
  14. var g = b[f];
  15. a.call(e, g, f, b) && d.push(g)
  16. }
  17. return d
  18. }), [].indexOf || (Array.prototype.indexOf = function (a) {
  19. if (null == this) throw new TypeError;
  20. var b = Object(this),
  21. c = b.length >>> 0;
  22. if (0 === c) return -1;
  23. var d = 0;
  24. if (arguments.length > 1 && (d = Number(arguments[1]), d != d ? d = 0 : 0 !== d && d != 1 / 0 && d != -(1 / 0) && (d = (d > 0 || -1) * Math.floor(Math.abs(d)))), d >= c) return -1;
  25. for (var e = d >= 0 ? d : Math.max(c - Math.abs(d), 0); c > e; e++)
  26. if (e in b && b[e] === a) return e;
  27. return -1
  28. });
  29. /*!
  30. * Cross-Browser Split 1.1.1
  31. * Copyright 2007-2012 Steven Levithan <stevenlevithan.com>
  32. * Available under the MIT License
  33. * http://blog.stevenlevithan.com/archives/cross-browser-split
  34. */
  35. var nativeSplit = String.prototype.split,
  36. compliantExecNpcg = void 0 === /()??/.exec("")[1];
  37. String.prototype.split = function (a, b) {
  38. var c = this;
  39. if ("[object RegExp]" !== Object.prototype.toString.call(a)) return nativeSplit.call(c, a, b);
  40. var d, e, f, g, h = [],
  41. i = (a.ignoreCase ? "i" : "") + (a.multiline ? "m" : "") + (a.extended ? "x" : "") + (a.sticky ? "y" : ""),
  42. j = 0;
  43. for (a = new RegExp(a.source, i + "g"), c += "", compliantExecNpcg || (d = new RegExp("^" + a.source + "$(?!\\s)", i)), b = void 0 === b ? -1 >>> 0 : b >>> 0;
  44. (e = a.exec(c)) && (f = e.index + e[0].length, !(f > j && (h.push(c.slice(j, e.index)), !compliantExecNpcg && e.length > 1 && e[0].replace(d, function () {
  45. for (var a = 1; a < arguments.length - 2; a++) void 0 === arguments[a] && (e[a] = void 0)
  46. }), e.length > 1 && e.index < c.length && Array.prototype.push.apply(h, e.slice(1)), g = e[0].length, j = f, h.length >= b)));) a.lastIndex === e.index && a.lastIndex++;
  47. return j === c.length ? (g || !a.test("")) && h.push("") : h.push(c.slice(j)), h.length > b ? h.slice(0, b) : h
  48. };