lelinhtinh/de4js

Disappearing string literal

karaby opened this issue · 1 comments

A literal '+' disappears in some combinations
Can be after a semicolon and/or before an exclamation point
Exsample
Source
var oV=oN['charAt'](0xa),oW=0xa;'+'!==oV&&'-'!==oV&&(oU=mb['RgUsn'](parseInt,oN[b('0x1b1c','uOvl')](0xa,0x2),0xa),oW+=0x2);}if(oO['setUTCFull'+'Year'](oP,oQ,oR),oO['setUTCHour'+'s'](oS,oT,oU,0x0),oW&&('+'===(oV=oN[b('0x1a18','uOvl')](oW))||'-'===oV)){var oX=0x3c*parseInt(oN[b('0xb35','Ohio')](oW+0x1,0x2),0xa)+parseInt(oN[b('0x1cac','xsKh')](oW+0x4,0x2),0xa);oX*=0xea60,'+'===oV?oO['setTime'](+oO-oX):oO['setTime'](+oO+oX);}return oO;
Result

            var oV = oN.charAt(10),
                oW = 10; !== oV && '-' !== oV && (oU = mb.RgUsn(parseInt, oN.substr(10, 2), 10), oW += 2);
        }
        if (oO.setUTCFullYear(oP, oQ, oR), oO.setUTCHours(oS, oT, oU, 0), oW && ('+' === (oV = oN.charAt(oW)) || '-' === oV)) {
            var oX = 60 * parseInt(oN.substr(oW + 1, 2), 10) + parseInt(oN.substr(oW + 4, 2), 10);
            oX *= 60000, '+' === oV ? oO.setTime(+oO - oX) : oO.setTime(+oO + oX);
        }
        return oO;

'+' disappeared in the first case, but remained in the other two

strMerge: (str) => str.replace(/(?<![[(=<>,!?:|&+\-*/])('|")\s*\+\s*\1(?!([\])=<>,?:|&+\-*/]|$))/g, ''),