-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ですでに書いているので、スクリプトを実行中に書き換えたら再ロードさせることとかも省力でできます。しかし、それもいるんかいな、と。