BT

Mozilla と WebKit,縮小された JS や CoffeScript など JS 言語のデバッグサポートを目指す

| 作者: Werner Schuster フォローする 6 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2011年8月10日. 推定読書時間: 2 分 |

原文(投稿日:2011/08/08)へのリンク

最近の Web と Javascript デバッガは強力で,ブラウザと密に統合されている – ただしそれは デバッグ対象のコードが手作業で記述された,平坦なJavascript の場合に限った話だ。今日では,実行あるいはデプロイされる Javascript の多くが開発者ではなく,ソフトウェアによって生成されている。そのようなコードの大部分は縮小されているか,あるいは圧縮されたコードだ。このようなファイルに対して,通常はソース行を単位とするブレークポイントをセットするのは至難の技か,あるいは不可能だ – 元になったソースがきれいにフォーマットされたものであっても同じことだ。

もうひとつの問題:Javascript はコンパイル言語の出力ターゲット としても注目を高めてきている。Javascript 仮想マシンの普及がその主な理由だ。CoffeeScript はそのような新言語の一例であり,さらに先日発表された ClojureScript は,Javascript にコンパイルされる形式の,独立した言語の例だ。これらの言語で記述されたコードのデバッグでは,ブレークポイントの設定や console.log() メッセージ,その他言語依存の機能には,元になった言語ではなく 生成された Javascript コードを扱うことになる。

これは新しい問題ではなく,JVM 言語にもかつて同じ問題があった。その成果が JSR-045 - 他言語のデバッグサポート となり,JRuby など JVM へのコンパイルを行う様々な言語で使用されている。

解決策はソースマップ (Source Maps/SMAPs),すなわち,ソース言語とターゲット表現間をマップするファイルだ。Google の Closure コンパイラには,縮小された出力 Javascript ファイルの SMAP ファイルを生成する機能がある。ただし現時点で SMAP ファイルを読むことができるツールは,Firebug 拡張である Closure Inspector に限られている。

Mozilla と WebKit の両プロジェクトでは,それぞれのデバッグ機能で SMAP をサポートする作業を開始している。

Mozilla は SMAP とデバッグ機能に関する綿密な計画資料 を作成した。資料には,ソースマップの別領域に関する言及も見られる – SASS あるいは LESS など,CSS のスーパーセットによってコンパイルターゲットとして使用される CSS である。
この作業をトラックする Mozilla のチケットが Bug 618650 – JS ソースに変換されたソース言語と JS とを関連づけるマップ であり,計画資料ではターゲットリリースとして Firefox 9 がリストされている。

WebKit も SMAP サポートを計画しているが,実際に扱う SMAP フォーマットは Closure Inspector のフォーマットの拡張版になる可能性がある。同様な検討を Mozilla も行っていて,Bug 63940 – Web Inspector: デバッガのコンパイラソースマッピングサポートのドラフト実装 がその機能のトラックである。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT