EncoderDecoderTogether.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. 'use strict';
  2. (function (r) {
  3. function x() {}
  4. function y() {}
  5. var z = String.fromCharCode,
  6. v = {}.toString,
  7. A = v.call(r.SharedArrayBuffer),
  8. B = v(),
  9. q = r.Uint8Array,
  10. t = q || Array,
  11. w = q ? ArrayBuffer : t,
  12. C = w.isView || function (g) {
  13. return g && "length" in g
  14. },
  15. D = v.call(w.prototype);
  16. w = y.prototype;
  17. var E = r.TextEncoder,
  18. a = new(q ? Uint16Array : t)(32);
  19. x.prototype.decode = function (g) {
  20. if (!C(g)) {
  21. var l = v.call(g);
  22. if (l !== D && l !== A && l !== B) throw TypeError("Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'");
  23. g = q ? new t(g) : g || []
  24. }
  25. for (var f = l = "", b = 0, c = g.length | 0, u = c - 32 | 0, e, d, h = 0, p = 0, m, k = 0, n = -1; b < c;) {
  26. for (e = b <= u ? 32 : c - b | 0; k < e; b = b + 1 | 0, k = k + 1 | 0) {
  27. d = g[b] & 255;
  28. switch (d >> 4) {
  29. case 15:
  30. m = g[b = b + 1 | 0] & 255;
  31. if (2 !== m >> 6 || 247 < d) {
  32. b = b - 1 | 0;
  33. break
  34. }
  35. h = (d & 7) << 6 | m & 63;
  36. p = 5;
  37. d = 256;
  38. case 14:
  39. m = g[b = b + 1 | 0] & 255, h <<= 6, h |= (d & 15) << 6 | m & 63, p = 2 === m >> 6 ? p + 4 | 0 : 24, d = d + 256 & 768;
  40. case 13:
  41. case 12:
  42. m = g[b = b + 1 | 0] & 255, h <<= 6, h |= (d & 31) << 6 | m & 63, p = p + 7 | 0, b < c && 2 === m >> 6 && h >> p && 1114112 > h ? (d = h, h = h - 65536 | 0, 0 <= h && (n = (h >> 10) + 55296 | 0, d = (h & 1023) + 56320 | 0, 31 > k ? (a[k] = n, k = k + 1 | 0, n = -1) :
  43. (m = n, n = d, d = m))) : (d >>= 8, b = b - d - 1 | 0, d = 65533), h = p = 0, e = b <= u ? 32 : c - b | 0;
  44. default:
  45. a[k] = d;
  46. continue;
  47. case 11:
  48. case 10:
  49. case 9:
  50. case 8:
  51. }
  52. a[k] = 65533
  53. }
  54. f += z(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22], a[23], a[24], a[25], a[26], a[27], a[28], a[29], a[30], a[31]);
  55. 32 > k && (f = f.slice(0, k - 32 | 0));
  56. if (b < c) {
  57. if (a[0] = n, k = ~n >>> 31, n = -1, f.length < l.length) continue
  58. } else -1 !== n && (f += z(n));
  59. l += f;
  60. f = ""
  61. }
  62. return l
  63. };
  64. w.encode = function (g) {
  65. g = void 0 === g ? "" : "" + g;
  66. var l = g.length |
  67. 0,
  68. f = new t((l << 1) + 8 | 0),
  69. b, c = 0,
  70. u = !q;
  71. for (b = 0; b < l; b = b + 1 | 0, c = c + 1 | 0) {
  72. var e = g.charCodeAt(b) | 0;
  73. if (127 >= e) f[c] = e;
  74. else {
  75. if (2047 >= e) f[c] = 192 | e >> 6;
  76. else {
  77. a: {
  78. if (55296 <= e)
  79. if (56319 >= e) {
  80. var d = g.charCodeAt(b = b + 1 | 0) | 0;
  81. if (56320 <= d && 57343 >= d) {
  82. e = (e << 10) + d - 56613888 | 0;
  83. if (65535 < e) {
  84. f[c] = 240 | e >> 18;
  85. f[c = c + 1 | 0] = 128 | e >> 12 & 63;
  86. f[c = c + 1 | 0] = 128 | e >> 6 & 63;
  87. f[c = c + 1 | 0] = 128 | e & 63;
  88. continue
  89. }
  90. break a
  91. }
  92. e = 65533
  93. } else 57343 >= e && (e = 65533);!u && b << 1 < c && b << 1 < (c - 7 | 0) && (u = !0, d = new t(3 * l), d.set(f), f = d)
  94. }
  95. f[c] = 224 | e >> 12;f[c = c + 1 | 0] = 128 | e >> 6 & 63
  96. }
  97. f[c = c + 1 | 0] = 128 | e & 63
  98. }
  99. }
  100. return q ?
  101. f.subarray(0, c) : f.slice(0, c)
  102. };
  103. E || (r.TextDecoder = x, r.TextEncoder = y)
  104. })("" + void 0 == typeof global ? "" + void 0 == typeof self ? this : self : global); //AnonyCo
  105. //# sourceMappingURL=https://cdn.jsdelivr.net/gh/AnonyCo/FastestSmallestTextEncoderDecoder/EncoderDecoderTogether.min.js.map