盗んだspidermokeyのjsコンソールで走り出す

タイトルはホッテントリメーカから.
 
以下のJavascriptをみて欲しい.

var Foo = {
  bar : "baz",
}

このJavaScriptFirefoxではエラーを出さないが,IEではエラーになる.
 

  bar : "baz",
             ^

このカンマがくせ者なのだ.
通常Firefoxで開発していると,このカンマの消し忘れのおかげで「IEで動かんじゃんか!」という目によく遭う.
「カンマくらいは注意すればいいんじゃん?」と思うかもしれないが,大量のJavascriptを書いている場合,そのシンタックスが正しいか目でチェックするのは不可能に近い.
 
そこで,シンタックス周りを自動でチェックしてくれるツールが欲しくなる.

これどうぞ!('-')つspidermokeyのjsコンソール

spidermokeyのjsコンソール

spidermokeyのjsコンソールで先ほどのファイルをチェックしてみる.

% js -sC /tmp/hoge.js
/tmp/t.js:3: strict warning: trailing comma is not legal in ECMA-262 object initializers:
/tmp/t.js:3: strict warning: }
/tmp/t.js:3: strict warning: ^

おお,ありがたい.
カンマが不正だよってメッセージを出してくれる.

使い方

例えば,Firefoxでしか動作確認していないJavascriptIEに適用したいときに使えるだろう.
シンタックスにエラーがないことがわかれば,クロスブラウザ対応は随分楽になるのではないだろうか.
もちろん,根の深い所は自分の手で対応しなければならないが..

ダウンロード

Directory Listing: /pub/js/
js-1.7.0.tar.gz(現在の最新)を取得

インストール方法

JavaScript Reference Implementation (JSRef) README
この辺を観るといいかも.

参考

WEB+DB PRESS Vol.48

WEB+DB PRESS Vol.48

追記

id:TakiTake
2009/02/03 15:34
firefoxなら、about:config開いてjavascript.options.strictをtrueに変更すれば、構文エラーがエラーコンソールで見られますよ。

なんとFirefoxでできるんだ.という事で試してみた.

  • ブラウジングが大分遅くなる感じがした.開発用のプロファイルに適用することをお勧めする.
  • 警告も出しすぎてどこかどれか分からなかった.prototype.jsのWarningを出されても困ってしまう...

などの欠点はあるものの,Firefoxで見れるというのはいいかもしれない.

追記2

Emacsをお使いならjs2-mode (http://code.google.com/p/js2-mode/) がお勧めです。
編集時に構文エラーを確認できます。

おー,これは..EmacsLoveの私にとってベストな回答かも.
javascriptのmodeってあんまり良いのがなくて困ってたんだけどこれはいいな.
js2-mode - Enhanced JavaScript IDE Emacs Mode - Google Project Hosting
日本人のブクマはあんまりないようだからみんな知らないのかもしれない.