hagino3000's blog

平成アーカイブス (更新停止)

お行儀の悪いコードを矯正してやる

JavaScriptのコード圧縮ツールはいくつかあるが、中には圧縮したコードが実行できなくなる物もある。特に括弧やセミコロンを省略しまくっている場合にそういう事態が発生しがちなので対策のメモ。

お行儀の悪いコードの例

createSoldier = function(weapon){
	
	if(isKatana(weapon))
		return new Samurai(weapon)
	else
		return new Ninja(weapon)

}


このコードをお手軽なオンライン圧縮ツール*1なんかで圧縮したりすると、セミコロンや括弧が補完されないまま改行と空白が取り払われて、うんともすんとも言わないコードの出来上がり。

createSoldier=function(a){if(isKatana(a))return new Samurai(a)else return new Ninja(a)}

評価してからunevalして文字列に戻す方法

firefoxでunevalするとセミコロンと括弧が補完されたコードが取得できる。取得したコードを圧縮ツールで処理してやればOK。

var originalCode = function(){
// ここに、圧縮したいコードをコピペ
}

uneval(originalCode);


JavaScript Shell*2を使うとこんな感じにできて楽。

というか最初から賢いコード圧縮ツールを使えばおk

YUI Compressorは評判がいいだけあって、必要な箇所は括弧を補完してくれる。メインで使っていこうと思います。

Download the YUI Compressor
http://www.julienlecomte.net/yuicompressor/