Browse Source

Merge pull request #11 from hazzik/optimizations

Size optimizations
Martin Kleppe 11 năm trước cách đây
mục cha
commit
09507ef5ca
1 tập tin đã thay đổi với 18 bổ sung18 xóa
  1. 18 18
      jsfuck.js

+ 18 - 18
jsfuck.js

@@ -24,15 +24,15 @@
 
   var MAPPING = {
     'a':   '("false")[1]',
-    'b':   '(GLOBAL+[])[2]',
-    'c':   '([]["filter"]+[])[3]',
+    'b':   '(+(11))["toString"](20)',
+    'c':   '([]["filter"]+"")[3]',
     'd':   '("undefined")[2]',
     'e':   '("true")[3]',
     'f':   '("false")[0]',
-    'g':   '([]+String)[14]',
+    'g':   '(String+"")[14]',
     'h':   '(+(17))["toString"](20)',
     'i':   '("undefined")[5]',
-    'j':   '(GLOBAL+"")[3]',
+    'j':   '(+(19))["toString"](20)',
     'k':   '(+(20))["toString"](21)',
     'l':   '("false")[2]',
     'm':   '(Number+"")[11]',
@@ -52,7 +52,7 @@
 
     'A':   '(Array+"")[9]',
     'B':   '(Boolean+"")[9]',
-    'C':   'GLOBAL["unescape"]("%"+(43))[0]',
+    'C':   USE_CHAR_CODE,
     'D':   USE_CHAR_CODE,
     'E':   USE_CHAR_CODE,
     'F':   '(Function+"")[9]',
@@ -68,7 +68,7 @@
     'P':   USE_CHAR_CODE,
     'Q':   USE_CHAR_CODE,
     'R':   USE_CHAR_CODE,
-    'S':   '(String+[])[9]',
+    'S':   '(String+"")[9]',
     'T':   USE_CHAR_CODE,
     'U':   USE_CHAR_CODE,
     'V':   USE_CHAR_CODE,
@@ -77,31 +77,31 @@
     'Y':   USE_CHAR_CODE,
     'Z':   USE_CHAR_CODE,
 
-    ' ':   '([]["filter"]+[])[8]',
+    ' ':   '([]["filter"]+"")[8]',
     '!':   USE_CHAR_CODE,
-    '"':   '("")["link"](0)[10]',
+    '"':   '("")["fontcolor"]()[12]',
     '#':   USE_CHAR_CODE,
     '$':   USE_CHAR_CODE,
     '%':   'GLOBAL["escape"]("<")[0]',
     '&':   USE_CHAR_CODE,
-    '\'':  'GLOBAL["unescape"]("%"+(27))[0]',
+    '\'':  USE_CHAR_CODE,
     '(':   '([]["filter"]+"")[15]',
     ')':   '([]["filter"]+"")[16]',
     '*':   USE_CHAR_CODE,
     '+':   '(+(+!+[]+(!+[]+[])[!+[]+!+[]+!+[]]+[+!+[]]+[+[]]+[+[]])+[])[2]',
-    ',':   '[[]]["concat"]([][[]])+[]',
-    '-':   USE_CHAR_CODE,
-    '.':   USE_CHAR_CODE,
-    '/':   '("")["link"]()[21]',
+    ',':   '[[]]["concat"]([][[]])+""',
+    '-':   '(+(.0000000001)+"")[2]',
+    '.':   '(0)["toFixed"](1)[1]',
+    '/':   '("")["italics"]()[4]',
     ':':   'GLOBAL["Date"]()[21]',
     ';':   USE_CHAR_CODE,
-    '<':   '("")["link"]()[0]',
+    '<':   '("")["italics"]()[0]',
     '=':   '("")["fontcolor"]()[11]',
-    '>':   '("")["link"]([])[10]',
+    '>':   '("")["italics"]()[2]',
     '?':   USE_CHAR_CODE,
     '@':   USE_CHAR_CODE,
-    '[':   USE_CHAR_CODE,
-    '\\':  'GLOBAL["unescape"]("%"+(5)+"c")[0]',
+    '[':   '(GLOBAL+"")[0]',
+    '\\':  USE_CHAR_CODE,
     ']':   USE_CHAR_CODE,
     '^':   USE_CHAR_CODE,
     '_':   USE_CHAR_CODE,
@@ -117,7 +117,7 @@
   function fillMissingChars(){
     for (var key in MAPPING){
       if (MAPPING[key] === USE_CHAR_CODE){
-        MAPPING[key] = 'String["fromCharCode"](' + key.charCodeAt(0) + ')';
+        MAPPING[key] = 'GLOBAL["unescape"]("%"'+ key.charCodeAt(0).toString(16).replace(/(\d+)/g, "+($1)+\"") + '")';
       }
     }
   }