« PortaProの交換用パッドをお取り寄せ | Main | Adobe InDesign CS / CS2用JavaScript「正規表現検索スタイル適用」 »

2006.08.14

Zaurus向けSpiderMonkey1.5パッケージ

このエントリは、より新しいエントリJavaScript shell (js)、OSSP js 1.6.20060820のZaurus向けパッケージによって刷新されています。

スタンドアローンなJavaScriptインタプリタであるところのJavaScript shell (js)SpiderMonkey1.5のLinux Zaurus向けパッケージを作ったよ。

ダウンロード spidermonkey_1.5_arm.ipk.bin (245.1K)

ソース
http://pkgsrc.se/lang/spidermonkey

Mac OS X 10.4.7上でクロスコンパイル。
ビルド方法が特殊で、CC=arm-linux-gccして./configureすればいいって感じになってない。
かなり無理矢理なことをして作成。バッドノウハウだと思うので、ここには書かないです。

irbみたいにインタラクティブにJavaScriptが実行できる。

$ ./js
js> myStr = "";

js> regexp = new RegExp("<([^>]+)>");
/<([^>]+)>/
js> myStr.match(regexp);
,test
js> RegExp.$1;
test
js>

こんな感じ。readlineが組み込まれているので、コマンドライン編集が充実している。C-rによる履歴検索があったのに驚き。

RubyやPerlみたいにJavaScriptをファイルに保存して実行することもできる。標準出力への出力はprint()だった。

-----hello.js------
myStr = "Hello, JavaScript!";
print(myStr);
-----------------

$ ./js -f hello.js
Hello, JavaScript!

ちょっと試した限りではマルチバイトには対応してない感じ。

print("あいう".length); => 9 (UTF8)
print("あいう".substr(0, 1)); =>化ける

何か方法があるんだろうね。

$ ./js --help
usage: js [-PswW] [-b branchlimit] [-c stackchunksize] [-v version] [-f scriptfile] [-S maxstacksize] [scriptfile] [scriptarg...]

引数が取れるらしい。

引数の参照の仕方が分かりました。まずはシェバング行を書いて実行権を付け、

#!/usr/bin/env js
for(i = 0; i < arguments.length)
{
print(arguments[i]);
}

でもって、

$ ./test.js a b c
a
b
c
$

こんな感じでした。

|

« PortaProの交換用パッドをお取り寄せ | Main | Adobe InDesign CS / CS2用JavaScript「正規表現検索スタイル適用」 »