コードを削る
Twitter だとちょっと厳しいので、こっちでまとめ。
MobileWebKit に対応しようと思ったら、コードをなんとかして削る必要があります。
AND 演算子 で 4byte 削る(10byte → 6byte)
if (a) { b(); } ↓ a && b();
OR 演算子 で 5byte 削る(11byte → 6byte)
if (!a) { b(); } ↓ a || b();
ドット演算子以降を自力で Minify する
JavaScriptは動的な言語なので、ドット演算子以降は基本的に minify しても圧縮されません。
document.createElement("div"); document.createElement("a"); document.createElement("p"); ↓ このままだと、minify しても縮まらない document.createElement("div");document.createElement("a");document.createElement("p")
ドット演算子によるアクセス( Object.property )は、Object["property"] のシンタックスシュガー(糖衣構文)です。
これらは、同じ処理速度でほぼ同じ価値を持ち、見た目がちょっと違うだけ(ドット演算子は制限も多いけど)。
そこで minifier が処理しやすいように、シンタックスシュガーを解除すると
var doc = document, createElement = "createElement"; doc[createElement]("div"); doc[createElement]("a"); doc[createElement]("p"); ↓ minify var a=document,b="createElement";a[b]("div");a[b]("a");a[b]("p")
この辺が最大の削りポイントですが、調子こいてやり過ぎるとコードがみるみる汚くなります。
ライブラリ書くのって大変ですね。