Я использую Spidermonkey для разбора Pacfile в iOS. Я регистрирую функцию с кодом ниже.
if (!JS_DefineFunction(cx, globalHandle, "dnsResolve", (JSNative) dns_resolve, 1, 1)) {
print_error("%s %s\n", error_prefix,
"Could not define dnsResolve in JS context.");
return 0; }
Но когда я вызываю dnsResolve
метод с аргументом, я получаю значения мусора. Я использую приведенный ниже код для разбора аргументов
static bool dns_resolve(JSContext *cx, unsigned argc, jsval *argv)
{
JS::CallArgs args = CallArgsFromVp(argc, argv);
JSString *temp = JS::ToString(cx, args[0]);
char* name = JS_EncodeString(cx, temp);
JS_ConvertArgumentsVA(cx, args, name, NULL);
return true;
}
Хотя тот же код работает на других платформах, таких как Android, MAC, Windows, в то время как в iOS выдает значения мусора.