在本机函数内中断执行v8脚本

时间:2013-01-26 06:43:42

标签: c++ v8 spidermonkey

我使用来自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函数,或发送消息,抛出异常,任何想法?

1 个答案:

答案 0 :(得分:3)

我不确定你在这种情况下的“打断”是什么意思..但我会用我的答案给它一个镜头:

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

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