如果使用JS_NewGlobalObject:SpiderMonkey,程序崩溃

Ash*_*mar 6 javascript c++ mozilla spidermonkey

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

示例程序直接来自文档

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

因此我替换了JS_NewCompartmentAndGlobalObjectwith JS_NewGlobalObject,从那时起,示例程序在此处找到示例程序中的第55行崩溃

这里有什么解决方案?

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

Reu*_*ais 2

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

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