1

私はC++プログラムのv8とスパイダーモンキーを使用しています。spidermonkeyでは、実行を簡単に停止できます。C++で実装したネイティブメソッドのいずれかでFALSEを返すだけです。しかし、v8で同じことを行う方法がわかりません。

Handle<Value> enough(const v8::Arguments& a) {
    // want to tell v8, that execution is not needed to continue.
    return v8::Undefined();
}

何か特定のものを返すか、変数を設定するか、v8関数を呼び出すか、メッセージを送信するか、例外をスローして例外をスローするか、アイデアはありますか?

4

1 に答える 1

3

この場合、「中断」が何を意味するのか正確にはわかりません..しかし、私の答えで試してみます:

( ) の早い段階で C++ 関数から値を返してreturn v8::False()、同じ関数内の他のコードの実行をスキップするか、 で JavaScript 例外をスローすることができますv8::ThrowException(...)

を使用できますv8::V8::TerminateExecution()。これにより、現在の分離/スレッドでの実行が終了します。v8 がこれを行う方法は、(JavaScript の世界で) キャッチできない例外をスローすることです。を使用しv8::TryCatchて、C++ コードからの終了を処理できます。

于 2013-02-12T07:26:39.487 に答える