JSValue.newCFunction2 constructor
JSValue.newCFunction2(})
Implementation
JSValue.newCFunction2(
this._ctx,
JSCFunction func,
String name,
int len,
int cproto,
int magic, {
bool autoDispose = true,
}) {
_cfuncNC = NativeCallable.isolateLocal((
JSContextRef ctx,
JSValue_ thiz,
int argc,
JSValueRef argv,
) {
final list = <JSValue>[];
for (int i = 0; i < argc; i++) {
list.add(JSValue.ptr(_ctx, argv[i]));
}
return func.call(JSContext(ctx), JSValue.ptr(_ctx, thiz), list).ref.ref;
});
_ref = calloc.call(sizeOf<JSValue_>())
..ref = JS_NewCFunction2(
_ctx.ref,
_cfuncNC!.nativeFunction,
name.toNativeUtf8(),
len,
cproto,
magic,
);
attach(Q_JS_FreeValueAddress.cast(), _ref.cast(), autoDispose: autoDispose);
}