js.exe なら XULRunner

SpiderMonkeyFirefoxJavaScript エンジンとして組み込まれている。が、他にも、「JavaScript シェル」と呼ばれる、JavaScript コードが実行できるバイナリがある。それが js.exe だ。

見つからない

SpiderMonkeyソースコードは公開されている。それをダウンロードしてビルドすることで js.exe が入手できる。のだが、自分みたいな素人には、ビルドなど難しいことはできるわけもない。というわけで、js.exe を直にダウンロードしたいわけだが、Web 上で検索しても、なかなか見当たらない。

見つけた

が、ftp.mozilla.org 内に存在することが判明した。それは、XULRunner というソフトウェアに同梱されていたのだ。具体的には、

ここにある

http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/latest/runtimes/

にある。このディレクトリ名からして、間違いなく、XULRunner の最新リリース版ということである。このディレクトリには、いくつかの圧縮ファイルが置かれている。それぞれ、ファイル名に linux, mac, win などというキーワードが含まれており、各 OS に対応した実行ファイルがパックされているのだろうと推測できる。Windows 版なら "xulrunner-24.0.en-US.win32.zip" という感じの名前のファイルがあるので、それをダウンロードして展開すると、"xulrunner.exe" など多数のファイル群の中に "js.exe" が存在することが確認できる。これで、ビルドをせずとも JavaScript シェルを使うことができる。

使おう

最新の SpiderMonkey ともなると、高度に独自拡張された JavaScript のコードを実行することができる。たとえば、

for (i of "hoge") print(i);

というコードを実行すると、"hoge" という 4 つの文字が 1 文字ずつ改行されて標準出力される。

h
o
g
e

この新しい for of ループという機能は、以前から提供されている独自拡張機能 for each ループと、全く同じ振る舞いをするように見える。短く書けて、その上、ECMAScript 6 にも取り入れられそうなので、覚えておこう。