我使用来自C ++程序的v8和spidermonkey。在spidermonkey中,很容易停止执行,只需在C ++中实现的任何本机方法中返回FALSE。 但我没有看到如何在第8版中做同样的事情。
Handle<Value> enough(const v8::Arguments& a) {
// want to tell v8, that execution is not needed to continue.
return v8::Undefined();
}
可能会返回一些特定的东西,或设置一些变量,或调用v8函数,或发送消息,抛出异常,任何想法?
答案 0 :(得分:3)
我不确定你在这种情况下的“打断”是什么意思..但我会用我的答案给它一个镜头:
您可以在早期(return v8::False()
)返回C ++函数中的值,以跳过同一函数内其他代码的执行,或者使用v8::ThrowException(...)
抛出JavaScript异常。
您可以使用v8::V8::TerminateExecution()
。这将终止当前隔离/线程中的执行。 v8的方法是抛出一个无法捕获的异常(在JavaScript中)。您仍然可以使用v8::TryCatch
来处理C ++代码的终止。