オプション

GraalVMでのJavaScriptの実行は、いくつかのオプションを使用して構成できます。

GraalVM JavaScriptランチャのオプション

これらのオプションは、jsランチャの動作を制御するためのものです:

GraalVM JavaScriptエンジンのオプション

GraalVM JavaScriptエンジンの動作を構成するためのオプションがいくつかあります。これらのオプションは、エンジンの起動方法に応じて、ランチャに渡すか、プログラムを使用して渡します。

JavaScriptエンジンのオプションの完全なリストの場合、--help:jsフラグをjsランチャに渡します(GraalVM 22.1から使用可能で、これより前のリリースでは--help:languagesを使用します)。内部オプションを含めるには、--help:js:internalを使用します。これらのリストには、安定した、サポートされているオプションと試験段階のオプションの両方が含まれていることに注意してください。

ランチャへのオプションの指定

ランチャには、--js.<option-name>=<value>を使用してオプションを渡します:

js --js.ecmascript-version=2015

コンテキストAPIを使用したプログラムによるオプションの指定

GraalVMのポリグロットAPIを使用してJavaから起動する場合、オプションはプログラムによってContextオブジェクトに渡されます:

Context context = Context.newBuilder("js")
                         .option("js.ecmascript-version", "2015")
                         .build();
context.eval("js", "42");

プログラムでオプションを設定する方法の詳細は、「ポリグロット・プログラミング」リファレンスを参照してください。

安定オプションと試験段階のオプション

使用可能なオプションは、安定オプションと試験段階のオプションに区別されます。試験段階のオプションを使用する場合は、事前に特別なフラグを指定する必要があります。

ネイティブ・ランチャ(jsおよびnode)では、すべての試験段階のオプションを使用する前に--experimental-optionsを渡す必要があります。Contextを使用する場合は、Context.BuilderでオプションallowExperimentalOptions(true)をコールする必要があります。ScriptEngineでの試験段階のオプションの使用方法は、「ScriptEngine実装」を参照してください。

よく使用される安定したオプション

よく使用される安定したオプションは次のとおりです:

完全なリストの場合は、js --help:js:internalを使用します

ECMAScriptバージョン

このオプションは、ECMAScript仕様の特定のバージョンとの互換性を確保するためのものです。整数値が想定されており、エディション番号(56、…)と公開年(2015以降)の両方がサポートされています。GraalVM 21.2では、lateststagingもサポートされています。GraalVM 23.1のデフォルトはECMAScript 2023仕様です。GraalVM JavaScriptには、将来のドラフト仕様およびオープンな提案の一部の機能が実装されています(そのバージョンを明示的に選択したり、特定の試験段階フラグを有効にした場合)。本番設定では、ecmascript-versionを、リリースされたファイナライズ済バージョンの仕様(2022など)に設定することをお薦めします。

使用可能なバージョンは次のとおりです:

intl-402

このオプションを使用すると、ECMAScriptの国際化APIが有効になります。ブール値が想定されており、デフォルトはtrueです。

厳密モード

このオプションを使用すると、すべてのスクリプトに対してJavaScriptの厳密モードが有効になります。ブール値が想定されており、デフォルトはfalseです。

よく使用される試験段階のオプション

これらのオプションは試験段階であり、今後の保守またはサポートは保証されていないことに注意してください。これらを使用するには、--experimental-optionsフラグを必須とするか、または試験段階のオプションをコンテキストで有効にする必要があります(前述を参照)。