|
フリーの ECMAScript インタプリタ。
Java で記述された JavaScript インタプリタ。 |
FESI の実装は、言語拡張をほとんど実装せずできるだけ標準に
沿うようにしています。
これは、残念ながらほとんど互いに互換性のない他の多くの JavaScript の実装とは
異なる点です。
とはいえ、少しでも便利にするには、最低でも他のホストアプリケーションにリンクする
ように ECMAScirpt を拡張しなければなりません。多くのアプリケーションには共通の
必要性があるので、FESI の拡張はライブラリとして作成して必要に応じて Java の
動的読込機能で読み込むことができます。多くの場合、ホストプログラムは
初期化の一部として必要な拡張を列挙します (FESI の Java ライブラリ
を参照)。拡張は ECMAScript 標準で規定されているようにホストオブジェクトや関数を
追加することのみが可能で、既存の関数を変更したり文法を拡張したりすることは
できません。
ビルトイン拡張
ビルトイン拡張は、インタプリタ上に常に組み込まれている機能です。
以下の機能が含まれます。
-
対話式インタプリタは、オプション -A の後にコマンドラインの引数があれば
それを含むグローバル配列変数 args[] を追加します。これは呼び出された
インタプリタでは (プログラマが実装しない限り) 組み込まれません。
-
後述の tryEval ルーチン。
-
Java オブジェクトのメソッドを呼び出す機能 (他の拡張が Java オブジェクトを返した
場合や JavaAccess 拡張が読み込まれた場合)。
これは JavaAccess のところで説明します。
-
JavaBeans を ECMAScript オブジェクトとして扱う機能 (Bean のプロパティを
ECMAScript のプロパティに対応づけます)。
-
Java オブジェクトにイベントハンドラを追加する
機能 (他の拡張が Java オブジェクトを返した場合や、
JavaAccess 拡張が読み込まれた場合)。
-
tryEval(文字列[, デフォルト値])
-
tryEval は eval と同様に引数を評価しますが、value
および error という 2 つのプロパティをもったオブジェクトを返します。
評価が成功した場合、value プロパティは評価の結果を含み、
error は null (false としてテストできます) になります。
評価によってエラーが起きた場合は、value プロパティは引数
「デフォルト値」の値 (指定した場合) または undefined になり、
error プロパティはエラーを説明するオブジェクト (true として
検査できることが保証されます) をもちます。error のオブジェクトの文字列表現は
エラーの説明になります。将来にはより詳しいエラー情報が利用できるようになるかも
しれません。
-
throwError([文字列または例外])
-
throwError は例外をスローします。引数が Throwable であれば
文字列に変換して例外の引数に追加されます。
読込可能な拡張
対話式インタプリタでは以下の拡張がすべてデフォルトで読み込まれます。しかし、
インタプリタを埋め込みの言語エンジンとして使っているユーザープログラムでは
読み込まれるかどうかは呼出側によります。
BasicIO、BasicIOw、BasicIOs
ブラウザをホストとしたインタプリタとスクリプトを共有できるように、
基本的な document および window ベースの入出力を提供します。
BasicIO、BasicIOw、BasicIOs
ドキュメンテーション
JavaAccess
ECMAScript から Java オブジェクトを生成したり Java の public なクラスや関数に
アクセスできるようにします。
JavaAccess ドキュメンテーション
FileIO
テキストファイルの入出力やディレクトリ操作機能を ECMAScript プログラムに
提供します。
FileIO ドキュメンテーション
Database
シンプルなデータベースアクセス機能 (JDBC 経由) を ECMAScript プログラムに
提供します。
データベースアクセス
ドキュメンテーション
RegExp
正規表現による検索と置換を、ORO パッケージに基づいて提供します。
正規表現
ドキュメンテーション
メインページに戻る
最終更新日 (原文): 1999 年 1 月 12 日
(翻訳): 1999 年 4 月 1 日