decode functions now ie8 compatible

This commit is contained in:
sanex3339
2016-10-30 23:08:51 +03:00
parent 761652bbbc
commit a33bef01b9
4 changed files with 20 additions and 10 deletions
+1 -1
View File
@@ -281,7 +281,7 @@ Available values:
* `true` (`boolean`): encode `unicodeArray` values using `base64`
* `false` (`boolean`): don't encode `unicodeArray` values
* `'base64'` (`string`): encode `unicodeArray` values using `base64`
* `'rc4'` (`string`): encode `unicodeArray` values using `rc4`
* `'rc4'` (`string`): encode `unicodeArray` values using `rc4`. **Much slower then `base64`!**
### `unicodeArrayThreshold`
Type: `number` Default: `0.8` Min: `0` Max: `1`
+2 -2
View File
@@ -3985,7 +3985,7 @@ exports.SelfDefendingTemplate = SelfDefendingTemplate;
"use strict";
function UnicodeArrayBase64DecodeNodeTemplate() {
return " \n if (!{unicodeArrayCallsWrapperName}.atobPolyfillAppended) {\n {atobPolyfill}\n \n {unicodeArrayCallsWrapperName}.atobPolyfillAppended = true;\n }\n \n var decodedValues = {unicodeArrayCallsWrapperName}.data || {};\n \n if (!decodedValues[index]) {\n var base64DecodeUnicode = function (str) {\n return decodeURIComponent(Array.prototype.map.call(atob(str), function(c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n }\n \n {selfDefendingCode}\n \n value = base64DecodeUnicode(value);\n decodedValues[index] = value;\n } else {\n value = decodedValues[index];\n } \n \n {unicodeArrayCallsWrapperName}.data = decodedValues; \n ";
return " \n if (!{unicodeArrayCallsWrapperName}.atobPolyfillAppended) {\n {atobPolyfill}\n \n {unicodeArrayCallsWrapperName}.atobPolyfillAppended = true;\n }\n \n var decodedValues = {unicodeArrayCallsWrapperName}.data || {};\n \n if (!decodedValues[index]) {\n var base64DecodeUnicode = function (str) {\n var stringChars = atob(str).split('');\n var newStringChars = '';\n \n for (var char in stringChars) {\n newStringChars += '%' + ('00' + stringChars[char].charCodeAt(0).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(newStringChars);\n }\n \n {selfDefendingCode}\n \n value = base64DecodeUnicode(value);\n decodedValues[index] = value;\n } else {\n value = decodedValues[index];\n } \n \n {unicodeArrayCallsWrapperName}.data = decodedValues; \n ";
}
exports.UnicodeArrayBase64DecodeNodeTemplate = UnicodeArrayBase64DecodeNodeTemplate;
@@ -4009,7 +4009,7 @@ exports.UnicodeArrayCallsWrapperTemplate = UnicodeArrayCallsWrapperTemplate;
"use strict";
function UnicodeArrayRc4DecodeNodeTemplate() {
return "\n if (!{unicodeArrayCallsWrapperName}.atobPolyfillAppended) {\n {atobPolyfill}\n \n {unicodeArrayCallsWrapperName}.atobPolyfillAppended = true;\n }\n \n {rc4Polyfill}\n \n var decodedValues = {unicodeArrayCallsWrapperName}.data || {};\n \n if (!decodedValues[index]) {\n var base64DecodeUnicode = function (str) {\n return decodeURIComponent(Array.prototype.map.call(atob(str), function(c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n }\n \n {selfDefendingCode}\n \n value = rc4(base64DecodeUnicode(value), key);\n decodedValues[index] = value;\n } else {\n value = decodedValues[index];\n } \n \n {unicodeArrayCallsWrapperName}.data = decodedValues; \n ";
return "\n if (!{unicodeArrayCallsWrapperName}.atobPolyfillAppended) {\n {atobPolyfill}\n \n {unicodeArrayCallsWrapperName}.atobPolyfillAppended = true;\n }\n \n {rc4Polyfill}\n \n var decodedValues = {unicodeArrayCallsWrapperName}.data || {};\n \n if (!decodedValues[index]) {\n var base64DecodeUnicode = function (str) {\n var stringChars = atob(str).split('');\n var newStringChars = '';\n \n for (var char in stringChars) {\n newStringChars += '%' + ('00' + stringChars[char].charCodeAt(0).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(newStringChars);\n }\n\n {selfDefendingCode}\n \n value = rc4(base64DecodeUnicode(value), key);\n decodedValues[index] = value;\n } else {\n value = decodedValues[index];\n } \n \n {unicodeArrayCallsWrapperName}.data = decodedValues; \n ";
}
exports.UnicodeArrayRc4DecodeNodeTemplate = UnicodeArrayRc4DecodeNodeTemplate;
@@ -13,9 +13,14 @@ export function UnicodeArrayBase64DecodeNodeTemplate (): string {
if (!decodedValues[index]) {
var base64DecodeUnicode = function (str) {
return decodeURIComponent(Array.prototype.map.call(atob(str), function(c) {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
}).join(''));
var stringChars = atob(str).split('');
var newStringChars = '';
for (var char in stringChars) {
newStringChars += '%' + ('00' + stringChars[char].charCodeAt(0).toString(16)).slice(-2);
}
return decodeURIComponent(newStringChars);
}
{selfDefendingCode}
@@ -15,11 +15,16 @@ export function UnicodeArrayRc4DecodeNodeTemplate (): string {
if (!decodedValues[index]) {
var base64DecodeUnicode = function (str) {
return decodeURIComponent(Array.prototype.map.call(atob(str), function(c) {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
}).join(''));
var stringChars = atob(str).split('');
var newStringChars = '';
for (var char in stringChars) {
newStringChars += '%' + ('00' + stringChars[char].charCodeAt(0).toString(16)).slice(-2);
}
return decodeURIComponent(newStringChars);
}
{selfDefendingCode}
value = rc4(base64DecodeUnicode(value), key);