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);