1 |
|
2 |
|
3 |
|
4 | function jjencode(gv, text) {
|
5 | var r = "";
|
6 | var n;
|
7 | var t;
|
8 | var b = ["___", "__$", "_$_", "_$$", "$__", "$_$", "$$_", "$$$", "$___", "$__$", "$_$_", "$_$$", "$$__", "$$_$", "$$$_", "$$$$", ];
|
9 | var s = "";
|
10 |
|
11 | function f1(c) {
|
12 | return gv + "." + b[c] + "+";
|
13 | }
|
14 |
|
15 | function f2(c) {
|
16 | return gv + "." + b[parseInt(c, 16)] + "+";
|
17 | }
|
18 |
|
19 | for (var i = 0; i < text.length; i++) {
|
20 | n = text.charCodeAt(i);
|
21 | if (n == 0x22 || n == 0x5c) {
|
22 | s += "\\\\\\" + text.charAt(i).toString(16);
|
23 | }
|
24 | else if ((0x21 <= n && n <= 0x2f) || (0x3A <= n && n <= 0x40) || (0x5b <= n && n <= 0x60) || (0x7b <= n && n <= 0x7f)) {
|
25 | s += text.charAt(i);
|
26 | }
|
27 | else if ((0x30 <= n && n <= 0x39) || (0x61 <= n && n <= 0x66)) {
|
28 | if (s) r += "\"" + s + "\"+";
|
29 | r += gv + "." + b[n < 0x40 ? n - 0x30 : n - 0x57] + "+";
|
30 | s = "";
|
31 | }
|
32 | else if (n == 0x6c) {
|
33 | if (s) r += "\"" + s + "\"+";
|
34 | r += "(![]+\"\")[" + gv + "._$_]+";
|
35 | s = "";
|
36 | }
|
37 | else if (n == 0x6f) {
|
38 | if (s) r += "\"" + s + "\"+";
|
39 | r += gv + "._$+";
|
40 | s = "";
|
41 | }
|
42 | else if (n == 0x74) {
|
43 | if (s) r += "\"" + s + "\"+";
|
44 | r += gv + ".__+";
|
45 | s = "";
|
46 | }
|
47 | else if (n == 0x75) {
|
48 | if (s) r += "\"" + s + "\"+";
|
49 | r += gv + "._+";
|
50 | s = "";
|
51 | }
|
52 | else if (n < 128) {
|
53 | if (s) r += "\"" + s;
|
54 | else r += "\"";
|
55 | r += "\\\\\"+" + n.toString(8).replace(/[0-7]/g, f1);
|
56 | s = "";
|
57 | }
|
58 | else {
|
59 | if (s) r += "\"" + s;
|
60 | else r += "\"";
|
61 | r += "\\\\\"+" + gv + "._+" + n.toString(16).replace(/[0-9a-f]/gi, f2);
|
62 | s = "";
|
63 | }
|
64 | }
|
65 | if (s) r += "\"" + s + "\"+";
|
66 |
|
67 | r =
|
68 | gv + "=~[];" +
|
69 | gv + "={___:++" + gv + ",$$$$:(![]+\"\")[" + gv + "],__$:++" + gv + ",$_$_:(![]+\"\")[" + gv + "],_$_:++" +
|
70 | gv + ",$_$$:({}+\"\")[" + gv + "],$$_$:(" + gv + "[" + gv + "]+\"\")[" + gv + "],_$$:++" + gv + ",$$$_:(!\"\"+\"\")[" +
|
71 | gv + "],$__:++" + gv + ",$_$:++" + gv + ",$$__:({}+\"\")[" + gv + "],$$_:++" + gv + ",$$$:++" + gv + ",$___:++" + gv + ",$__$:++" + gv + "};" +
|
72 | gv + ".$_=" +
|
73 | "(" + gv + ".$_=" + gv + "+\"\")[" + gv + ".$_$]+" +
|
74 | "(" + gv + "._$=" + gv + ".$_[" + gv + ".__$])+" +
|
75 | "(" + gv + ".$$=(" + gv + ".$+\"\")[" + gv + ".__$])+" +
|
76 | "((!" + gv + ")+\"\")[" + gv + "._$$]+" +
|
77 | "(" + gv + ".__=" + gv + ".$_[" + gv + ".$$_])+" +
|
78 | "(" + gv + ".$=(!\"\"+\"\")[" + gv + ".__$])+" +
|
79 | "(" + gv + "._=(!\"\"+\"\")[" + gv + "._$_])+" +
|
80 | gv + ".$_[" + gv + ".$_$]+" +
|
81 | gv + ".__+" +
|
82 | gv + "._$+" +
|
83 | gv + ".$;" +
|
84 | gv + ".$$=" +
|
85 | gv + ".$+" +
|
86 | "(!\"\"+\"\")[" + gv + "._$$]+" +
|
87 | gv + ".__+" +
|
88 | gv + "._+" +
|
89 | gv + ".$+" +
|
90 | gv + ".$$;" +
|
91 | gv + ".$=(" + gv + ".___)[" + gv + ".$_][" + gv + ".$_];" +
|
92 | gv + ".$(" + gv + ".$(" + gv + ".$$+\"\\\"\"+" + r + "\"\\\"\")())();";
|
93 |
|
94 | return r;
|
95 | }
|
96 |
|
97 |
|
98 |
|
99 |
|
100 |
|
101 |
|
102 |
|
103 |
|
104 |
|
105 |
|
106 | module.exports = function (content, attrs, scope) {
|
107 | return jjencode(scope.execImport(attrs.var) || '$', content);
|
108 | }; |
\ | No newline at end of file |