JavaScript shell (js)、OSSP js 1.6.20060820のZaurus向けパッケージ
autoconf化されてビルドが楽なOSSP版JavaScript shell (js) 1.6.2006082版のZaurus向けパッケージを作りました。mal_blueさん情報ありがとうございました。
JavaScript shellであるところの「js」は、JavaScriptエンジンであるSpiderMonkeyの応用例の一つに過ぎず、SpiderMonkeyそのものじゃないんですね。
以降、JavaScript shell (js)と表記します。
「OSSP-js_1.6.20060820_arm.ipk.bin」をダウンロード
インタラクティブモードのコマンドライン編集のためにGNU Readline 5.1を組み込んであります。
./configure --with-utf8 --with-editline
JavaScript shell (js)についていろいろ分かってきたので書きます。
JavaScript shell (js)のドキュメント
JavaScript shell (js)のドキュメントがありました。
コマンドラインオプションやECMA標準外のことが書いてあります。
Introduction to the JavaScript shell
引数の参照
前のエントリに補足しましたが、引数の参照の仕方が分かりました。
シェバング行を書いて実行権を付け、
#!/usr/bin/env js
for(i = 0; i < arguments.length)
{
print(arguments[i]);
}
上記のように書き、でもって、
$ ./test.js a b c
a
b
c
$
あるいは、-fオプション無しでスクリプトを実行すると引数が参照できます。
js test.js a b c
-fオプション付きだと失敗します。
js -f test.js a b c
↑
ダメ
標準入力から読み取る
var buf = readline();
print(buf);
変数宣言の強制
変数を使う際はvarで宣言しないとエラーが出るようになります。これはいい。
options('strict');
このオプション付きのスクリプト内でundefinedな変数を参照するとエラーで止まるようにもなるので、
undefinedかどうかtypeof()で判定します。
options('strict');
if( typeof( arguments[0] ) != "undefined" )
{
arguments.length;
print( arguments[0] );
}
変数は必ず初期化するか、argumentsならarguments.lengthを見てから参照するのが本道ですが。
Fileオブジェクト
今回のJavaScrip shell (js)はFileオブジェクトが使えます。
Fileオブジェクトのメソッドやプロパティは以下のFreeSwitchのリファレンスのものが適用できるみたいです。例外もありましたが。
FreeSwitchのFileオブジェクトはSpiderMonkey由来のものみたいです。
http://www.voip-info.org/wiki/view/FreeSwitch+Javascript+File
Fileオブジェクトを使って動かしてみたサンプル
// assign string value to variable "buf".
var f = new File("/home/zaurus"); // dir name pass to constructor.
var buf = f.list(); // return directory list
// write to file.
f = new File("list.txt");
f.open("create,write");
f.write(buf);
f.close();
// read from file.
f = new File("list.txt");
f.open("read");
buf = "";
buf = f.readAll();
f.close();
print(buf);
// remove file.
f = new File("list.txt");
f.remove();
関連リンク
JavaScript shell (js)のインタラクティブモードを使った、javascript-shell-mode、javascript-shellというのが定義されてます。
Emacsの中からJavaScript shell (js)!
« (再掲/転載モノ)ステップ入力MIDIシーケンサSTed2のZaurus向けパッケージ | Main | Mac OS X Tiger上にAVR-GCC環境を構築する@2006 »
Recent Comments