【问题标题】:Program crashes if using JS_NewGlobalObject : SpiderMonkey如果使用 JS_NewGlobalObject 程序崩溃:SpiderMonkey
【发布时间】:2012-10-18 16:31:22
【问题描述】:

我正在使用最新版本的 SpiderMonkey (js185-1.0.0.tar.gz),当我运行嵌入 Javascript 的示例程序时,程序崩溃

示例程序直接来自the docs

如果我使用JS_NewCompartmentAndGlobalObject,程序运行良好 但文档提到使用JS_NewGlobalObject,因为它是“自 JSAPI 16 以来已过时”

因此,我将JS_NewCompartmentAndGlobalObject 替换为JS_NewGlobalObject,此后示例程序在sample program found here 中的第55 行崩溃

这里有什么解决办法?

我使用的是 CentOS 6.2 64 位版本。

【问题讨论】:

  • 您引用的程序示例的日期为 2000 年 2 月。该程序可能包含几个过时的函数,而不仅仅是 JS_NewCompartmentAndGlobalObject。我将从最近的 spidermonkey 文档中获取另一个示例程序。
  • @damienh:隔层是在 Firefox 4 周围引入的——肯定是在 2000 年 2 月之后;)。 2000 年 2 月是导入 MDN 的文档的修改日期(根据文档历史,此导入发生在 2006 年 4 月),但此后发生了很多变化——最近一次是在今年 6 月。不过,本文档参考了 JSAPI 用户指南以获得更好的示例。

标签: javascript c++ mozilla spidermonkey


【解决方案1】:

弃用可能与recent change 在 SM 中创建隔间的方式有关(现在每个新的全局默认情况下都会有自己的隔间)。

您应该使用 JS_NewCompartmentAndGlobalObject,因为该功能仅在 JSAPI 16 中被弃用,即 JS 1.8.5 发布 72 周后 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    相关资源
    最近更新 更多