【发布时间】:2016-02-16 14:10:03
【问题描述】:
我想在 C/C++ 函数中创建一个 JSObject 并将其返回以供被调用者使用。我在官方文档中苦苦挣扎,因为必要的信息有点分散,而且指南中充满了过时的信息,而且几乎没有涵盖真实世界的场景。
忽略似乎引用过时版本的部分,cookbook 显示了调用args.rval().setInt32()、setDouble() 和setNull() 的示例。但是,reference for JS::CallArgs 表示 rval() 返回一个 MutableHandleValue 哪个 doesn't appear to have those setter methods。他们的意思是rval()->set...,它可以通过-> 和/或强制转换运算符工作吗?
然后code example on the CallArgs page 额外显示使用CallArgs 的set() 方法。那和上面的方法有什么区别呢? set() 和 setObject() 会确保我的新对象正确注册到 GC 吗?
【问题讨论】:
标签: spidermonkey