Fileオブジェクトに挑戦

spidermonkeyでread,writeしたい。と言う衝動に負けFileオブジェクト込のjavavascript shell (js)をコンパイルする。

まず、http://www.ossp.org/pkg/lib/js/ より、ソースをゲット

とりあえずはconfigure

./configure --with-utf8 --with-editline

4.0 遊んでみたい

大げさな免責条項: ハードドライブが消され無茶苦茶に破壊される覚悟が出来ていなければ、File オブジェクトで遊ぶなかれ! 今は大体上手く動いているが、保証はない。
(中略)
File オブジェクト付きで (例えば UNIX 上のリファレンスインタプリターを) ビルドするには、 ビルド時に JS_HAS_FILE_OBJECT を define しなさい。 NSPR に対してビルドする必要もあり、JS_THREADSAFE を define することでこれは出来る。

cd mozilla/js/src
gmake -f Makefile.ref JS_THREADSAFE=1 JS_HAS_FILE_OBJECT=1

うーん、危険といわれても遊びたいのだ。

$make JS_THREADSAFE=1 JS_HAS_FILE_OBJECT=1
(中略)
$make install

ををっ、できた!!

$ ./js
js> File
function File() {
    [native code]
}
js>
$ echo -e "test\nhelloworld\n" > test.txt
$ ./js
js> f=new File("./test.txt");f.open("read");s=f.readAll();f.close;print(s);
test,helloworld,
js> 

マニュアルは http://www.mozilla-japan.org/js/js-file-object.html を参照すること。