1

我使用来自 C++ 程序的 v8 和 spidermonkey。在 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

在这种情况下,我不确定您所说的“中断”是什么意思。但我会试一试我的回答:

您可以在 ( return v8::False()) 早期从 C++ 函数返回一个值,以跳过同一函数内其他代码的执行,或者使用v8::ThrowException(...).

你可以使用v8::V8::TerminateExecution(). 这将终止当前隔离/线程中的执行。v8 这样做的方式是抛出一个无法捕获的异常(在 JavaScript 领域)。您仍然可以使用v8::TryCatch来处理 C++ 代码的终止。

于 2013-02-12T07:26:39.487 回答