【问题标题】:Interrupt execution of v8 script inside native function在本机函数中中断 v8 脚本的执行
【发布时间】:2013-01-26 06:43:42
【问题描述】:

我使用来自 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 函数,或者发送消息,或者抛出异常,你知道吗?

【问题讨论】:

    标签: c++ v8 spidermonkey


    【解决方案1】:

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

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

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

    【讨论】:

    • V8::TerminateExecution() 就是我要找的!谢谢你。其他建议也很有帮助!我希望您能在不存在的文档中轻松找到此类信息。
    猜你喜欢
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多