このテンプレートは廃止されています。使用しないで下さい。
JSAPIにおいて、JSRuntime
はメモリ管理やグローバルなデータ構造などを扱う最高位のオブジェクトです。複数のスレッドが動作するプログラムにおいても、プログラム内のJSRuntime
は一般的に一つだけです。JSRuntime
はJavaScriptのオブジェクトを保持する空間であり、オブジェクトは複数のJSRuntime
を跨いで移動することはできません。 JSAPI, <code>JSRuntime</code> is the top-level object that handles, among other things, memory management and "global" data structures. A program typically has only one <code>JSRuntime</code>, even if it has many threads. The <code>JSRuntime</code> is the universe in which JavaScript objects live; they can't travel to other <code>JSRuntime</code>s.
JSContext
はJSRuntime
の子に位置し、すべてのJavaScriptコードとJSAPIの関数はJSContext
を介して実行されます。JSContext
内には、global objectや実行時スタックなどが含まれます。 例外処理、エラー報告、一部のJavaScriptのオプション などは各JSContext
ごとに管理されます。JS_THREADSAFE
オプションを有効にしたビルドでは、複数のスレッドからJavaScriptのコードを呼び出し並行して実行できますが、呼び出し元のスレッドはそれぞれ独立したJSContext
を持つ形になります。詳細はJS_THREADSAFE
を参照してください。 All JavaScript code and most JSAPI calls run within a <code>JSContext</code>. The <code>JSContext</code> is a child of the <code>JSRuntime</code>. Among other things, it contains the global object and the execution stack. Exception handling, error reporting, and some language options are per-<code>JSContext</code>. In a <code>JS_THREADSAFE</code> build, multiple threads may run JavaScript code concurrently, but each such thread must have its own <code>JSContext</code>. See <code> JS_THREADSAFE</code> for details.
JavaScriptオブジェクトとそのコンテキストとの関係は固定されたものでなく、オブジェクトはJSRuntime
を介してその子となるJSContext
間で共有することができます。 Objects may be shared among <code>JSContext</code>s within a <code>JSRuntime</code>. There's no fixed association between an object and a context.