-S2Sioのコメント
昨日のコメント欄より
- S2Sioについて質問です。スクリプト最終行の評価結果がメソッドの戻り値になるイメージですか?
ごく直感的に考えると、スクリプトエンジンにスクリプトを渡して評価した結果をJavaのオブジェクトに変換して返します。既存実装も、Mayaaの実装でもそうしています。Rhinoの場合、明示的に「return」するか、最終評価結果をニョロっと返しちゃうかというところで、このへんはJSの仕様なのかSpiderMonkey-Rhino系の癖なのか、一定した挙動をしたかと思います(調査コード書いて試してみないと確信もった答えできないので、後々に)。
- sayがJSのfunctionで定義されてる場合はどうしましょ。それは無視して上から下までやって最後の結果を戻すって感じ?
function定義されている場合、単発評価だとCallオブジェクト(だったかな?名前をうろ覚え)を返すだけで、その実行は呼び出しコード(say();という一文)を書かないとしません。エンジンで返りがCallオブジェクトの際には非Callが返るまでCallの実行を繰り返す仕様にすることは可能です。要はdo-while文一発。
- もしそうであるなら、ファイル名とメソッド名が一緒(この場合は、ファイル名がsay.js)なら@Scriptなしで勝手にひもづけてくれると嬉しい。
上記のとおり「もしそうであるなら」ということにはなりませんが、スクリプトファイル名とSIOの規約に沿った外観とをバインディングするのはチョロい。
- S2Sio、おもしろいですね。
面白いですか?実はまだ私はそうでもないんですよw。羽生さんや和田さんの仕様に対する要求聞いてみて、本当に熱いものがあるのか知りたい。幸い手持ちコード(2004/4既存実装+Mayaa)をベースにサクッと作れるというところなんで、私にとって実装は負担ではないですが、本当にニーズのあるものなのかが不明です。なんせ2年間も死蔵してたぐらいです。Mayaaですでに書いているので、スクリプトを実行中に書き換えたら再ロードさせることとかも省力でできます。しかし、それもいるんかいな、と。