Google Chrome を二回しか起動したことがない私が言うのは全くおこがましいことなんですけれども、それを承知で書いています。
昨日の今ホットなJavaScriptエンジン全部インストールしましょうのムードを引き摺りつつ、ひょっとして Firefox や Chrome の JavaScript エンジンも SquirrelFish のようにどこかに落ちているんじゃないだろうかと思って探しています。Chrome の場合は、ウェブブラウザ本体とリンクされていることが分りました。((別にソースを読んだわけではなくって、Chrome のバイナリを strings した結果のなかに、V8 を strings した結果を見つけて確信しただけです。))
で、VM の捜索活動をしているうちに Google Chrome のインスペクタのソースが見つかったという話です。大部分は JavaScript が書かれていて、それが見つかったというだけなのでたいした話ではないんですけど。。。
とりあえず、あなたが Google Chrome をインストールした Mac を使っているのなら、適当なディレクトリを作成して、その中で以下のスクリプトを実行してみて下さい。
#!/bin/sh
/usr/bin/split -p ‘^/* .*js */’ ‘/Applications/Google Chrome.app/Contents/Versions/4.0.249.49/Google Chrome Framework.framework/Resources/inspector/devtools.js’
for f in x??
do
fname=`/usr/bin/head -1 $f | /usr/bin/sed -e ‘s/[/* ]//g’`
echo “$fname”
/bin/cp $f $fname
/bin/rm $f
done
echo ” > 0_Manifest.txt
echo >> 0_Manifest.txt
wc -l *.js | sort -n >> 0_Manifest.txt
echo >> 0_Manifest.txt
ls *.js >> 0_Manifest.txt
スクリプトを実行すると以下のようにどっさりとファイルが作成されます。
0_Convert.sh Resource.js
0_Manifest.txt ResourceCategory.js
AbstractTimelinePanel.js ResourceView.js
BottomUpProfileDataGridTree.js ResourcesPanel.js
Breakpoint.js ScopeChainSidebarPane.js
BreakpointsSidebarPane.js Script.js
CallStackSidebarPane.js ScriptView.js
Callback.js ScriptsPanel.js
ChangesView.js SidebarPane.js
Color.js SidebarTreeElement.js
…
これは、Google Chrome の inspector/devtools.js という cat されたファイルを分割して元に戻しただけです。Google の腕こきの JavaScript ハッカーが書いたコードですから、読めば JavaScript の腕があがるのは間違いなし!
もとの devtools.js は 3万6千行もあってゲンナリするんですけれども、こうして分割すると元気が出ますよね。