MCPcopy Index your code
hub / github.com/Moli-X/Resources / Base64Code

Function Base64Code

Script/Parser.js:2992–3129  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

2990 */
2991//base64 完毕
2992function Base64Code() {
2993 // constants
2994 var b64chars
2995 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
2996 var b64tab = function (bin) {
2997 var t = {};
2998 for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;
2999 return t;
3000 }(b64chars);
3001 var fromCharCode = String.fromCharCode;
3002 // encoder stuff
3003 var cb_utob = function (c) {
3004 if (c.length < 2) {
3005 var cc = c.charCodeAt(0);
3006 return cc < 0x80 ? c
3007 : cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6))
3008 + fromCharCode(0x80 | (cc & 0x3f)))
3009 : (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f))
3010 + fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
3011 + fromCharCode(0x80 | (cc & 0x3f)));
3012 } else {
3013 var cc = 0x10000
3014 + (c.charCodeAt(0) - 0xD800) * 0x400
3015 + (c.charCodeAt(1) - 0xDC00);
3016 return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07))
3017 + fromCharCode(0x80 | ((cc >>> 12) & 0x3f))
3018 + fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
3019 + fromCharCode(0x80 | (cc & 0x3f)));
3020 }
3021 };
3022 var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
3023 var utob = function (u) {
3024 return u.replace(re_utob, cb_utob);
3025 };
3026 var cb_encode = function (ccc) {
3027 var padlen = [0, 2, 1][ccc.length % 3],
3028 ord = ccc.charCodeAt(0) << 16
3029 | ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8)
3030 | ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)),
3031 chars = [
3032 b64chars.charAt(ord >>> 18),
3033 b64chars.charAt((ord >>> 12) & 63),
3034 padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),
3035 padlen >= 1 ? '=' : b64chars.charAt(ord & 63)
3036 ];
3037 return chars.join('');
3038 };
3039 var btoa = function (b) {
3040 return b.replace(/[\s\S]{1,3}/g, cb_encode);
3041 };
3042 // var _encode = function(u) {
3043 // var isUint8Array = Object.prototype.toString.call(u) === '[object Uint8Array]';
3044 // return isUint8Array ? u.toString('base64')
3045 // : btoa(utob(String(u)));
3046 // }
3047 this.encode = function (u) {
3048 var isUint8Array = Object.prototype.toString.call(u) === '[object Uint8Array]';
3049 return isUint8Array ? u.toString('base64')

Callers

nothing calls this directly

Calls 4

btoaFunction · 0.85
utobFunction · 0.85
_decodeFunction · 0.85
toStringMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…