我正在嵌入 SpiderMonkey 并尝试使用JS_BindCallable
. 但是,我有一个JSObject *
我想用作 的newThis
,但该函数需要一个JSRawObject
. 文档JSRawObject
似乎很少,头文件也没有提供任何线索。
如果我简单地将它传递给它,它似乎可以编译JSObject *
,而不会崩溃,但我不确定为什么,这让我感到不舒服。此外,它似乎不起作用 - 不确定这是因为这个问题还是因为其他原因。特别是,我正在这样做:
JSObject *result = JS_NewObject(cx, NULL, NULL, NULL);
//create .finish() callable
int props = JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE;
JS_DefineFunction(cx, result, "finish", my_native_func, 0, props);
//bind finish to always use 'this'
jsval jsvFinishFuncObj;
JS_GetProperty(cx, result, "finish", &jsvFinishFuncObj);
JSObject *finishFuncObj = JSVAL_TO_OBJECT(jsvFinishFuncObj);
JS_BindCallable(cx, finishFuncObj, result);